Azure Cosmos DB v2 (Beta)

Resumo

Item Description
Estado de Lançamento Beta
Produtos Power BI (modelos semânticos)
Power BI (Fluxos de Dados)
Malha (Dataflow Gen2)
Tipos de autenticação suportados Chave de Feed

Pré-requisitos

Capacidades suportadas

  • Importar
  • DirectQuery (modelos semânticos do Power BI)
  • Opções avançadas
    • Número de tentativas
    • Ativar a função "MÉDIA" Passdown
    • Ativar passagem "SORT" para várias colunas

Ligar ao Azure Cosmos DB

Para se conectar aos dados do Azure Cosmos DB:

  1. Inicie o Power BI Desktop.

  2. Na guia Página Inicial, selecione Obter Dados.

  3. Na caixa de pesquisa, digite Cosmos DB v2.

  4. Selecione Azure Cosmos DB v2 (Beta) e, em seguida, selecione Conectar.

    Captura de ecrã a mostrar a seleção Selecionar Azure Cosmos DB v2.

  5. Na página de conexão do Azure Cosmos DB v2 , para Cosmos Endpoint, insira o URI da conta do Azure Cosmos DB que você deseja usar. Para o modo de Conectividade de Dados, escolha um modo apropriado para o seu caso de uso, seguindo estas diretrizes gerais:

    • Para conjuntos de dados menores, escolha Importar. Ao usar o modo de importação, o Power BI funciona com o Cosmos DB para importar o conteúdo de todo o conjunto de dados para uso em suas visualizações.

    • O modo DirectQuery permite a transferência de consulta para o contêiner do Cosmos DB para execução e melhora o desempenho do conector. Para contêineres particionados do Cosmos DB, uma consulta SQL com uma função agregada é passada para o Cosmos DB se a consulta também contiver um filtro (cláusula WHERE) na Chave de Partição. Por exemplo, se a chave de partição for definida como "Produto", uma consulta SQL que pode ser transmitida e executada no servidor Cosmos DB pode ser:

      SELECT SUM(ColumnName) FROM TableName where Product = 'SampleValue'

    Nota

    Use o Azure Synapse Link para Azure Cosmos DB se quiser executar funções de agregação particionadas cruzadas no contêiner do Cosmos DB.

    Mais informações:

    Captura de tela da caixa de diálogo de conexão mostrando a entrada do Cosmos Endpoint e o modo de conectividade de dados definidos como DirectQuery.

  6. No prompt para configurar a autenticação da fonte de dados, insira a Chave da Conta. Em seguida, selecione Conectar. O catálogo de dados, os bancos de dados e as tabelas aparecem na caixa de diálogo Navegador .

  7. No painel Opções de Exibição, marque a caixa de seleção do conjunto de dados que você deseja usar.

    Captura de ecrã do Navigator a realçar os dados que selecionou.

  8. A maneira mais ideal de especificar o filtro Partition Key (para que as funções agregadas possam ser empurradas para baixo para o Cosmos DB) é usar parâmetros M dinâmicos. Para usar parâmetros M dinâmicos, você criaria um conjunto de dados com valores exclusivos de Chave de Partição, criaria um parâmetro, adicioná-lo como um filtro no conjunto de dados principal, vinculá-lo ao conjunto de dados de chave de partição exclusivo e usá-lo como uma segmentação de dados para o conjunto de dados principal. Use as etapas a seguir para habilitar parâmetros M dinâmicos para filtragem de chave de partição.

    a. Criar um conjunto de dados com valores de chave de partição exclusivos:

    No Navegador, selecione Transformar Dados em vez de Carregar para abrir o editor do Power Query. Clique com o botão direito do mouse no conjunto de dados de consultas e selecione Duplicar para criar um novo conjunto de dados.

    Captura de ecrã a mostrar como selecionar duplicados da sua consulta existente no editor do Power Query.

    Renomeie o novo modelo de chave de partição e clique com o botão direito do mouse na coluna de chave de partição do Cosmos DB. Neste exemplo, Produto é a coluna de chave de partição do Cosmos DB. Selecione Remover Outras Colunas e, em seguida, selecione Remover Duplicatas.

    Captura de ecrã a mostrar as Chaves de Partição exclusivas no editor do Power Query.

    b. Criar um parâmetro para filtragem dinâmica:

    No editor do Power Query, selecione Gerir Novo Parâmetro de Parâmetros>. Renomeie o novo parâmetro para refletir o parâmetro de filtro e insira um valor válido como Valor Atual.

    Captura de ecrã a mostrar como criar um parâmetro no editor do Power Query.

    c. Aplicar filtro parametrizado no conjunto de dados principal:

    Selecione o ícone suspenso da coluna Chave de partição e, em seguida, selecione Filtros de>texto iguais. Altere o tipo de filtro de Texto para Parâmetro. Em seguida, escolha o parâmetro que foi criado na etapa b. Selecione Fechar & Aplicar no canto superior esquerdo do editor do Power Query.

    Captura de tela mostrando as etapas para aplicar o filtro parametrizado.

    d. Criar segmentação de dados de valores de chave de partição com vinculação de parâmetros:

    No Power BI, selecione a guia Modelo . Em seguida, selecione o campo Chave de partição. No painel Propriedades, selecione Ligação avançada>ao parâmetro. Escolha o parâmetro que foi criado na etapa b.

    Captura de tela mostrando as etapas para vincular o parâmetro.

    Selecione a guia Relatório e adicione uma segmentação de dados com a Chave de Partição exclusiva.

    Captura de ecrã da segmentação de dados.

    e. Adicionar visualizações e aplicar o filtro Chave de Partição a partir da segmentação de dados:

    Como o valor da chave de partição escolhida na segmentação de dados está vinculado ao parâmetro (como feito na etapa d) e o filtro parametrizado é aplicado no conjunto de dados principal (como feito na etapa c), o valor da chave de partição escolhida é aplicado como um filtro no conjunto de dados principal e a consulta com o filtro de chave de partição é passada para o Cosmos DB em todas as visualizações.

    Captura de tela da visualização após a aplicação do filtro de chave de partição.

