Compartilhar via


Como acessar dados espelhados do Azure Cosmos DB no Lakehouse e notebooks do Microsoft Fabric (Versão prévia)

Neste guia, você aprenderá a acessar dados espelhados do Azure Cosmos DB no Lakehouse e notebooks do Microsoft Fabric (Versão prévia).

Importante

O espelhamento para o Azure Cosmos DB está atualmente em versão prévia. Não há suporte para cargas de trabalho de produção durante a versão prévia. No momento, há suporte apenas para contas do Azure Cosmos DB for NoSQL.

Pré-requisitos

Dica

Durante a versão prévia 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.

Configurar 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 para configurar banco de dados espelhado.

  1. Navegue até o portal do Fabric.

  2. Crie uma nova conexão e um banco de dados espelhado usando as credenciais da sua conta do Azure Cosmos DB.

  3. Aguarde até que a replicação conclua o instantâneo inicial dos dados.

Acessar 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 notebook do Spark para consultar seus dados.

  1. Navegue até o início do portal do Fabric novamente.

  2. No menu de navegação, selecione Criar.

  3. Selecione Criar, localize a seção Engenharia de Dados e selecione Lakehouse.

  4. Forneça um nome para o Lakehouse e selecione Criar.

  5. Agora selecione Obter Dados e, em seguida, Novo atalho. Na lista de opções de atalho, selecione Microsoft OneLake.

  6. Selecione o banco de dados espelhado do Azure Cosmos DB para NoSQL na lista de bancos de dados espelhados em seu workspace do Fabric. Selecione as tabelas a serem usadas com o Lakehouse, selecione Avançar e selecione Criar.

  7. Abra o menu de contexto da tabela no Lakehouse e selecione Notebook novo ou existente.

  8. Um novo notebook abre e carrega automaticamente um dataframe usando SELECT LIMIT 1000.

  9. Execute consultas como SELECT * usar o Spark.

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

    Captura de tela de um notebook do Lakehouse com dados pré-carregados do banco de dados espelhado.

    Observação

    Este exemplo pressupõe o nome da tabela. Use sua própria tabela ao escrever sua consulta do Spark.

Gravar novamente usando o Spark

Por fim, 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 notebooks no Fabric. Talvez você queira fazer isso para fazer write-back dos resultados analíticos no Cosmos DB, que pode ser usado como plano de serviço para aplicativos OLTP.

  1. Crie quatro células de código no seu notebook.

  2. Primeiro, consulte seus dados espelhados.

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

    Dica

    Os nomes de tabela nesses blocos de código de exemplo pressupõem um determinado esquema de dados. Sinta-se à vontade para substituir isso por seus próprios nomes de tabelas e colunas.

  3. Agora transforme e agregue os dados.

    dfCDB = dfMirror.filter(dfMirror.categoryId.isNotNull()).groupBy("categoryId").agg(max("price").alias("max_price"), max("id").alias("id"))
    
  4. Em seguida, configure o Spark para gravar 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"
    }
    
  5. Finalmente, use o Spark para fazer write-back no banco de dados de origem.

    dfCDB.write.mode("APPEND").format("cosmos.oltp").options(**writeConfig).save()
    
  6. 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).