Como Usar a Funcionalidade de Consulta Direta do Power BI

Quando você cria relatórios do Power BI, os espectadores esperam que o relatório seja atualizado periodicamente e os dados estejam constantemente atualizados. Como? Atualizar manualmente os relatórios funciona, mas o Power BI Direct Query oferece um recurso muito melhor, atualização programada.

Neste tutorial, você aprenderá como aproveitar a funcionalidade de Consulta Direta do Power BI conectando um conjunto de dados armazenado em um servidor e executando consultas em seus dados.

Fique ligado e aumente a produtividade enquanto economiza tempo no processo!

Pré-requisitos

Este tutorial será uma demonstração prática. Para acompanhar, certifique-se de ter o seguinte:

  • Power Bi desktop – Este tutorial utiliza a versão 2.109.1021.0 do Power Bi desktop.
  • Um servidor SQL.
  • A code editor – This tutorial uses VS code version 1.71.

Criando um Banco de Dados SQL para Gerenciar com Power BI Direct Query

O Power Bi Direct Query permite que você se conecte diretamente a um conjunto de dados e oferece à sua projeto a opção de carregar dados ao vivo para o seu projeto. Mas antes de criar um banco de dados SQL e conexão, você deve saber o nome do servidor e o nome da fonte de dados para obter os detalhes corretos.

Para criar um banco de dados SQL, siga estas etapas:

1. Procure por ODBC na barra de pesquisa, procure e clique em Administrador de Fonte de Dados ODBC (64 bits) para abri-lo.

Launching ODBC Data Sources

2. Em seguida, navegue até a guia DSN do Sistema na janela do Administrador de Fonte de Dados ODBC e clique em Adicionar para iniciar a adição de uma nova fonte de dados.

Initiating adding a new data source

3. Selecione o driver do SQL Server na lista abaixo e clique em Concluir para criar uma Fonte de Dados SQL.

O DirectQuery não suporta todas as fontes de dados. MySQL não é suportado, enquanto SQL é.

Selecting SQL Server driver

4. Agora, nomeie sua fonte de dados (MssqlDataSource), selecione uma instância SQL (POWERSERVER\POWERSERVER) instalada em sua máquina e clique em Concluir.

Observe o Nome do Servidor SQL e o Nome da Fonte de Dados, pois você precisará deles para a string de conexão do seu Python.

Naming the new data source

5. Revise os detalhes da sua fonte de dados e clique em Testar Fonte de Dados para testar sua fonte de dados.

Testing the data source

Se a conexão estiver boa, você receberá uma mensagem de TESTE CONCLUÍDO COM SUCESSO, como mostrado abaixo.

Verifying testing the data source completed

Conectando ao Servidor SQL

Agora que você criou uma Fonte de Dados para seu servidor SQL, você usará essa fonte de dados para criar uma string de conexão para o seu código Python.

