Streaming em tempo real no Power BI

O Power BI com streaming em tempo real ajuda você a transmitir dados e atualizar dashboards em tempo real. Qualquer visual ou dashboard criado no Power BI pode exibir e atualizar dados e visuais em tempo real. Os dispositivos e as fontes de dados de streaming podem ser sensores de fábrica, fontes de mídia social, métricas de uso do serviço ou muitos outros coletores ou transmissores de dados sensíveis ao tempo.

Este artigo mostra como configurar e usar modelos semânticos de streaming em tempo real no Power BI.

Screenshot of the Environmental sensors dashboard, showing the results of the data in real-time.

Tipos de modelos semânticos em tempo real

Primeiro, é importante entender os tipos de modelos semânticos em tempo real que são projetados para serem exibidos em blocos e painéis e como esses modelos semânticos diferem.

Os três tipos a seguir de modelos semânticos em tempo real são projetados para exibição em painéis em tempo real:

  • Modelo semântico por push
  • Modelo semântico de streaming
  • Modelo semântico de streaming PubNub

Esta seção explica como esses modelos semânticos diferem uns dos outros. Seções posteriores descrevem como enviar dados por push para cada um desses modelos semânticos.

Modelo semântico por push

Com um modelo semântico por push, os dados são enviados por push para o serviço do Power BI. Quando o modelo semântico é criado, o serviço do Power BI cria automaticamente um novo banco de dados no serviço para armazenar os dados.

Como há um banco de dados subjacente que armazena os dados à medida que eles chegam, você pode criar relatórios com os dados. Esses relatórios e os respectivos visuais são como qualquer outro visual de relatório. Você pode usar todos os recursos de criação de relatórios do Power BI, como visuais do Power BI, alertas de dados e blocos de dashboard fixados.

Depois de criar um relatório usando o modelo semântico por push, você pode fixar qualquer um dos visuais de relatório em um painel. Nesse dashboard, os visuais serão atualizados em tempo real sempre que os dados forem atualizados. Dentro do serviço do Power BI, o dashboard dispara uma atualização de bloco sempre que novos dados são recebidos.

Há duas considerações a serem observadas sobre blocos fixados de um modelo semântico por push:

  • A fixação de um relatório inteiro usando a opção Fixar em tempo real não resultará na atualização automática dos dados.
  • Depois de fixar um visual em um painel, você pode usar o P e R para fazer perguntas sobre o modelo semântico por push em linguagem natural. Depois de fazer uma consulta de P e R, você pode fixar o visual resultante de volta no dashboard, e esse visual também será atualizado em tempo real.

Modelo semântico de streaming

Um modelo semântico de streaming também envia dados por push para o serviço do Power BI, com uma diferença importante: o Power BI armazena os dados apenas em um cache temporário, que expira rapidamente. O cache temporário só é usado para exibir visuais que tenham algum histórico transitório, como um gráfico de linhas que tem uma janela de tempo de uma hora.

Um modelo semântico de streaming não tem um banco de dados subjacente, portanto, você não pode criar visuais de relatório usando os dados que fluem do fluxo. Assim, você não pode fazer uso de funcionalidades de relatório como filtragem, visuais do Power BI e outras funções de relatório.

A única maneira de visualizar um modelo semântico de streaming é adicionar um bloco e usar o modelo semântico de streaming como uma fonte de dados de streaming personalizada. Os blocos de streaming personalizados baseados em um modelo semântico de streaming são otimizados para exibir rapidamente dados em tempo real. Há pouca latência entre o momento em que os dados são enviados por push ao serviço do Power BI e quando o visual é atualizado, pois não há necessidade de que os dados sejam inseridos ou lidos em um banco de dados.

Na prática, é melhor usar modelos semânticos de streaming e seus visuais de streaming que acompanham situações em que é essencial minimizar a latência entre enviar e visualizar dados por push. Você deve enviar os dados por push em um formato em que possam ser visualizados no estado em que se encontram, sem nenhuma agregação adicional. Exemplos de dados que estão prontos no estado em que se encontram incluem temperaturas e médias pré-calculadas.

Modelo semântico de streaming PubNub