Opções avançadas

O Power Query fornece um conjunto de opções avançadas que pode adicionar à sua consulta, se necessário.

A tabela seguinte lista todas as opções avançadas que pode definir no Power Query.

Opção avançada Description
Número de tentativas Quantas vezes tentar novamente se houver códigos de retorno HTTP de 408 - Request Timeout, 412 - Precondition Failedou 429 - Too Many Requests. O número padrão de novas tentativas é 5.
Ativar a função MÉDIA Passdown Especifica se o conector permite a passagem da função de agregação do AVG para o Cosmos DB. O valor padrão é 1 e o conector tenta passar a função de agregação do AVG para o Cosmos DB, por padrão. Se o argumento contiver valores de cadeia de caracteres, booleanos ou nulos para a função de agregação AVG, um conjunto de resultados indefinido será retornado pelo servidor Cosmos DB. Quando definido como valor 0, a função de agregação do AVG não é passada para o servidor Cosmos DB e o conector manipula a execução da própria operação de agregação do AVG.
Ativar SORT Passdown para várias colunas Especifica se o conector permite que várias colunas sejam passadas para o Cosmos DB quando especificado na cláusula ORDER BY da consulta SQL. O valor padrão é 0 e, se mais de uma coluna for especificada na cláusula ORDER BY, o conector não transmitirá as colunas por padrão e, em vez disso, manipulará a execução da ordem por si só. Quando definido como valor 1, o conector tenta passar várias colunas para o Cosmos DB quando especificado na cláusula ORDER BY da consulta SQL. Para permitir que várias colunas sejam passadas para o Cosmos DB, certifique-se de ter índices compostos definidos nas colunas das respetivas coleções. Para coleções particionadas, uma consulta SQL com ORDER BY será passada para o Cosmos DB somente se a consulta contiver um filtro na chave particionada. Além disso, se houver mais de oito colunas especificadas na cláusula ORDER BY, o conector não transmite a cláusula ORDER BY e, em vez disso, lida com a execução da ordem em si.

Problemas e limitações conhecidos

  • Para contêineres particionados do Cosmos DB, uma consulta SQL com uma função agregada é passada para o Cosmos DB se a consulta também contiver um filtro (cláusula WHERE) na Chave de Partição. Se a consulta agregada não contiver um filtro na Chave de Partição, a agregação será executada pelo conector.

  • O conector não transmite uma função agregada se for chamado após a aplicação de TOP ou LIMIT. O Cosmos DB processa a operação TOP no final ao processar uma consulta. Por exemplo, na consulta a seguir, TOP é aplicado na subconsulta, enquanto a função de agregação é aplicada sobre esse conjunto de resultados:

    SELECT COUNT(1) FROM (SELECT TOP 4 * FROM EMP) E

  • Se DISTINCT é fornecido em uma função agregada, o conector não passa a função agregada para o Cosmos DB se uma cláusula DISTINCT é fornecida em uma função agregada. Quando presente em uma função agregada, DISTINCT não é suportado pela API SQL do Cosmos DB.

  • Para a função de agregação SOMA, o Cosmos DB retorna undefined como o conjunto de resultados se qualquer um dos argumentos em SUM for string, booleano ou null. No entanto, se houver valores nulos, o conector passa a consulta para o Cosmos DB de tal forma que pede à fonte de dados para substituir um valor nulo por zero como parte do cálculo de SOMA.

  • Para a função de agregação AVG, o Cosmos DB retorna undefined como conjunto de resultados se qualquer um dos argumentos em SUM for string, booleano ou null. O conector expõe uma propriedade de conexão para desabilitar a transmissão da função de agregação do AVG para o Cosmos DB caso esse comportamento padrão do Cosmos DB precise ser substituído. Quando a passagem do AVG é desativada, ela não é passada para o Cosmos DB e o conector lida com a execução da operação de agregação do AVG em si. Para obter mais informações, vá para "Ativar a função MÉDIA Passdown" em Opções avançadas.

  • Os contêineres do Azure Cosmos DB com chave de partição grande não são suportados atualmente no Conector.

  • O passdown de agregação está desabilitado para a seguinte sintaxe devido a limitações do servidor:

    • Quando a consulta não está filtrando em uma chave de partição ou quando o filtro de chave de partição usa o operador OR com outro predicado no nível superior na cláusula WHERE.

    • Quando a consulta tem uma ou mais chaves de partição aparecem em uma cláusula IS NOT NULL na cláusula WHERE.

  • O conector V2 não suporta tipos de dados complexos, como matrizes, objetos e estruturas hierárquicas. Recomendamos o recurso Espelhamento de malha para Azure Cosmos DB para esses cenários.

  • O conector V2 usa a amostragem dos primeiros 1.000 documentos para chegar ao esquema inferido. Não é recomendado para cenários de evolução de esquema quando apenas parte dos documentos é atualizada. Por exemplo, uma propriedade recém-adicionada a um documento em um contêiner com thousants de documentos pode não ser inlcuded no esquema inferido. Recomendamos o recurso Espelhamento de malha para Azure Cosmos DB para esses cenários.

  • Atualmente, o conector V2 não suporta valores que não sejam de cadeia de caracteres nas propriedades do objeto.

  • A passagem de filtro está desativada para a seguinte sintaxe devido a limitações do servidor:

    • Quando a consulta que contém uma ou mais colunas agregadas é referenciada na cláusula WHERE.