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 visualização. Atualmente, há suporte apenas para contas do Azure Cosmos DB para NoSQL.

Pré-requisitos

Dica

Durante a visualização pública, é recomendável usar uma cópia de teste ou desenvolvimento de seus 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 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 notebooks

Use o Lakehouse para estender ainda mais o número de ferramentas que você pode usar para analisar os dados espelhados do Azure Cosmos DB para NoSQL. Aqui, você usa o Lakehouse para criar um notebook Spark para consultar seus dados.

  1. Navegue até a página inicial 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 no workspace do Fabric. Selecione as tabelas a serem usadas com o Lakehouse, selecione Avançar e, em seguida, selecione Criar.

  7. Abra o menu de contexto da tabela em Lakehouse e selecione Novo ou bloco de anotações existente.

  8. Um novo notebook é aberto automaticamente e carrega 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 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 do Azure Cosmos DB de origem de notebooks no Fabric. Talvez você queira fazer isso para gravar 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 em seu notebook.

  2. Primeiro, consulte os 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. Fique à vontade para substituí-lo por seus próprios nomes de tabela e coluna.

  3. Agora, transforme e agrege 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 novamente em sua conta do Azure Cosmos DB para NoSQL usando suas credenciais, o nome do banco de dados e o 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. Por fim, use o Spark para gravar de volta 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 RUs (unidades de solicitação).