Com um modelo semântico de streaming do PubNub, o cliente Web do Power BI usa o SDK do PubNub para ler um fluxo de dados existente do PubNub. O serviço do Power BI não armazena nenhum dado. Como o cliente Web faz essa chamada diretamente, se você permitir apenas o tráfego de saída aprovado de sua rede, precisará listar o tráfego para PubNub conforme permitido. Para obter instruções, confira o artigo de suporte sobre como aprovar o tráfego de saída para o PubNub.

Assim como acontece com o modelo semântico de streaming, com o modelo semântico de streaming pubnub não há nenhum banco de dados subjacente do Power BI. Você não pode criar visuais de relatório com base nos dados que fluem e não pode usar a funcionalidade de relatório, como filtragem ou visuais do Power BI. Você pode visualizar um modelo semântico de streaming do PubNub apenas adicionando um bloco ao painel e configurando um fluxo de dados pubnub como a origem.

Os blocos baseados em um modelo semântico de streaming do PubNub são otimizados para exibir rapidamente dados em tempo real. Como o Power BI é conectado diretamente ao fluxo de dados do PubNub, há pouca latência entre o momento em que os dados são enviados por push ao serviço do Power BI e quando o visual é atualizado.

Matriz de modelo semântico de streaming

A tabela a seguir descreve os três tipos de modelos semânticos para streaming em tempo real e lista seus recursos e limitações.

Recurso Push Streaming PubNub
Os blocos de dashboard são atualizados em tempo real à medida que os dados são enviados por push Sim.
Para visuais criados por meio de relatórios e fixados no dashboard.
Sim.
Para blocos de streaming personalizados adicionados diretamente ao dashboard.
Sim.
Para blocos de streaming personalizados adicionados diretamente ao dashboard.
Os blocos de dashboard são atualizados com animações suaves Não. Sim. Sim.
Dados armazenados permanentemente no Power BI para análise histórica Sim. Não.
Os dados são armazenados temporariamente por uma hora para renderizar visuais.
Não.
Criar relatórios do Power BI com base nos dados Sim. Não. Não.
Taxa máxima de ingestão de dados 1 solicitação
16 MB/solicitação
5 solicitações
15 KB/solicitação
N/A
Os dados não estão sendo enviados por push para o Power BI.
Limites na taxa de transferência de dados 1 milhão de linhas/hora Nenhum. N/A
Os dados não estão sendo enviados por push para o Power BI.

Enviar dados por push para modelos semânticos

Esta seção descreve como criar e enviar dados por push para os três tipos primários de modelos semânticos em tempo real que você pode usar no streaming em tempo real.

Você pode enviar dados por push para um modelo semântico usando os seguintes métodos:

  • APIs REST do Power BI
  • A interface do usuário do modelo semântico de streaming do Power BI
  • Stream Analytics do Azure

Usar APIs REST do Power BI para enviar dados por push

Você pode usar as APIs REST do Power BI para criar e enviar dados para enviar por push modelos semânticos e para modelos semânticos de streaming. Quando você cria um modelo semântico usando APIs REST do Power BI, o sinalizador defaultMode especifica se o modelo semântico é push ou streaming.

Se nenhum sinalizador defaultMode for definido, o modelo semântico usará como padrão um modelo semântico por push. Se o valor defaultMode for definido como pushStreaming, o modelo semântico será um modelo semântico de streaming e push e fornecerá os benefícios de ambos os tipos de modelo semântico.

Observação

Quando você usa modelos semânticos com o sinalizador defaultMode definido como pushStreaming, se uma solicitação exceder a restrição de tamanho de 15 KB para um modelo semântico de streaming, mas for menor que a restrição de tamanho de 16 MB para um modelo semântico por push, a solicitação terá êxito e as atualizações de dados no modelo semântico por push. No entanto, os blocos de streaming sofrerão falha temporária.

Depois que um modelo semântico é criado, você pode usar as APIs REST do PostRows para enviar dados por push. Todas as solicitações para APIs REST são protegidas usando o OAuth do Microsoft Entra ID.

Usar a interface do usuário do modelo semântico de streaming para enviar dados por push

No serviço do Power BI, você pode criar um modelo semântico selecionando a abordagem da API, conforme mostrado na seguinte captura de tela:

Screenshot of the New streaming semantic model choices, showing the API selection.

