Usar o DirectQuery no Power BI Desktop

Quando você se conecta a qualquer fonte de dados com o Power BI Desktop, pode importar uma cópia dos dados. Para algumas fontes de dados, você também pode se conectar diretamente à fonte de dados sem importar dados usando o DirectQuery.

Para determinar se uma fonte de dados oferece suporte ao DirectQuery, exiba a lista completa de fontes de dados disponíveis encontradas no artigo Conectores no Power Query que também se aplica ao Power BI, selecione o artigo que descreve a fonte de dados na qual você está interessado na lista de conectores suportados e consulte a seção no artigo desse conector intitulada Recursos suportados. Se o DirectQuery não estiver listado nessa seção do artigo da fonte de dados, o DirectQuery não terá suporte para esse conector de dados.

Aqui estão as diferenças entre usar os modos de conectividade import e DirectQuery:

  • Importar: uma cópia dos dados das tabelas e colunas selecionadas é importada para o Power BI Desktop. À medida que cria ou interage com visualizações, o Power BI Desktop utiliza os dados importados. Para ver as alterações de dados subjacentes após a importação inicial ou a atualização mais recente, você deve importar o modelo semântico completo novamente para atualizar os dados.

  • DirectQuery: Nenhuma importação de dados para o Power BI Desktop. Para fontes relacionais, você pode selecionar tabelas e colunas para aparecer na lista Campos do Power BI Desktop. Para fontes multidimensionais como o SAP Business Warehouse (SAP BW), as dimensões e medidas do cubo selecionado aparecem na lista Campos . À medida que cria ou interage com visualizações, o Power BI Desktop consulta a origem de dados subjacente, para que esteja sempre a visualizar os dados atuais.

Com o DirectQuery, ao criar ou interagir com uma visualização, você deve consultar a fonte subjacente. O tempo necessário para atualizar a visualização depende do desempenho da fonte de dados subjacente. Se os dados necessários para atender à solicitação foram solicitados recentemente, o Power BI Desktop usa os dados recentes para reduzir o tempo necessário para mostrar a visualização. Selecionar Atualizar na faixa de opções Página Inicial atualiza todas as visualizações com dados atuais.

Muitas transformações de dados e modelagem de dados estão disponíveis ao usar o DirectQuery, embora com algumas limitações baseadas no desempenho. Para obter mais informações sobre benefícios, limitações e recomendações do DirectQuery, consulte DirectQuery no Power BI.

Benefícios do DirectQuery

Alguns benefícios do uso do DirectQuery incluem:

  • O DirectQuery permite criar visualizações em modelos semânticos muito grandes, onde seria inviável importar todos os dados com pré-agregação.

  • Os relatórios do DirectQuery sempre usam dados atuais. Ver alterações de dados subjacentes requer que você atualize os dados, e reimportar grandes modelos semânticos para atualizar dados pode ser inviável.

  • A limitação do modelo semântico de 1 GB não se aplica ao DirectQuery.

Conectar-se usando o DirectQuery

Para se conectar a uma fonte de dados com o DirectQuery:

  1. No grupo Página Inicial da faixa de opções do Power BI Desktop, selecione Obter dados e selecione uma fonte de dados suportada pelo DirectQuery, como o SQL Server.

  2. Na caixa de diálogo da conexão, em Modo de conectividade de dados, selecione DirectQuery.

Opções de importação e DirectQuery, caixa de diálogo Banco de Dados do SQL Server, Power BI Desktop

Publicar no serviço Power BI

Você pode publicar relatórios DirectQuery no serviço do Power BI, mas precisa executar etapas adicionais para que o serviço do Power BI abra os relatórios.

  • Para conectar o serviço Power BI a fontes de dados DirectQuery diferentes do Banco de Dados SQL do Azure, Azure Synapse Analytics (anteriormente SQL Data Warehouse), Amazon Redshift e Snowflake Data Warehouse, instale um gateway de dados local e registre a fonte de dados.

  • Se você usou o DirectQuery com fontes de nuvem como o Banco de Dados SQL do Azure, o Azure Synapse, o Amazon Redshift ou o Snowflake Data Warehouse, não precisará de um gateway de dados local. Você ainda deve fornecer credenciais para o serviço do Power BI para abrir o relatório publicado. Sem credenciais, ocorre um erro quando você tenta abrir um relatório publicado ou explorar um modelo semântico criado com uma conexão DirectQuery.

Para fornecer credenciais para abrir o relatório e atualizar os dados:

  1. No serviço do Power BI, selecione o ícone de engrenagem no canto superior direito e escolha Configurações.

    Captura de ecrã do menu pendente Definições do serviço do Power BI.

  2. Na página Configurações, selecione a guia Modelos semânticos e escolha o modelo semântico que usa DirectQuery.

  3. Em Conexão da fonte de dados, forneça as credenciais para se conectar à fonte de dados.

Nota

Se você usou o DirectQuery com um Banco de Dados SQL do Azure que tem um endereço IP privado, precisará usar um gateway local.

Considerações e limitações

