Usar o DirectQuery no Power BI DesktopUse DirectQuery in Power BI Desktop

Com o Power BI Desktop, ao se conectar à fonte de dados, sempre é possível importar uma cópia dos dados para o Power BI Desktop.With Power BI Desktop, when you connect to your data source, it is always possible to import a copy of the data into the Power BI Desktop. Para algumas fontes de dados, uma abordagem alternativa está disponível: conectar-se diretamente à fonte de dados usando o DirectQuery.For some data sources, an alternative approach is available: connect directly to the data source using DirectQuery.

Fontes de dados para as quais há suporteSupported Data Sources

Para obter uma lista completa de fontes de dados que dão suporte ao DirectQuery, consulte Data sources supported by DirectQuery (Fontes de dados com suporte do DirectQuery).For a full listing of data sources that support DirectQuery, see Data sources supported by DirectQuery.

Como se conectar usando o DirectQueryHow to Connect using DirectQuery

Quando você usa Obter Dados para se conectar a uma fonte de dados com suporte do DirectQuery, a janela de conexão deixa você selecionar como deseja se conectar.When you use Get Data to connect to a data source supported by DirectQuery, the connection window lets you select how you want to connect.

As diferenças entre a seleção de Importar e DirectQuery são as seguintes:The differences between selecting Import and DirectQuery are the following:

Importar – as tabelas e as colunas selecionadas são importadas para o Power BI Desktop.Import – the selected tables and columns are imported into Power BI Desktop. Conforme você cria ou interage com uma visualização, o Power BI Desktop usa os dados importados.As you create or interact with a visualization, Power BI Desktop uses the imported data. Você deve atualizar os dados, o que importa o conjunto de dados completo novamente, para ver todas as alterações ocorridas nos dados subjacentes desde a importação inicial ou a atualização mais recente.You must refresh the data, which imports the full data set again, to see any changes that occurred to the underlying data since the initial import or the most recent refresh.

DirectQuery – nenhum dado é importado ou copiado para o Power BI Desktop.DirectQuery – no data is imported or copied into Power BI Desktop. Para fontes relacionais, as tabelas e colunas selecionadas aparecem na lista Campos.For relational sources, the selected tables and columns appear in the Fields list. Para fontes multidimensionais, como SAP Business Warehouse, as dimensões e medidas do cubo selecionado aparecem na lista Campos.For multi-dimensional sources like SAP Business Warehouse, the dimensions and measures of the selected cube appear in the Fields list. Conforme você cria ou interage com uma visualização, o Power BI Desktop consulta a fonte de dados subjacente, o que significa que você sempre está exibindo dados atuais.As you create or interact with a visualization, Power BI Desktop queries the underlying data source, which means you’re always viewing current data.

Muitas transformações de dados e modelagem de dados estão disponíveis ao usar o DirectQuery, embora com algumas limitações.Many data modeling and data transformations are available when using DirectQuery, though with some limitations. Ao criar ou interagir com uma visualização, a fonte subjacente deve ser consultada e o tempo necessário para atualizar a visualização depende do desempenho da fonte de dados subjacente.When creating or interacting with a visualization, the underlying source must be queried and the time necessary to refresh the visualization is dependent on the performance of the underlying data source. Quando 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 exibir a visualização.When the data necessary to service the request has recently been requested, Power BI Desktop uses recent data to reduce the time required to display the visualization. A seleção de Atualizar na faixa de opções Página Inicial garantirá que todas as visualizações sejam atualizadas com os dados atuais.Selecting Refresh from the Home ribbon will ensure all visualizations are refreshed with current data.

O artigo Power BI e DirectQuery descreve DirectQuery em detalhes.The Power BI and DirectQuery article describes DirectQuery in detail. Além disso, consulte as seções a seguir para obter mais informações sobre os benefícios, limitações e considerações importantes ao usar o DirectQuery.Also, see the following sections for more information about benefits, limitations, and important considerations when using DirectQuery.

Benefícios do uso do DirectQueryBenefits of using DirectQuery

Há alguns benefícios de usar o DirectQuery:There are a few benefits to using DirectQuery:

  • O DirectQuery permite criar visualizações de conjuntos de dados muito grandes, em casos em que de outro modo seria impraticável importar primeiro todos os dados com pré-agregaçãoDirectQuery lets you build visualizations over very large datasets, where it would otherwise be unfeasible to first import all of the data with pre-aggregation
  • Alterações de dados subjacentes podem exigir uma atualização de dados e, para alguns relatórios, a necessidade de exibir os dados atuais pode exigir transferências de dados grandes, tornando impraticável uma nova importação de dados.Underlying data changes can require a refresh of data, and for some reports, the need to display current data can require large data transfers, making re-importing data unfeasible. Por outro lado, os relatórios do DirectQuery sempre usam dados atuaisBy contrast, DirectQuery reports always use current data
  • A limitação do conjunto de dados de 1 GB não se aplica ao DirectQueryThe 1-GB dataset limitation does not apply to DirectQuery