Ao criar o novo modelo semântico de streaming, você pode habilitar a Análise de dados históricos, conforme mostrado na captura de tela a seguir. Essa seleção tem um impacto significativo.

Screenshot of the New streaming semantic model, showing Historic data analysis enabled.

Quando a Análise de dados históricos é desabilitada, como é por padrão, você cria um modelo semântico de streaming, conforme descrito anteriormente. Quando a Análise de dados históricos está habilitada, o modelo semântico criado se torna um modelo semântico de streaming e um modelo semântico por push. Essa configuração é equivalente ao uso das APIs REST do Power BI para criar um modelo semântico com o defaultMode definido como pushStreaming, conforme descrito anteriormente.

Observação

Os modelos semânticos de streaming criados usando a interface do usuário do serviço do Power BI não exigem autenticação do Microsoft Entra. Nesses modelos semânticos, o proprietário do modelo semântico recebe uma URL com uma rowkey, que autoriza o solicitante a enviar dados por push para o modelo semântico sem usar um token de portador OAuth do Microsoft Entra ID. No entanto, a abordagem do Microsoft Entra ID ainda funciona para enviar dados por push para o modelo semântico.

Usar o Azure Stream Analytics para enviar dados por push

Você pode adicionar o Power BI como uma saída no Azure Stream Analytics e, em seguida, visualizar esses fluxos de dados no serviço do Power BI em tempo real. Esta seção descreve os detalhes técnicos desse processo.

O Azure Stream Analytics usa as APIs REST do Power BI para criar o próprio fluxo de dados de saída para o Power BI, com defaultMode definido como pushStreaming. O modelo semântico resultante pode usar push e streaming. Quando você cria o modelo semântico, o Azure Stream Analytics define o sinalizador retentionPolicy como basicFIFO. Com essa configuração, o banco de dados que dá suporte ao modelo semântico por push armazena 200.000 linhas e descarta linhas de forma inicial (FIFO).

Importante

Se a consulta do Azure Stream Analytics resultar em saída muito rápida para o Power BI (por exemplo, uma ou duas vezes por segundo), o Azure Stream Analytics fará envio em lote dessas saídas em apenas uma solicitação. Esse envio em lote pode fazer com que o tamanho da solicitação exceda o limite de blocos de streaming, e os blocos de streaming podem falhar ao renderizar. Nesse caso, a melhor prática é reduzir a taxa de saída de dados para o Power BI. Por exemplo, em vez de um valor máximo a cada segundo, solicite um valor máximo acima de dez segundos.

Configurar seu modelo semântico de streaming em tempo real no Power BI

Para iniciar o streaming em tempo real, você precisará escolher uma das duas seguintes maneiras para consumir dados de streaming no Power BI:

  • Blocos com visuais de dados streaming
  • Modelos semânticos criados com base em dados de streaming que persistem no Power BI

Com qualquer opção, você precisará configurar os dados de streaming no Power BI. Para fazer com que seu modelo semântico de streaming em tempo real funcione no Power BI:

  1. Em um dashboard novo ou existente, selecione Adicionar um bloco.

  2. Na página Adicionar um bloco, selecione Dados de Streaming Personalizados e, em seguida, selecione Avançar.

    Screenshot of the Add a tile page, showing the Custom Streaming Data selection.

  3. Na página Adicionar um bloco de dados de streaming personalizado, você pode selecionar um modelo semântico existente ou selecionar Gerenciar modelos semânticos para importar seu modelo semântico de streaming se você já tiver criado um. Se você ainda não tiver dados de streaming configurados, selecione Adicionar modelo semântico de streaming para começar.

    Screenshot of the dashboard, showing the Add streaming semantic model link in the Add a custom streaming data tile.

  4. Na página Novo modelo semântico de streaming, selecione API, Azure Stream ou PubNub e selecione Avançar.

    Screenshot of the New streaming semantic model choices, showing API, Azure Stream, and PubNub options.

Criar um modelo semântico de streaming

Há três maneiras de criar um feed de dados de streaming em tempo real que o Power BI pode consumir e visualizar:

  • API REST do Power BI usando um ponto de extremidade de streaming em tempo real
  • Azure Stream
  • PubNub

