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 que os dados sejam constantemente atualizados. Como? Atualizar manualmente os relatórios funciona, mas o Power BI Direct Query oferece um recurso muito melhor, atualização agendada.

Neste tutorial, você aprenderá como aproveitar a funcionalidade do Power BI Direct Query 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 usa 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 a opção de carregar dados ao vivo para o seu projeto. Mas antes de criar um banco de dados SQL e uma 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 estes passos:

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

Launching ODBC Data Sources

2. Em seguida, vá para a guia DSN do Sistema na janela do Administrador de Fontes 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 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 SQL Server e o Nome da Fonte de Dados, pois você precisará deles para a string de conexão em Python.

Naming the new data source

5. Revise os detalhes da sua fonte de dados e clique em Testar Fonte de Dados para verificar sua conexão.

Testing the data source

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

Verifying testing the data source completed

Conectando ao SQL Server

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

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

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

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

3. Depois de fazer login, 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 engine marca o ponto de partida da sua aplicação SQLAlchemy. O engine descreve o pool de conexões e o dialeto para a Python Database API Specification (DBAPI). Python DBAPI é uma especificação dentro do Python para definir padrões comuns de uso 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, utilizando urllib para formatar o texto.
conn = urllib.parse.quote_plus(
# Valores para a string de conexão obtidos 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 motor sqlalchemy
	coxn = create_engine('mssql+pyodbc:///?odbc_connect={}'.format(conn))
	print("Passed")
except:
	print("failed!")

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

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

# Cria um construtor 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 regular do SQL para criar uma tabela.
students = Table(
'students', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('lastname', String),
)

# Usa o objeto de motor 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 cadeia de conexão e conseguiu se conectar ao banco de dados, 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 que está online, conforme 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 com o Power BI.

Getting data from SQL server

4. Agora, conecte-se ao DirecQuery 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 DirecQuery esteja selecionada.Clique em OK para conectar-se ao DirecQuery.
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 realizadas 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> uma vez que sua publicação seja 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

Ao fazer a 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 último, uma vez que você veja 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

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

1. Navegue até a página inicial de 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á quão rápido o usuário pode visualizar o relatório. Ou se eles conseguirão ver os relatórios com sucesso em primeiro lugar.

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

Accessing the data report

Depois de abrir o relatório, você deverá 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 em seu banco de dados com o seguinte e execute o script.

Executar este 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 de Energia para fontes multidimensionais como o SAP Business Warehouse, o que limita o que você pode realizar com seus dados.

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

# Inserindo valores múltiplos na tabela de estudantes
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 o 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 de Energia contiver etapas complexas.

Verifying the last refreshed time and next refresh of the dataset

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

Verifying the scheduled refresh works

Conclusão

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

A criação de relatórios é um processo longo de coleta, limpeza, upload para uma fonte de dados, carregamento de dados para o Power BI e trabalho com as visualizações do Power BI. Esse processo mencionado é dado. Mas posteriormente, você pode atualizar o conjunto de dados manualmente ou atualizar os dados 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 grande incentivo ao usar esse recurso.

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