Limitações do DirectQueryLimitations of DirectQuery

Atualmente, há algumas limitações no uso do DirectQuery:There are currently a few limitations to using DirectQuery:

  • Todas as tabelas devem vir de um banco de dados individual, a menos que usem modelos compostosAll tables must come from a single database, unless using composite models
  • Se a consulta do Editor de Consultas for excessivamente complexa, ocorrerá um erro.If the Query Editor query is overly complex, an error will occur. Para corrigir esse erro, é necessário excluir a etapa que apresenta problemas no Editor de Consultas ou importar os dados em vez de usar o DirectQuery.To remedy the error you must either delete the problematic step in Query Editor, or Import the data instead of using DirectQuery. Para fontes multidimensionais, como SAP Business Warehouse, não há nenhum Editor de ConsultasFor multi-dimensional sources like SAP Business Warehouse, there is no Query Editor
  • A filtragem de relação é limitada a uma única orientação, em vez de ambas as orientações (embora seja possível habilitar a filtragem cruzada em ambas as orientações para o DirectQuery).Relationship filtering is limited to a single direction, rather than both directions (though it is possible to enable cross filtering in both directions for DirectQuery). Para fontes multidimensionais, como SAP Business Warehouse, não há nenhuma relação definida no modeloFor multi-dimensional sources like SAP Business Warehouse, there are no relationships defined in the model
  • Os recursos de inteligência de tempo não estão disponíveis no DirectQuery.Time intelligence capabilities are not available in DirectQuery. Por exemplo, não há suporte ao tratamento especial de colunas de data (ano, trimestre, mês, dia e assim por diante) no modo DirectQuery.For example, special treatment of date columns (year, quarter, month, day, so on) is not supported in DirectQuery mode.
  • As limitações são colocadas em expressões DAX permitidas em medidas para garantir que as consultas enviadas à fonte de dados subjacente tenham um desempenho aceitável.Limitations are placed on DAX expressions allowed in measures to ensure that queries sent to the underlying data source have acceptable performance.
  • Há um limite de um milhão de linhas para retornar dados ao usar o DirectQuery.There is a one-million-row limit for returning data when using DirectQuery. O limite não afeta as agregações nem os cálculos usados para criar o conjunto de dados retornado usando DirectQuery, somente as linhas retornadas.The limit does not affect aggregations or calculations used to create the dataset returned using DirectQuery, only the rows returned. Por exemplo, você pode agregar 10 milhões de linhas com a consulta é executada na fonte de dados e retornar, com precisão, os resultados desta agregação para o Power BI usando o DirectQuery desde que os dados retornados para o Power BI sejam menores do que 1 milhão de linhas.For example, you can aggregate 10 million rows with your query that runs on the data source, and accurately return the results of that aggregation to Power BI using DirectQuery as long as the data returned to Power BI is less than 1 million rows. Se mais de 1 milhão de linhas fossem retornadas do DirectQuery, o Power BI retornaria um erro.If more than 1 million rows would be returned from DirectQuery, Power BI returns an error.

Considerações importantes ao usar o DirectQueryImportant considerations when using DirectQuery