1. Inicie o seu Visual Studio e pressione CTRL+SHFT+` para abrir um novo terminal.

2. Em seguida, execute o comando sqlcmd abaixo para fazer login na sua instância do servidor SQL.

sqlcmd -S SQL_SERVER -E
Connecting to the SQL server instance

3. Uma vez conectado, execute as consultas a seguir para criar um novo banco de dados (CREATE DATABASE) chamado MSSQLDB.

CREATE DATABASE MSSQLDB;
GO
Creating a new SQL database

4. Crie um arquivo Python DBconnect.py e adicione o código abaixo, que permite que você se conecte ao seu banco de dados SQL usando o SQLAlchemy ORM para Python.

O motor marca o ponto de partida da sua aplicação SQLAlchemy. O motor descreve o pool de conexão e o dialeto para a Python Database API Specification (DBAPI). Python DBAPI é uma especificação dentro do Python para definir padrões de uso comuns para todos os pacotes de conexão de banco de dados. Essa especificação se comunica com o banco de dados especificado.

//DBconnect.py
import sqlalchemy as sa
from sqlalchemy import create_engine
import urllib
import pyodbc
# Criando uma string de conexão, usando urllib para formatar o texto.
conn = urllib.parse.quote_plus(
# Valores para a string de conexão retirados da fonte de dados
'Data Source Name=MssqlDataSource;'

'Driver={SQL Server};'

'Server=POWERSERVER\POWERSERVER;'

'Database=MSSQLDB;'

'Trusted_connection=yes;'

)

try:
# Criando conexão com o mecanismo sqlalchemy
	coxn = create_engine('mssql+pyodbc:///?odbc_connect={}'.format(conn))
	print("Passed")
except:
	print("failed!")

5. Crie um arquivo Python chamado CreateTable.py em sua pasta principal e adicione o código abaixo, e execute. O código abaixo cria uma tabela chamada students em seu banco de dados SQL.

//CreateTable.py
from DBconnect import coxn
from sqlalchemy import Table, Column, Integer, String, MetaData

# Cria uma construção de Metadados que contém definições de tabelas 
  # e objetos associados, como índices, visualizações, gatilhos, etc.
meta = MetaData()

# Representa o CREATE TABLE na sintaxe SQL regular para criar uma tabela.
students = Table(
'students', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)

# Usa o objeto do mecanismo para criar todos os objetos de tabela definidos 
  # e armazena as informações nos metadados.
meta.create_all(coxn)

6. Em seguida, abra o SSMS e verifique o banco de dados, tabela e colunas criadas.

Verifying Database and tables on SSMS.

7. Crie um arquivo Python chamado WriteToTable.py, adicione o código abaixo e execute.

Este código contém a lógica para escrever valores na tabela do banco de dados.

//WriteToTable.py
# Importando a tabela students do arquivo CreateTable.py.
from CreateTable import students
# Importando a string de conexão coxn do arquivo DBconnect.py.
from DBconnect import coxn
# Inserindo múltiplos valores na tabela students
ins = students.insert().values([
   {'name':'Bob','lastname':'Marley'},
   {'name':'Bob','lastname':'Dylan'}
])
conn = coxn.connect()
conn.execute(ins)

Preparando o Gateway de Dados Local

Agora que você criou uma string de conexão e conseguiu se conectar ao banco de dados, você precisará criar um Gateway de Dados. Este Gateway de Dados será responsável por conectar seu banco de dados ao Power BI.

1. Abra o gateway de dados local e faça login.

Signing in to On-premises data gateway

2. Verifique o status do seu gateway de dados local e confirme se está online, como mostrado abaixo.

Checking if the On-premises data gateway is online

3. Em seguida, abra o Power BI, clique em Obter Dados na guia Página Inicial e escolha SQL Server para iniciar a conexão da sua fonte de dados ao Power BI.

Getting data from SQL server

4. Agora, conecte-se ao DirectQuery com o seguinte:

  • Insira o nome do seu Servidor e o nome do Banco de Dados nos campos correspondentesCertifique-se de que a opção DirectQuery está selecionada.Clique em OK para se conectar ao DirectQuery.
Connecting to DirectQuery

5. Selecione uma tabela (alunos) do banco de dados e clique em Carregar para carregar os dados.

Loading data from the database

6. Em seguida, clique no ícone de tabela para usar uma visualização de tabela e visualizar os dados.

Choosing the table visual

A tabela abaixo mostra os dados que você carregou da tabela do banco de dados

Viewing data in a table visual

7. Clique no menu Arquivo para acessar as ações a serem executadas no Power BI.

Accessing the File menu

8. Agora, clique em Publicar → Publicar no Power BI para publicar seu relatório de dados.

Publishing data report

9. Clique em Abrir <seu relatório> assim que sua publicação for bem-sucedida, redirecionando seu navegador para a lista de atividades recentes que você fez no Power BI (passo 10).

Opening the Power BI browser

10. Clique no relatório para abri-lo, como mostrado abaixo.

Opening the data report

Na primeira configuração, você pode encontrar um problema de gateway como abaixo, pois ainda não conectou a fonte de dados do projeto ao gateway de dados do Power BI.

Getting a gateway configuration error

11. Clique no ícone de configurações na coluna Ações para iniciar a adição de uma nova conexão de gateway. Fazendo isso, você pode corrigir o erro de configuração do gateway.

Initiating adding a new gateway connection

12. Configure a nova conexão do gateway e clique em Criar para criar uma nova conexão entre sua fonte de dados e o gateway.

Configuring a new data source

13. Por fim, assim que você visualizar que o gateway está em execução, selecione o nome da fonte de dados (MssqlDataSource) no campo Mapeia para e clique em Aplicar.

Applying the new gateway connection

Visualizando e Gerenciando Relatórios de Dados

Após estabelecer uma conexão entre o gateway e o Power BI, você pode visualizar seu relatório e configurar um cronograma de atualização.

1. Navegue até a página inicial dos seus relatórios do Power BI.

O desempenho da Consulta Direta do Power Bi depende da fonte de dados subjacente. O tempo necessário para a fonte de dados subjacente responder às solicitações determinará o quão rápido o usuário pode visualizar o relatório. Ou se eles verão com sucesso os relatórios em primeiro lugar.

2. Em seguida, clique no relatório, conforme mostrado abaixo, para abri-lo.

Accessing the data report

Ao abrir o relatório, você deve ver os dados, como mostrado abaixo.

Viewing the data report

3. Volte para a página inicial do relatório e clique em Atualizar → Agendar atualização para definir uma atualização programada do relatório.

Além de criar relatórios ao vivo, o Power Bi Direct Query permite que você defina uma atualização programada, atualizando automaticamente seus relatórios.

Initiating setting a scheduled refresh

4. Agora, selecione o intervalo de atualização de sua escolha no campo suspenso e clique em Aplicar para aplicar as alterações.

Setting a refresh interval

5. Abra seu script Python WriteToTable.py e adicione o código abaixo para inserir mais entradas no seu banco de dados com o seguinte e execute o script.

A execução deste código não fornece saída, mas você verificará os valores inseridos na tabela posteriormente nos seguintes passos.

Não há Editor de Consulta do Power para fontes multidimensionais como o SAP Business Warehouse, o que limita o que você pode realizar com seus dados.

//WriteToTable.py
# Importando tabela de alunos do arquivo CreateTable.py.
from CreateTable import students
# Importando string de conexão coxn do arquivo DBconnect.py.
from DBconnect import coxn

# Inserindo múltiplos valores na tabela de alunos
ins = students.insert().values([
{'name':'Damian','lastname':'Marley'},
{'name':'Rita','lastname':'Marley'},
{'name':'Ziggy','lastname':'Marley'},
{'name':'Sam','lastname':'Dylan'},
{'name':'Jakob','lastname':'Dylan'},
{'name':'Maria','lastname':'Dylan'}
])
# Criando cursor de conexão.
conn = coxn.connect()
# Executando comando insert().
conn.execute(ins)

6. Em seguida, mude para seu navegador Power BI e clique na guia Conjuntos de dados + fluxos de dados.

Se tudo correr bem, você verá o último horário atualizado e a próxima atualização do conjunto de dados como na captura de tela abaixo.

Observe que o Power Bi Direct Query é sensível a alterações e formatação. Você pode receber um erro se o Editor de Consulta do Power contiver etapas complexas.

Verifying the last refreshed time and next refresh of the dataset

Como esperado, a recarga ocorre automaticamente após 15 minutos, e a próxima atualização está programada para ocorrer em mais 15 minutos.

Verifying the scheduled refresh works

Conclusão

Ao longo deste tutorial, você aprendeu como usar a funcionalidade de Consulta Direta do Power Bi para conectar seu conjunto de dados armazenado em seu servidor. Você também abordou a execução de consultas diretamente em seus dados.

A criação de relatórios é um processo longo que envolve coleta, limpeza, upload para uma fonte de dados, carregamento de dados no Power BI e trabalho com os visuais do Power BI. Esse processo mencionado é fornecido. Mas depois, você pode atualizar o conjunto de dados manualmente ou automaticamente conforme o cronograma definido.

A Consulta Direta do Power BI tem suas desvantagens ao lidar e manipular dados em seu conjunto de dados. Mas o fato de você poder criar um relatório uma vez e nunca mais trabalhar nos bastidores é um incentivo enorme ao usar esse recurso.

Source:
https://adamtheautomator.com/power-bi-direct-query/