Partilhar via


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

  • Import
  • 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.

    Screenshot showing Select Azure Cosmos DB v2 selection.

  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'

    Mais informações:

    Screenshot of the connection dialog box showing the Cosmos Endpoint entry and Data connectivity mode set to 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.

    Screenshot of the Navigator emphasizing the data you've selected.

  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.

    Screenshot showing how to select duplicate from your existing query in the Power Query editor.

    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.

    Screenshot showing the unique Partition Keys in Power Query editor.

    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.

    Screenshot showing how to create a parameter in the Power Query editor.

    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.

    Screenshot showing the steps to apply the parameterized filter.

    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.

    Screenshot showing the steps to bind the parameter.

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

    Screenshot of the slicer.

    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.

    Screenshot of the visualization after the partition key filter is applied.

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.

  • 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.