Esta seção descreve as opções da API REST do Power BI e pubNub e explica como criar um bloco de streaming ou um modelo semântico da fonte de dados de streaming. Em seguida, você pode usar o modelo semântico para criar relatórios. Para obter mais informações sobre a opção Azure Stream, confira Saída do Power BI do Azure Stream Analytics.

Use a API REST do Power BI

A API REST do Power BI facilita o streaming em tempo real para desenvolvedores. Depois de selecionar API na tela Novo modelo semântico de streaming e selecionar Avançar, você poderá fornecer entradas que permitem que o Power BI se conecte e use seu ponto de extremidade. Para obter mais informações sobre a API, confira Usar as APIs REST do Power BI.

Screenshot of the New streaming semantic model dialog, showing the Power BI REST API entries for a connection.

Se você quiser que o Power BI armazene os dados que esse fluxo de dados envia, para que você possa fazer relatórios e análises sobre os dados coletados, habilite a Análise de dados históricos.

Depois de criar o fluxo de dados com êxito, você obtém um ponto de extremidade da URL da API REST. Seu aplicativo pode chamar o ponto de extremidade usando solicitações POST para enviar seus dados de streaming por push para o modelo semântico do Power BI. Em suas solicitações POST, verifique se o corpo da solicitação corresponde ao JSON de exemplo fornecido pela interface do usuário do Power BI. Por exemplo, encapsule os objetos JSON em uma matriz.

Cuidado

Para modelos semânticos de streaming criados na interface do usuário do serviço do Power BI, o proprietário do modelo semântico obtém uma URL que inclui uma chave de recurso. Essa chave autoriza o solicitante a enviar dados por push para o modelo semântico sem usar um token de portador OAuth do Microsoft Entra ID. Tenha em mente as implicações de ter uma chave secreta na URL quando você trabalha com esse tipo de modelo semântico e método.

Usar PubNub

A integração do streaming PubNub com o Power BI ajuda você a criar e usar seus fluxos de dados de baixa latência do PubNub no Power BI. Ao selecionar PubNub na tela Novo modelo semântico de streaming e selecionar Avançar, você verá a seguinte tela:

Screenshot of the New streaming semantic model dialog, showing the PubNub entries for connection.

Importante

Você pode proteger canais do PubNub usando uma chave de autenticação do PAM (Gerenciador de Acesso do PubNub). Essa chave será compartilhada com todos os usuários que têm acesso ao dashboard. Para obter mais informações sobre o controle de acesso do PubNub, confira Gerenciar Acesso.

Os fluxos de dados do PubNub costumam estar em grande volume e, no formato original, nem sempre são adequados para armazenamento e análise histórica. Para usar o Power BI para análise histórica de dados do PubNub, você precisa agregar o fluxo bruto do PubNub e enviá-lo ao Power BI, por exemplo, usando o Azure Stream Analytics.

Exemplo de streaming em tempo real no Power BI

Aqui está um exemplo rápido de como funciona o streaming em tempo real no Power BI. Este exemplo usa um fluxo do PubNub disponível publicamente. Acompanhe o exemplo para ver por si mesmo o valor do streaming em tempo real.

  1. Na serviço do Power BI, selecione ou crie um dashboard. Na parte superior da tela, selecione Editar>Adicionar um bloco.

  2. Na tela Adicionar um bloco, selecione Dados de Streaming Personalizados e, em seguida, selecione Avançar.

    Screenshot of the dashboard, showing the Add tile with the Custom streaming data selection.

  3. Na página Adicionar um bloco de dados de streaming personalizado, selecione Adicionar modelo semântico de streaming.

    Screenshot of the dashboard, showing the Add streaming semantic model link in the Add a custom streaming data tile.

  4. Na página Novo modelo semântico de streaming, selecione PubNub e selecione Avançar.

  5. Na próxima tela, insira um Nome de modelo semântico, insira os valores a seguir nos próximos dois campos e selecione Avançar.

    • Sub-chave:sub-c-99084bc5-1844-4e1c-82ca-a01b18166ca8
    • Nome do canal:pubnub-sensor-network

    Screenshot of the New streaming semantic model dialog, showing how to create a Semantic model name and entries in the Sub-key and Channel name fields.

  6. Na próxima tela, mantenha os valores preenchidos automaticamente e selecione Criar.

    Screenshot of the New streaming semantic model dialog, showing defaults for the Semantic model name and Values from stream fields.

  7. De volta ao workspace do Power BI, crie um painel e, na parte superior da tela, selecione Editar>Adicionar um bloco.

  8. Selecione Dados de Streaming Personalizados e, em seguida, selecione Avançar.

  9. Na página Adicionar um bloco de dados de streaming personalizado, selecione seu novo modelo semântico de streaming e selecione Avançar.

    Experimente com o modelo semântico de exemplo. Ao adicionar campos de valor a gráficos de linhas e adicionar outros blocos, você pode obter um dashboard em tempo real semelhante à seguinte captura de tela:

    Screenshot of the Environmental sensors dashboard, showing the results in real-time.

Depois, crie seus próprios modelos semânticos e transmita dados dinâmicos ao Power BI.

Perguntas e respostas

Aqui estão algumas perguntas e respostas comuns sobre streaming em tempo real no Power BI.

Você pode usar filtros em modelos semânticos por push ou streaming?

Modelos semânticos de streaming não dão suporte à filtragem. Para modelos semânticos por push, você pode criar um relatório, filtrar o relatório e fixar os visuais filtrados em um painel. No entanto, não há como alterar o filtro no visual quando ele está no dashboard.

Você pode fixar o bloco de relatório em tempo real no dashboard separadamente e depois alterar os filtros. No entanto, os blocos de relatório dinâmico não serão atualizados em tempo real à medida que os dados forem enviados por push. Você precisa atualizar manualmente o visual selecionando o ícone Atualizar no canto superior direito da página do dashboard.

Quando você aplica filtros a modelos semânticos por push que têm campos DateTime com precisão de milissegundos, não há suporte para operadores de equivalência. No entanto, operadores como maior que (>) ou menor que (<) funcionam corretamente.

Como você vê o valor mais recente em modelos semânticos de streaming ou push?

Modelos semânticos de streaming são projetados para exibir os dados mais recentes. Você pode usar o tipo de visual de streaming Cartão para visualizar facilmente os valores numéricos mais recentes. Os visuais de cartão não dão suporte aos tipos de dados DateTime ou Text.

Para modelos semânticos por push, se você tiver um carimbo de data/hora no esquema, poderá tentar criar um visual de relatório com o filtro last N.

Como fazer modelagem em modelos semânticos em tempo real?

A modelagem não é possível em um modelo semântico de streaming, pois os dados não são armazenados permanentemente. Para um modelo semântico push, você pode usar a API REST de criação de modelo semântico para criar um modelo semântico com relação e medidas e usar as APIs REST de atualização de tabelas para adicionar medidas às tabelas existentes.

Como você pode limpar todos os valores em um modelo semântico de streaming ou push?

Em um modelo semântico push, você pode usar a chamada à API REST excluir linhas. Não há como limpar dados de um modelo semântico de streaming, embora os dados se limpem após uma hora.

Se você configura uma saída do Azure Stream Analytics para o Power BI, mas não a vê aparecer no Power BI, o que está errado?

Execute estas etapas para solucionar o problema:

  1. Reinicie o trabalho do Azure Stream Analytics.
  2. Tente autorizar novamente a conexão do Power BI no Azure Stream Analytics.
  3. Verifique se você está verificando o mesmo workspace no serviço do Power BI especificado para a saída do Azure Stream Analytics.
  4. Verifique se a consulta do Azure Stream Analytics é gera saída explicitamente para a saída do Power BI usando a palavra-chave INTO.
  5. Determine se o trabalho do Azure Stream Analytics tem dados fluindo por ele. O modelo semântico é criado somente quando os dados estão sendo transmitidos.
  6. Você pode verificar os logs do Azure Stream Analytics para ver se há erros ou avisos.

Atualização automática de página

É possível usar a atualização automática da página em um nível de página de relatório para definir um intervalo de atualização para visuais que estão ativos apenas quando a página é consumida. A atualização automática de página está disponível somente para fontes de dados do DirectQuery. O intervalo mínimo de atualização depende do tipo de workspace em que o relatório é publicado e das configurações de capacidade do administrador para workspaces Premium.

Para obter mais informações sobre a atualização automática de página, confira Atualização automática de página no Power BI.