Os três pontos a seguir devem ser levados em consideração ao usar o DirectQuery:The following three points should be taken into consideration when using DirectQuery:

  • Desempenho e carga - Todas as solicitações do DirectQuery são enviadas para o banco de dados de origem para que o tempo necessário para atualizar um visual dependa de quanto tempo essa fonte de back-end leva para responder com os resultados da consulta (ou consultas).Performance and load - All DirectQuery requests are sent to the source database, so the time required to refresh a visual is dependent on how long that back-end source takes to respond with the results from the query (or queries). O tempo de resposta recomendado (com os dados solicitados sendo retornados) para usar o DirectQuery para elementos visuais é de cinco segundos ou menos, com um tempo de resposta de resultados máximo recomendado de 30 segundos.The recommended response time (with requested data being returned) for using DirectQuery for visuals is five seconds or less, with a maximum recommended results response time of 30 seconds. Se levar mais, e a experiência de um usuário consumindo o relatório se tornará muito ruim.Any longer, and the experience of a user consuming the report becomes unacceptably poor. Além disso, depois que um relatório é publicado para o serviço do Power BI, qualquer consulta que levar mais tempo do que alguns minutos atingirá o tempo limite, e o usuário receberá um erro.In addition, once a report is published to the Power BI service, any query that takes longer than a few minutes will time out, and the user will receive an error.

    Carregar o banco de dados de origem também deve ser considerado, com base no número de usuários do Power BI que consumirá o relatório publicado.Load on the source database should also be considered, based on the number of Power BI users who will consume the published report. Usar a Segurança em Nível de Linha (RLS -Row Level Security) pode ter um impacto significativo também; um bloco de painel não RLS compartilhado por vários usuários resulta em uma única consulta ao banco de dados, mas usar a RLS em um bloco de painel geralmente significa que a atualização de um bloco exige uma consulta por usuário, aumentando significativamente a carga no banco de dados de origem e afetando potencialmente o desempenho.Using Row Level Security (RLS) can have a significant impact as well; a non-RLS dashboard tile shared by multiple users results in a single query to the database, but using RLS on a dashboard tile usually means the refresh of a tile requires one query per user, thus significantly increasing load on the source database and potentially impacting performance.

    O Power BI cria consultas que são tão eficientes quanto possível.Power BI creates queries that are as efficient as possible. Em determinadas situações, no entanto, a consulta gerada pode não ser eficiente o suficiente para evitar que a atualização falhe.Under certain situations however, the generated query may not be efficient enough to avoid refresh that would fail. Um exemplo dessa situação é quando uma consulta gerada recuperaria um número excessivamente grande de linhas da fonte de dados back-end, na qual ocorre o seguinte erro:One example of this situation is when a generated query would retrieve an excessively large number of rows from the back-end data source, in which case the following error occurs:

    The resultset of a query to external data source has exceeded
    

    Essa situação pode ocorrer com um gráfico simples que inclui uma coluna de cardinalidade muito alta, com a opção de agregação definida como Não resumir.This situation can occur with a simple chart that includes a very high cardinality column, with the aggregation option set to Don’t Summarize. O visual precisa ter somente colunas com uma cardinalidade abaixo de 1 milhão ou deve ter aplicados os filtros apropriados.The visual needs to only have columns with a cardinality below 1 million, or must have appropriate filters applied.

  • Segurança - Todos os usuários que utilizam um relatório publicado, conectem-se à fonte de dados de back-end usando as credenciais inseridas após a publicação para o serviço do Power BI.Security - All users who consume a published report connect to the back-end data source using the credentials entered after publication to the Power BI service. Essa é a mesma situação de quando dados são importados: todos os usuários veem os mesmos dados, independentemente das regras de segurança definidas na fonte de back-end.This is the same situation as data that is imported: all users see the same data, irrespective of any security rules defined in the backend source. Os clientes que desejam ter a segurança por usuário implementada com fontes do DirectQuery devem usar a RLS.Customers who want per-user security implemented with DirectQuery sources should use RLS. Saiba mais sobre a RLS.Learn more about RLS.

  • Recursos com suporte - Nem todos os recursos do Power BI Desktop têm suporte no modo DirectQuery, ou têm algumas limitações.Supported features - Not all features in Power BI Desktop are supported in DirectQuery mode, or have some limitations. Além disso, há alguns recursos no serviço do Power BI (como Quick Insights) que não estão disponíveis para conjuntos de dados que usam o DirectQuery.In addition, there are some capabilities in the Power BI service (such as Quick Insights) that are not available for datasets using DirectQuery. Como tal, a limitação desses recursos ao usar o DirectQuery deve ser levada em consideração ao determinar se irá usar o DirectQuery.As such, the limitation of such features when using DirectQuery should be taken into consideration when determining whether to use DirectQuery.

Publicar no serviço do Power BIPublish to the Power BI service

Os relatórios criados com o DirectQuery podem ser publicados no Serviço do Power BI.Reports created using DirectQuery can be published to the Power BI Service.

Se a fonte de dados usada não precisar do Gateway de dados local (Banco de Dados SQL do Azure, SQL Data Warehouse do Azure ou Redshift), as credenciais deverão ser fornecidas antes que o relatório publicado seja exibido no serviço do Power BI.If the data source used does not need the On-premises data gateway (Azure SQL Database, Azure SQL Data Warehouse, or Redshift), credentials must be provided before the published report will be displayed in the Power BI Service.

Você pode fornecer credenciais, selecionando o ícone de engrenagem Configurações no Power BI e, em seguida, selecionar Configurações.You can provide credentials by selecting the Settings gear icon in Power BI, then select Settings.

O Power BI exibe a janela Configurações .Power BI displays the Settings window. Lá, selecione a guia Conjuntos de dados , escolha o conjunto de dados que usa o DirectQuerye selecione Editar credenciais.From there, select the Datasets tab and choose the dataset that uses DirectQuery, and select Edit credentials.

Até que as credenciais sejam fornecidas, abrir um relatório publicado ou explorar um conjunto de dados criado com uma conexão do DirectQuery com os resultados dessas fontes de dados resultará em um erro.Until credentials are supplied, opening a published report or exploring a dataset created with a DirectQuery connection to such data sources results in an error.

Para fontes de dados diferentes de Banco de Dados SQL do Azure, SQL Data Warehouse do Azure e Redshift que usam o DirectQuery, um Gateway de dados local deverá ser instalado e a fonte de dados deverá ser registrada para estabelecer uma conexão de dados.For data sources other than Azure SQL Database, Azure SQL Data Warehouse and Redshift that use DirectQuery, an On-premises data gateway must be installed and the data source must be registered to establish a data connection. Saiba mais sobre o Gateway de dados local.You can learn more about On-premises data gateway.

Próximas etapasNext steps

Para obter mais informações sobre o DirectQuery, confira os seguintes recursos:For more information about DirectQuery, check out the following resources: