Usar o Power BI e o pool Synapse SQL sem servidor para analisar dados do Azure Cosmos DB com o Synapse Link
APLICA-SE A: NoSQL MongoDB Gremlin
Neste artigo, você aprenderá a criar um banco de dados de pool SQL sem servidor e exibições sobre o Synapse Link para Azure Cosmos DB. Você consultará os contêineres do Azure Cosmos DB e, em seguida, criará um modelo com o Power BI sobre esses modos de exibição para refletir essa consulta.
Importante
O espelhamento do Azure Cosmos DB no Microsoft Fabric agora está disponível em visualização para a API NoSql. Esse recurso fornece todos os recursos do Azure Synapse Link com melhor desempenho analítico, capacidade de unificar seu patrimônio de dados com o Fabric OneLake e acesso aberto aos seus dados no formato Delta Parquet. Se você estiver considerando o Azure Synapse Link, recomendamos que tente espelhar para avaliar o ajuste geral para sua organização. Introdução ao espelhamento no Microsoft Fabric.
Com o Azure Synapse Link, você pode criar painéis quase em tempo real no Power BI para analisar seus dados do Azure Cosmos DB. Não há impacto no desempenho ou no custo de suas cargas de trabalho transacionais e não há complexidade no gerenciamento de pipelines de ETL. Você pode usar os modos DirectQuery ou importação .
Nota
Você pode criar painéis do Power BI com apenas alguns cliques usando o portal do Azure Cosmos DB. Para obter mais informações, consulte Experiência integrada do Power BI no portal do Azure Cosmos DB para contas habilitadas para Synapse Link. Isso criará automaticamente exibições T-SQL em pools SQL sem servidor Synapse em seus contêineres do Azure Cosmos DB. Você pode simplesmente baixar o arquivo .pbids que se conecta a essas exibições T-SQL para começar a criar seus painéis de BI.
Neste cenário, utilizará dados fictícios sobre as vendas de produtos do Surface numa loja de retalho parceira. Você analisará a receita por loja com base na proximidade com grandes residências e no impacto da publicidade para uma semana específica. Neste artigo, você cria dois modos de exibição chamados RetailSales e StoreDemographics e uma consulta entre eles. Você pode obter os dados de exemplo do produto a partir deste repositório GitHub .
Pré-requisitos
Certifique-se de criar os seguintes recursos antes de começar:
Crie uma conta do Azure Cosmos DB para API para NoSQL ou MongoDB.
Habilitar o Azure Synapse Link para sua conta do Azure Cosmos DB
Crie um banco de dados dentro da conta do Azure Cosmos DB e dois contêineres que tenham o repositório analítico habilitado.
Carregue dados de produtos nos contêineres do Azure Cosmos DB conforme descrito neste bloco de anotações de ingestão de dados em lote.
Crie um espaço de trabalho Synapse chamado SynapseLinkBI.
Conecte o banco de dados do Azure Cosmos DB ao espaço de trabalho Sinapse.
Criar uma base de dados e vistas
No espaço de trabalho Sinapse, vá para a guia Desenvolver, selecione o + ícone e selecione Script SQL.
Cada espaço de trabalho vem com um ponto de extremidade SQL sem servidor. Depois de criar um script SQL, a partir da barra de ferramentas na parte superior, conecte-se a Built-in.
A criação de modos de exibição nos bancos de dados mestre ou padrão não é recomendada ou suportada. Crie um novo banco de dados, chamado RetailCosmosDB, e uma exibição SQL sobre os contêineres habilitados para Synapse Link. O comando a seguir mostra como criar um banco de dados:
-- Create database
Create database RetailCosmosDB
Em seguida, crie várias exibições em diferentes contêineres do Azure Cosmos DB habilitados para Synapse Link. As exibições permitirão que você use o T-SQL para unir e consultar dados do Azure Cosmos DB em contêineres diferentes. Certifique-se de selecionar o banco de dados RetailCosmosDB ao criar as exibições.
Os scripts a seguir mostram como criar modos de exibição em cada contêiner. Para simplificar, vamos usar o recurso de inferência automática de esquema do pool SQL sem servidor em contêineres habilitados para Synapse Link:
VarejoVisualização de vendas:
-- Create view for RetailSales container
CREATE VIEW RetailSales
AS
SELECT *
FROM OPENROWSET (
'CosmosDB', N'account=<Your Azure Cosmos DB account name>;database=<Your Azure Cosmos DB database name>;region=<Your Azure Cosmos DB Region>;key=<Your Azure Cosmos DB key here>',RetailSales)
AS q1
Certifique-se de inserir sua região do Azure Cosmos DB e a chave primária no script SQL anterior. Todos os caracteres no nome da região devem estar em minúsculas sem espaços. Ao contrário dos outros parâmetros do OPENROWSET
comando, o parâmetro container name deve ser especificado sem aspas em torno dele.
Visualização StoreDemographics:
-- Create view for StoreDemographics container
CREATE VIEW StoreDemographics
AS
SELECT *
FROM OPENROWSET (
'CosmosDB', N'account=<Your Azure Cosmos DB account name>;database=<Your Azure Cosmos DB database name>;region=<Your Azure Cosmos DB Region>;key=<Your Azure Cosmos DB key here>', StoreDemographics)
AS q1
Agora execute o script SQL selecionando o comando Executar .
Consultar as vistas
Agora que os dois modos de exibição foram criados, vamos definir a consulta para unir esses dois modos de exibição da seguinte maneira:
SELECT
sum(p.[revenue]) as revenue
,p.[advertising]
,p.[storeId]
,p.[weekStarting]
,q.[largeHH]
FROM [dbo].[RetailSales] as p
INNER JOIN [dbo].[StoreDemographics] as q ON q.[storeId] = p.[storeId]
GROUP BY p.[advertising], p.[storeId], p.[weekStarting], q.[largeHH]
Selecione Executar que fornece a seguinte tabela como resultado:
Vistas de modelo sobre contentores com o Power BI
Em seguida, abra a área de trabalho do Power BI e conecte-se ao ponto de extremidade SQL sem servidor usando as seguintes etapas:
Abra a aplicação Power BI Desktop. Selecione Obter dados e selecione mais.
Escolha Azure Synapse Analytics (SQL DW) na lista de opções de conexão.
Insira o nome do ponto de extremidade SQL onde o banco de dados está localizado. Entre
SynapseLinkBI-ondemand.sql.azuresynapse.net
no campo Servidor . Neste exemplo, SynapseLinkBI é o nome do espaço de trabalho. Substitua-o se tiver dado um nome diferente à sua área de trabalho. Selecione Direct Query para o modo de conectividade de dados e, em seguida, OK.Selecione o método de autenticação preferido, como o Microsoft Entra ID.
Selecione o banco de dados RetailCosmosDB e as visualizações RetailSales, StoreDemographics .
Selecione Carregar para carregar os dois modos de exibição no modo de consulta direta.
Selecione Modelo para criar uma relação entre os dois modos de exibição por meio da coluna storeId .
Arraste a coluna StoreId da visualização RetailSales para a coluna StoreId na visualização StoreDemographics .
Selecione a relação Muitos para um (*:1) porque há várias linhas com o mesmo ID de loja na visualização RetailSales . StoreDemographics tem apenas uma linha de ID de loja (é uma tabela de dimensão).
Agora navegue até a janela do relatório e crie um relatório para comparar a importância relativa do tamanho da família com a receita média por loja com base na representação dispersa da receita e no índice LargeHH:
Selecione Gráfico de dispersão.
Arraste e solte LargeHH da visualização StoreDemographics para o eixo X.
Arraste e solte a visualização Receita do RetailSales no eixo Y. Selecione Média para obter a média de vendas por produto, por loja e por semana.
Arraste e solte o productCode da visualização RetailSales na legenda para selecionar uma linha de produtos específica. Depois de escolher essas opções, você verá um gráfico como a seguinte captura de tela:
Próximos passos
Usar o T-SQL para consultar dados do Azure Cosmos DB usando o Azure Synapse Link
Usar o pool SQL sem servidor para analisar os Conjuntos de Dados Abertos do Azure e visualizar os resultados no Azure Synapse Studio