Come fare a...: accedere ai dati di Azure Cosmos DB con mirroring in Lakehouse e ai notebook da Microsoft Fabric (anteprima)

In questa guida si apprenderà come accedere ai dati di Azure Cosmos DB con mirroring in Lakehouse e ai notebook da Microsoft Fabric (anteprima).

Importante

Il mirroring per Azure Cosmos DB attualmente è disponibile in anteprima. I carichi di lavoro di produzione non sono supportati durante l'anteprima. Attualmente sono supportati solo gli account Azure Cosmos DB for NoSQL.

Prerequisiti

Suggerimento

Durante l'anteprima pubblica, è consigliabile usare una copia di test o sviluppo dei dati di Azure Cosmos DB esistenti che possono essere recuperati rapidamente da un backup.

Configurazione del mirroring e prerequisiti

Configurare il mirroring per il database Azure Cosmos DB for NoSQL. Se non si è certi di come configurare il mirroring, vedere l'esercitazione configurare il database mirror.

  1. Spostarsi sul portale di Fabric.

  2. Creare una nuova connessione e un database con mirroring usando le credenziali dell'account Azure Cosmos DB.

  3. Attendere che la replica finisca lo snapshot iniziale dei dati.

Accedere ai dati con mirroring in Lakehouse e notebook

Usare Lakehouse per estendere ulteriormente il numero di strumenti che è possibile usare per analizzare i dati con mirroring di Azure Cosmos DB per NoSQL. In questo caso si usa Lakehouse per creare un notebook Spark per eseguire query sui dati.

  1. Passare nuovamente alla home page del portale di Fabric.

  2. Nel menu di spostamento, selezionare Crea.

  3. Selezionare Crea, individuare la sezione Ingegneria dei dati e quindi selezionare Lakehouse.

  4. Specificare un nome per il Lakehouse, quindi selezionare Crea.

  5. Ora, selezionare Recupera dati, quindi Nuovo collegamento. Nell'elenco delle opzioni di scelta rapida selezionare Microsoft OneLake.

  6. Selezionare il database di Azure Cosmos DB per NoSQL con mirroring nell'elenco dei database con mirroring nell'area di lavoro Fabric. Selezionare le tabelle da usare con Lakehouse, selezionare Avanti e quindi Crea.

  7. Aprire il menu contestuale per la tabella in Lakehouse e selezionare Notebook nuovo o esistente.

  8. Viene aperto automaticamente un nuovo notebook e viene caricato un dataframe usando SELECT LIMIT 1000.

  9. Eseguire query come SELECT * utilizzando Spark.

    df = spark.sql("SELECT * FROM Lakehouse.OrdersDB_customers LIMIT 1000")
    display(df)
    

    Screenshot di un notebook Lakehouse con i dati precaricati dal database con mirroring.

    Nota

    In questo esempio si presuppone il nome della tabella. Usare la propria tabella durante la scrittura della query Spark.

Eseguire il writeback con Spark

Infine, è possibile usare il codice Spark e Python per scrivere nuovamente i dati nell'account Azure Cosmos DB di origine dai notebook in Fabric. È possibile eseguire questa operazione per scrivere i risultati analitici in Cosmos DB, che possono quindi essere usati come piano di gestione per le applicazioni OLTP.

  1. Creare quattro celle di codice all'interno del notebook.

  2. Prima di tutto, eseguire una query sui dati con mirroring.

    fMirror = spark.sql("SELECT * FROM Lakehouse1.OrdersDB_ordercatalog")
    

    Suggerimento

    I nomi delle tabelle in questi blocchi di codice di esempio presuppongono uno schema di dati specifico. È possibile sostituirlo con nomi di tabella e colonna personalizzati.

  3. Ora trasformare e aggregare i dati.

    dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
    
  4. Configurare quindi Spark per eseguire il writeback nell'account Azure Cosmos DB per NoSQL usando le credenziali, il nome del database e il nome del contenitore.

    writeConfig = {
      "spark.cosmos.accountEndpoint" : "https://xxxx.documents.azure.com:443/",
      "spark.cosmos.accountKey" : "xxxx",
      "spark.cosmos.database" : "xxxx",
      "spark.cosmos.container" : "xxxx"
    }
    
  5. Infine, usare Spark per eseguire il writeback nel database di origine.

    dfCDB.write.mode("APPEND").format("cosmos.oltp").options(**writeConfig).save()
    
  6. Eseguire tutte le celle di codice.

    Importante

    Le operazioni di scrittura in Azure Cosmos DB utilizzeranno le unità richiesta (UR).