Usar o DirectQuery no Power BI Desktop

Ao se conectar a qualquer fonte de dados com o Power BI Desktop, você 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 dá suporte ao DirectQuery, exiba a listagem completa das 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 com suporte e veja a seção no artigo desse conector intitulado Recursos com suporte. Se o DirectQuery não estiver listado nessa seção para o artigo da fonte de dados, o DirectQuery não terá suporte para esse conector de dados.

Estas são as diferenças entre o uso dos modos de conectividade DirectQuery e importação:

  • Importação: uma cópia dos dados das tabelas e colunas selecionadas é importada para o Power BI Desktop. Conforme você cria ou interage com visualizações, o Power BI Desktop usa 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: nenhum dado é importado no Power BI Desktop. Para fontes relacionais, você pode selecionar tabelas e colunas a serem exibidas na lista Campos do Power BI Desktop. Para fontes multidimensionais, como SAP Business Warehouse (SAP BW), as dimensões e medidas do cubo selecionado aparecem na lista Campos. Conforme você cria uma visualização ou interage com ela, o Power BI Desktop consulta a fonte de dados subjacente, de modo que você sempre esteja vendo dados atuais.

Com DirectQuery, ao criar uma visualização ou interagir com ela, consulte 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 o serviço 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 Inicial atualiza todas as visualizações com os dados atuais.

Muitas transformações e modelagem de dados estão disponíveis ao usar o DirectQuery, embora com algumas limitações baseadas no desempenho. Para saber mais sobre os benefícios, as limitações e as 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, em que 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 Inicial da faixa de opções do Power BI Desktop, selecione Obter dados e, em seguida, selecione uma fonte de dados compatível com o DirectQuery, como SQL Server.

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

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

Publicar no serviço do Power BI

Você pode publicar relatórios do 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 do Power BI a fontes de dados DirectQuery que não sejam o Banco de Dados SQL do Azure, o Azure Synapse Analytics (antigo SQL Data Warehouse), o Amazon Redshift e o 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 Banco de Dados SQL do Azure, Azure Synapse, Amazon Redshift ou Snowflake Data Warehouse, não precisa de um gateway de dados local. Você ainda precisa fornecer credenciais para que o serviço do Power BI abra 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 tela do menu suspenso Configurações no 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 o DirectQuery.

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

Observação

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 têm suporte 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 o DirectQuery. Ao determinar se o DirectQuery deve ser usado, considere essas 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 os visuais depende de quanto tempo a fonte subjacente leva para retornar os resultados. Cinco segundos ou menos é o tempo de resposta recomendado para receber dados solicitados para visuais. Tempos de atualização maiores que 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 atinge o tempo limite 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 usa RLS (segurança em nível de linha). A atualização de um bloco de dashboard não RLS compartilhado por vários usuários envia uma consulta para o banco de dados, mas atualizar um bloco de dashboard 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 das fontes de dados de nuvem, que são fontes de dados que não são locais. 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 de 16 MB para todo o visual. As capacidades Premium podem definir diferentes limites máximos de linha, conforme descrito na postagem no blog Novas configurações de capacidade do Power BI Premium.

O Power BI cria consultas que são o mais eficientes 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 precisa ter somente colunas com uma cardinalidade abaixo de 1 milhão ou precisa 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 retornado pelo DirectQuery, somente para as 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 sejam inferiores a 1 milhão de linhas, a consulta poderá retornar com precisão os resultados. Se os dados forem superiores a 1 milhão de linhas, o Power BI mostrará um erro, exceto na capacidade Premium, com limites diferentes definidos pelo administrador. O erro declara: O conjunto de resultados de uma consulta a uma fonte de dados externa excedeu o tamanho máximo permitido de '1000000' linhas.

Considerações sobre segurança

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

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

Outras limitações do DirectQuery

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

  • Se a consulta do Editor do Power Query for excessivamente complexa, ocorrerá um erro. Para corrigir o erro, você deve excluir a etapa problemática no Editor do Power Query ou mudar para o modo de importação. Fontes multidimensionais como SAP BW não podem usar o Editor do Power Query.

  • A hierarquia de data/hora automática não está disponível no DirectQuery. O modo DirectQuery não dá suporte ao 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 tabela ou matriz, considere criar medidas usando MIN, MAX, FIRST ou LAST, pois elas não são contabilizadas nesse máximo.

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

  • As tabelas e as colunas calculadas que fazem referência a uma tabela DirectQuery de uma fonte de dados com autenticação SSO (logon único) não têm suporte no serviço do Power BI.