Alguns recursos do Power BI Desktop não são suportados no modo DirectQuery ou têm limitações. Alguns recursos no serviço do Power BI, como insights rápidos, também não estão disponíveis para modelos semânticos que usam DirectQuery. Ao decidir se deseja usar o DirectQuery, considere estas limitações de recursos. Considere também os seguintes fatores:

Considerações sobre desempenho e carga

O DirectQuery envia todas as solicitações para o banco de dados de origem, portanto, o tempo de atualização necessário para elementos visuais depende de quanto tempo a fonte subjacente leva para retornar resultados. Cinco segundos ou menos é o tempo de resposta recomendado para receber os dados solicitados para efeitos visuais. Tempos de atualização superiores a 30 segundos produzem uma experiência inaceitavelmente ruim para os usuários que consomem o relatório. Uma consulta que leva mais de quatro minutos expira no serviço do Power BI e o usuário recebe um erro.

A carga no banco de dados de origem também depende do número de usuários do Power BI que consomem o relatório publicado, especialmente se o relatório usar RLS (segurança em nível de linha). A atualização de um bloco de painel não RLS compartilhado por vários usuários envia uma única consulta ao banco de dados, mas atualizar um bloco de painel que usa RLS requer uma consulta por usuário. O aumento das consultas aumenta significativamente a carga e potencialmente afeta o desempenho.

Limite de um milhão de linhas

O DirectQuery define um limite de um milhão de linhas para dados retornados de fontes de dados na nuvem, que são quaisquer fontes de dados que não estejam no local. As fontes locais são limitadas a uma carga definida de cerca de 4 MB por linha, dependendo do algoritmo de compactação proprietário, ou 16 MB para todo o visual. As capacidades Premium podem definir diferentes limites máximos de linha, conforme descrito na postagem do blog Configurações de nova capacidade do Power BI Premium.

O Power BI cria consultas que são tão eficientes quanto possível, mas algumas consultas geradas podem recuperar muitas linhas da fonte de dados subjacente. Por exemplo, essa situação pode ocorrer com um gráfico simples que inclui uma coluna de cardinalidade alta com a opção de agregação definida como Não resumir. O visual deve ter apenas colunas com cardinalidade inferior a 1 milhão, ou deve aplicar os filtros apropriados.

O limite de linha não se aplica a agregações ou cálculos usados para selecionar o modelo semântico que o DirectQuery retorna, apenas às linhas retornadas. Por exemplo, a consulta executada na fonte de dados pode agregar 10 milhões de linhas. Desde que os dados retornados ao Power BI tenham menos de 1 milhão de linhas, a consulta pode retornar os resultados com precisão. Se os dados tiverem mais de 1 milhão de linhas, o Power BI mostrará um erro, exceto na capacidade Premium com limites diferentes definidos pelo administrador. O erro afirma: O conjunto de resultados de uma consulta à fonte de dados externa excedeu o tamanho máximo permitido de '1000000' linhas.

Considerações de segurança

Por padrão, todos os usuários que consomem um relatório publicado no serviço do Power BI se conectam à fonte de dados subjacente usando as credenciais inseridas após a publicação. Esta situação é a mesma que para os dados importados. Todos os usuários veem os mesmos dados, independentemente de quaisquer regras de segurança definidas pela fonte subjacente.

Se você precisar de segurança por usuário implementada com fontes DirectQuery, use RLS ou configure a autenticação restrita por Kerberos na origem. Kerberos não está disponível para todas as fontes. Para obter mais informações, consulte Segurança em nível de linha (RLS) com Power BI e Configurar SSO baseado em Kerberos do serviço do Power BI para fontes de dados locais.

Outras limitações do DirectQuery

Algumas outras limitações do uso do DirectQuery incluem:

  • Se a consulta do Editor do Power Query for excessivamente complexa, ocorrerá um erro. Para corrigir o erro, tem de eliminar o passo problemático no Power Query Editor ou mudar para o modo de importação. Fontes multidimensionais como o SAP BW não podem usar o Power Query Editor.

  • A hierarquia automática de data/hora não está disponível no DirectQuery. O modo DirectQuery não suporta detalhamento de coluna de data por ano, trimestre, mês ou dia.

  • Para visualizações de tabela ou matriz, há um limite de 125 colunas para resultados que retornam mais de 500 linhas de fontes do DirectQuery. Esses resultados exibem uma barra de rolagem na tabela ou matriz que permite buscar mais dados. Nessa situação, o número máximo de colunas na tabela ou matriz é 125. Se você precisar incluir mais de 125 colunas em uma única tabela ou matriz, considere a criação de medidas que usem MIN, MAX, FIRST, ou LAST, porque elas não contam para esse máximo.

  • Não é possível mudar de importação para o modo DirectQuery. Você pode alternar do modo DirectQuery para o modo de importação se importar todos os dados necessários. Não é possível voltar, principalmente devido ao conjunto de recursos que o DirectQuery não suporta. Os modelos DirectQuery em fontes multidimensionais, como o SAP BW, também não podem ser alternados do DirectQuery para o modo de importação, devido ao tratamento diferente de medidas externas.

  • Tabelas calculadas e colunas calculadas que fazem referência a uma tabela DirectQuery de uma fonte de dados com autenticação de logon único (SSO) não são suportadas no serviço do Power BI.