Como acessar dados espelhados do Azure Cosmos DB no Lakehouse e em blocos de anotações do Microsoft Fabric (Visualização)
Neste guia, você aprenderá a acessar dados espelhados do Azure Cosmos DB no Lakehouse e em blocos de anotações do Microsoft Fabric (Visualização).
Importante
O espelhamento para o Azure Cosmos DB está atualmente em visualização. Não há suporte para cargas de trabalho de produção durante a visualização. Atualmente, apenas contas do Azure Cosmos DB para NoSQL são suportadas.
Pré-requisitos
- Uma conta existente do Azure Cosmos DB para NoSQL.
- Se você não tiver uma assinatura do Azure, experimente o Azure Cosmos DB para NoSQL gratuitamente.
- Se você tiver uma assinatura existente do Azure, crie uma nova conta do Azure Cosmos DB para NoSQL.
- Uma capacidade de malha existente. Se você não tiver uma capacidade existente, inicie uma avaliação do Fabric.
- A conta do Azure Cosmos DB para NoSQL deve ser configurada para espelhamento de malha. Para obter mais informações, consulte Requisitos da conta.
Gorjeta
Durante a visualização pública, é recomendável usar uma cópia de teste ou desenvolvimento dos dados existentes do Azure Cosmos DB que podem ser recuperados rapidamente de um backup.
Configuração de espelhamento e pré-requisitos
Configure o espelhamento para o banco de dados do Azure Cosmos DB para NoSQL. Se você não tiver certeza de como configurar o espelhamento, consulte o tutorial Configurar banco de dados espelhado.
Navegue até o portal do Fabric.
Crie uma nova conexão e um banco de dados espelhado usando as credenciais da sua conta do Azure Cosmos DB.
Aguarde até que a replicação termine o instantâneo inicial dos dados.
Acesse dados espelhados no Lakehouse e em notebooks
Use o Lakehouse para ampliar ainda mais o número de ferramentas que você pode usar para analisar seus dados espelhados do Azure Cosmos DB para NoSQL. Aqui, você usa o Lakehouse para criar um bloco de anotações do Spark para consultar seus dados.
Navegue até a página inicial do portal do Fabric novamente.
No menu de navegação, selecione Criar.
Selecione Criar, localize a seção Engenharia de dados e, em seguida, selecione Lakehouse.
Forneça um nome para o Lakehouse e selecione Criar.
Agora selecione Obter dados e, em seguida , Novo atalho. Na lista de opções de atalho, selecione Microsoft OneLake.
Selecione o banco de dados espelhado do Azure Cosmos DB para NoSQL na lista de bancos de dados espelhados em seu espaço de trabalho de malha. Selecione as tabelas a serem usadas com o Lakehouse, selecione Avançar e, em seguida, selecione Criar.
Abra o menu de contexto da tabela no Lakehouse e selecione Novo bloco de anotações ou existente.
Um novo bloco de anotações abre e carrega automaticamente um dataframe usando
SELECT LIMIT 1000
o .Execute consultas como
SELECT *
usar o Spark.df = spark.sql("SELECT * FROM Lakehouse.OrdersDB_customers LIMIT 1000") display(df)
Nota
Este exemplo assume o nome da tabela. Use sua própria tabela ao escrever sua consulta do Spark.
Gravar novamente usando o Spark
Finalmente, você pode usar o código Spark e Python para gravar dados de volta em sua conta de origem do Azure Cosmos DB a partir de blocos de anotações no Fabric. Talvez você queira fazer isso para gravar os resultados analíticos no Cosmos DB, que pode ser usado como plano de serviço para aplicativos OLTP.
Crie quatro células de código no seu bloco de notas.
Primeiro, consulte seus dados espelhados.
fMirror = spark.sql("SELECT * FROM Lakehouse1.OrdersDB_ordercatalog")
Gorjeta
Os nomes de tabela nesses blocos de código de exemplo assumem um determinado esquema de dados. Sinta-se à vontade para substituí-lo por seus próprios nomes de tabela e coluna.
Agora transforme e agregue os dados.
dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
Em seguida, configure o Spark para gravar novamente em sua conta do Azure Cosmos DB para NoSQL usando suas credenciais, nome do banco de dados e nome do contêiner.
writeConfig = { "spark.cosmos.accountEndpoint" : "https://xxxx.documents.azure.com:443/", "spark.cosmos.accountKey" : "xxxx", "spark.cosmos.database" : "xxxx", "spark.cosmos.container" : "xxxx" }
Finalmente, use o Spark para gravar novamente no banco de dados de origem.
dfCDB.write.mode("APPEND").format("cosmos.oltp").options(**writeConfig).save()
Execute todas as células de código.
Importante
As operações de gravação no Azure Cosmos DB consumirão unidades de solicitação (RUs).