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
- Un account Azure Cosmos DB per NoSQL già presente.
- Se non si ha un abbonamento ad Azure, prova gratuitamente Azure Cosmos DB per NoSQL.
- Se si ha dispone già di un abbonamento ad Azure, creare un nuovo account di Azure Cosmos DB for NoSQL.
- Una capacità di Fabric esistente. Se non si ha una capacità esistente, avviare una versione di valutazione di Fabric.
- L'account Azure Cosmos DB per NoSQL deve essere configurato per il mirroring di Fabric. Per altre informazioni, vedere Requisiti dell'account.
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.
Spostarsi sul portale di Fabric.
Creare una nuova connessione e un database con mirroring usando le credenziali dell'account Azure Cosmos DB.
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.
Passare nuovamente alla home page del portale di Fabric.
Nel menu di spostamento, selezionare Crea.
Selezionare Crea, individuare la sezione Ingegneria dei dati e quindi selezionare Lakehouse.
Specificare un nome per il Lakehouse, quindi selezionare Crea.
Ora, selezionare Recupera dati, quindi Nuovo collegamento. Nell'elenco delle opzioni di scelta rapida selezionare Microsoft OneLake.
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.
Aprire il menu contestuale per la tabella in Lakehouse e selezionare Notebook nuovo o esistente.
Viene aperto automaticamente un nuovo notebook e viene caricato un dataframe usando
SELECT LIMIT 1000
.Eseguire query come
SELECT *
utilizzando Spark.df = spark.sql("SELECT * FROM Lakehouse.OrdersDB_customers LIMIT 1000") display(df)
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.
Creare quattro celle di codice all'interno del notebook.
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.
Ora trasformare e aggregare i dati.
dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
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" }
Infine, usare Spark per eseguire il writeback nel database di origine.
dfCDB.write.mode("APPEND").format("cosmos.oltp").options(**writeConfig).save()
Eseguire tutte le celle di codice.
Importante
Le operazioni di scrittura in Azure Cosmos DB utilizzeranno le unità richiesta (UR).