Stream Analytics y Power BI: panel de análisis en tiempo real de flujo de datosStream Analytics and Power BI: A real-time analytics dashboard for streaming data
Azure Stream Analytics permite aprovechar una de las principales herramientas de inteligencia empresarial, Microsoft Power BI.Azure Stream Analytics enables you to take advantage of one of the leading business intelligence tools, Microsoft Power BI. En este artículo, aprenderá a crear herramientas de inteligencia empresarial personalizadas utilizando Power BI como salida para los trabajos de Azure Stream Analytics.In this article, you learn how create business intelligence tools by using Power BI as an output for your Azure Stream Analytics jobs. También aprenderá a crear y usar un panel en tiempo real que el trabajo de Stream Analytics actualiza continuamente.You also learn how to create and use a real-time dashboard that is continuously updated by the Stream Analytics job.
Este artículo continúa a partir del tutorial Detección de fraudes en tiempo real de Stream Analytics.This article continues from the Stream Analytics real-time fraud detection tutorial. Se basa en el flujo de trabajo creado en ese tutorial y agrega una salida de Power BI para que se puedan visualizar llamadas telefónicas fraudulentas detectadas por un trabajo de Streaming Analytics.It builds on the workflow created in that tutorial and adds a Power BI output so that you can visualize fraudulent phone calls that are detected by a Streaming Analytics job.
Puede ver un vídeo que muestra este escenario.You can watch a video that illustrates this scenario.
PrerrequisitosPrerequisites
Antes de empezar, asegúrese de que dispone de lo siguiente:Before you start, make sure you have the following:
- Una cuenta de Azure.An Azure account.
- Una cuenta de Power BI Pro.An account for Power BI Pro. Puede usar una cuenta profesional o una cuenta educativa.You can use a work account or a school account.
- Versión completa del tutorial Detección de fraudes en tiempo real.A completed version of the real-time fraud detection tutorial. El tutorial incluye una aplicación que genera metadatos de llamada telefónica ficticia.The tutorial includes an app that generates fictitious telephone-call metadata. En el tutorial, se crea un centro de eventos y se envían los datos de llamada telefónica de streaming al centro de eventos.In the tutorial, you create an event hub and send the streaming phone call data to the event hub. Escriba una consulta que detecte llamadas fraudulentas (llamadas del mismo número a la vez en distintas ubicaciones).You write a query that detects fraudulent calls (calls from the same number at the same time in different locations).
Incorporación del resultado de Power BIAdd Power BI output
En el tutorial de detección de fraudes en tiempo real, la salida se envía a Azure Blob Storage.In the real-time fraud detection tutorial, the output is sent to Azure Blob storage. En esta sección se agrega una salida que envía información a Power BI.In this section, you add an output that sends information to Power BI.
En Azure Portal, abra la cuenta de Stream Analytics que creó antes.In the Azure portal, open the Streaming Analytics job that you created earlier. Si usó el nombre sugerido, el trabajo se llama
sa_frauddetection_job_demo
.If you used the suggested name, the job is namedsa_frauddetection_job_demo
.En el menú izquierdo, seleccione Salidas en Topología de trabajo.On the left menu, select Outputs under Job topology. Luego, seleccione + Agregar y elija Power BI en el menú desplegable.Then, select + Add and choose Power BI from the dropdown menu.
Seleccione + Agregar > Power BI.Select + Add > Power BI. A continuación, rellene el formulario con los detalles siguientes y seleccione Autorizar para usar su propia identidad de usuario para conectarse a Power BI (el token es válido durante 90 días).Then fill the form with the following details and select Authorize to use your own user identity to connect to Power BI (the token is valid for 90 days).
Nota
Para trabajos de producción, le recomendamos que se conecte a Uso de la identidad administrada para autenticar el trabajo de Azure Stream Analytics en Power BI.For production jobs, we recommend to connect to use Managed Identity to authenticate your Azure Stream Analytics job to Power BI.
ConfiguraciónSetting | Valor sugeridoSuggested value |
---|---|
Alias de salidaOutput alias | CallStream PowerBICallStream-PowerBI |
Nombre del conjunto de datosDataset name | sa-datasetsa-dataset |
Nombre de la tablaTable name | fraudulent-callsfraudulent-calls |
Advertencia
Si Power BI tiene un conjunto de datos y una tabla con los mismos nombres que especifica en el trabajo de Stream Analytics, se sobrescribirán los existentes.If Power BI has a dataset and table that have the same names as the ones that you specify in the Stream Analytics job, the existing ones are overwritten. Se recomienda no crear explícitamente este conjunto de datos y la tabla en la cuenta de Power BI.We recommend that you do not explicitly create this dataset and table in your Power BI account. Se crearán automáticamente cuando inicie el trabajo de Stream Analytics y este empiece a enviar salida a Power BI.They are automatically created when you start your Stream Analytics job and the job starts pumping output into Power BI. Si la consulta de trabajo no genera ningún resultado, el conjunto de datos y la tabla no se crean.If your job query doesn't return any results, the dataset and table are not created.
Después de seleccionar Autorizar, se abre una ventana emergente y se le pide que escriba las credenciales para autenticarse en su cuenta de Power BI.When you select Authorize, a pop-up window opens and you are asked to provide credentials to authenticate to your Power BI account. Una vez que la autorización se realice correctamente, guarde la configuración.Once the authorization is successful, Save the settings.
Haga clic en Crear.Click Create.
El conjunto de datos se crea con la siguiente configuración:The dataset is created with the following settings:
- defaultRetentionPolicy: BasicFIFO: los datos son FIFO y el máximo de filas son 200 000 filas.defaultRetentionPolicy: BasicFIFO - Data is FIFO, with a maximum of 200,000 rows.
- defaultMode: hybrid: el conjunto de datos admite iconos de streaming (también conocidos como inserción) y elementos visuales tradicionales basados en informes.defaultMode: hybrid - The dataset supports both streaming tiles (also known as push) and traditional report-based visuals. En cuanto al contenido de inserción, en este caso los datos se actualizan continuamente desde el trabajo de Stream Analytics sin necesidad de programar la actualización desde Power BI.For the push content, the data is continuously updated from the stream analytics job in this case, with no need to schedule refresh from the Power BI side.
Actualmente, no se pueden crear conjuntos de datos con otras marcas.Currently, you can't create datasets with other flags.
Para más información sobre conjuntos de datos de Power BI, consulte la referencia de la API de REST de Power BI.For more information about Power BI datasets, see the Power BI REST API reference.
Escritura de la consultaWrite the query
Cierre la hoja Salidas y vuelva a la hoja del trabajo.Close the Outputs blade and return to the job blade.
Haga clic en el cuadro Consulta.Click the Query box.
Escriba la siguiente consulta.Enter the following query. Esta consulta es similar a la consulta de autocombinación que creó en el tutorial de detección de fraudes.This query is similar to the self-join query you created in the fraud-detection tutorial. La diferencia es que esta consulta envía los resultados a la nueva salida generada (
CallStream-PowerBI
).The difference is that this query sends results to the new output you created (CallStream-PowerBI
).Nota
Si no asignó el nombre
CallStream
a la entrada en el tutorial de detección de fraudes, sustituya el nombre porCallStream
en las cláusulas FROM y JOIN de la consulta.If you did not name the inputCallStream
in the fraud-detection tutorial, substitute your name forCallStream
in the FROM and JOIN clauses in the query./* Our criteria for fraud: Calls made from the same caller to two phone switches in different locations (for example, Australia and Europe) within five seconds */ SELECT System.Timestamp AS WindowEnd, COUNT(*) AS FraudulentCalls INTO "CallStream-PowerBI" FROM "CallStream" CS1 TIMESTAMP BY CallRecTime JOIN "CallStream" CS2 TIMESTAMP BY CallRecTime /* Where the caller is the same, as indicated by IMSI (International Mobile Subscriber Identity) */ ON CS1.CallingIMSI = CS2.CallingIMSI /* ...and date between CS1 and CS2 is between one and five seconds */ AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5 /* Where the switch location is different */ WHERE CS1.SwitchNum != CS2.SwitchNum GROUP BY TumblingWindow(Duration(second, 1))
Haga clic en Save(Guardar).Click Save.
Prueba de la consultaTest the query
Esta sección es opcional pero conveniente.This section is optional, but recommended.
Si la aplicación TelcoStreaming no se ejecuta en este momento, siga estos pasos para iniciarla:If the TelcoStreaming app is not currently running, start it by following these steps:
Abra el símbolo del sistema.Open Command Prompt.
Vaya a la carpeta donde se encuentran los archivos telcogenerator.exe y telcodatagen.exe.config modificado.Go to the folder where the telcogenerator.exe and modified telcodatagen.exe.config files are.
Ejecute el siguiente comando:Run the following command:
telcodatagen.exe 1000 .2 2
En la página Consulta del trabajo de Stream Analytics, haga clic en los puntos que aparecen junto a la entrada
CallStream
y, después, seleccione Datos de ejemplo de la entrada.On the Query page for your Stream Analytics job, click the dots next to theCallStream
input and then select Sample data from input.Especifique que quiere datos correspondientes a tres minutos y haga clic en OK.Specify that you want three minutes' worth of data and click OK. Espere a que se le notifique que se ha realizado un muestreo de los datos.Wait until you're notified that the data has been sampled.
Haga clic en Probar y revise los resultados.Click Test and review the results.
Ejecutar el trabajoRun the job
Asegúrese de que la aplicación TelcoStreaming se ejecuta.Make sure the TelcoStreaming app is running.
Vaya a la página Información general del trabajo de Stream Analytics y seleccione Iniciar.Navigate to the Overview page for your Stream Analytics job and select Start.
El trabajo de Stream Analytics empieza a buscar llamadas fraudulentas en el flujo entrante.Your Streaming Analytics job starts looking for fraudulent calls in the incoming stream. También crea el conjunto de datos y la tabla en Power BI y empieza a enviarles datos sobre las llamadas fraudulentas.The job also creates the dataset and table in Power BI and starts sending data about the fraudulent calls to them.
Creación del panel en Power BICreate the dashboard in Power BI
Vaya a Powerbi.com e inicie sesión con su cuenta profesional o educativa.Go to Powerbi.com and sign in with your work or school account. Si la consulta del trabajo de Stream Analytics genera resultados, verá que el conjunto de datos ya se ha creado:If the Stream Analytics job query outputs results, you see that your dataset is already created:
En el área de trabajo, haga clic en + Crear.In your workspace, click + Create.
Cree otro panel y asígnele el nombre
Fraudulent Calls
.Create a new dashboard and name itFraudulent Calls
.En la parte superior de la ventana, haga clic en Agregar icono, seleccione DATOS DE TRANSMISIÓN PERSONALIZADOS y luego haga clic en Siguiente.At the top of the window, click Add tile, select CUSTOM STREAMING DATA, and then click Next.
En YOUR DATSETS (SUS CONJUNTOS DE DATOS), seleccione el conjunto de datos y haga clic en Siguiente.Under YOUR DATSETS, select your dataset and then click Next.
En Tipo de visualización, seleccione Tarjeta y luego, en la lista Campos, seleccione fraudulentcalls.Under Visualization Type, select Card, and then in the Fields list, select fraudulentcalls.
Haga clic en Next.Click Next.
Rellene detalles del icono, como el título y el subtítulo.Fill in tile details like a title and subtitle.
Haga clic en Aplicar.Click Apply.
Ahora tiene un contador de fraudes.Now you have a fraud counter!
Siga de nuevo los pasos para agregar un icono (a partir del paso 4).Follow the steps again to add a tile (starting with step 4). Esta vez, haga lo siguiente:This time, do the following:
Cuando obtenga el Tipo de visualización, seleccione Gráfico de líneas.When you get to Visualization Type, select Line chart.
Agregue un eje y seleccione windowend.Add an axis and select windowend.
Agregue un valor y seleccione fraudulentcalls.Add a value and select fraudulentcalls.
En Período de tiempo para mostrar, seleccione los últimos 10 minutos.For Time window to display, select the last 10 minutes.
Haga clic en Siguiente, agregue el título y el subtítulo y haga clic en Aplicar.Click Next, add a title and subtitle, and click Apply.
El panel de Power BI le ofrece ahora dos vistas de datos sobre las llamadas fraudulentas detectadas en los datos de streaming.The Power BI dashboard now gives you two views of data about fraudulent calls as detected in the streaming data.
Más información sobre limitaciones y prácticas recomendadasLearn about limitations and best practices
Actualmente, se puede llamar a Power BI una vez por segundo aproximadamente.Currently, Power BI can be called roughly once per second. Los objetos visuales de streaming admiten paquetes de 15 KB.Streaming visuals support packets of 15 KB. Si el tamaño es superior, se producirá un error en los objetos visuales de streaming (pero la inserción continuará funcionando).Beyond that, streaming visuals fail (but push continues to work). Gracias a estas limitaciones, Power BI se presta de forma más natural a los casos en los que Azure Stream Analytics realiza una reducción considerable de la carga de datos.Because of these limitations, Power BI lends itself most naturally to cases where Azure Stream Analytics does a significant data load reduction. Se recomienda utilizar una ventana de saltos de tamaño constante o una ventana de salto para asegurarse de que la inserción de datos es a lo sumo de una inserción por segundo y de que la consulta se ajusta a los requisitos de capacidad de procesamiento.We recommend using a Tumbling window or Hopping window to ensure that data push is at most one push per second, and that your query lands within the throughput requirements.
Puede utilizar la siguiente ecuación para calcular el valor que asignar a la ventana en segundos:You can use the following equation to compute the value to give your window in seconds:
Por ejemplo:For example:
- Tiene 1000 dispositivos que envían datos a intervalos de un segundo.You have 1,000 devices sending data at one-second intervals.
- Está usando Power BI Pro SKU que admite 1 000 000 de filas por hora.You are using the Power BI Pro SKU that supports 1,000,000 rows per hour.
- Desea publicar la cantidad media de datos por dispositivo en Power BI.You want to publish the amount of average data per device to Power BI.
En consecuencia, la ecuación se convierte en:As a result, the equation becomes:
Con esta configuración, se puede cambiar la consulta original a la siguiente:Given this configuration, you can change the original query to the following:
SELECT
MAX(hmdt) AS hmdt,
MAX(temp) AS temp,
System.TimeStamp AS time,
dspl
INTO "CallStream-PowerBI"
FROM
Input TIMESTAMP BY time
GROUP BY
TUMBLINGWINDOW(ss,4),
dspl
Renovar la autorizaciónRenew authorization
Si la contraseña ha cambiado desde que se creó o autenticó por última vez el trabajo, tendrá que volver a autenticar la cuenta de Power BI.If the password has changed since your job was created or last authenticated, you need to reauthenticate your Power BI account. Si Azure AD Multi-Factor Authentication se configura en el inquilino de Azure Active Directory (Azure AD), también debe renovar la autorización de Power BI cada dos semanas.If Azure AD Multi-Factor Authentication is configured on your Azure Active Directory (Azure AD) tenant, you also need to renew Power BI authorization every two weeks. Si no se renueva, podrían aparecer síntomas, como la ausencia de salida del trabajo o un Authenticate user error
en los registros de operaciones.If you don't renew, you could see symptoms such as a lack of job output or an Authenticate user error
in the operation logs.
De forma similar, si un trabajo intenta iniciarse después de que el token haya caducado, se producirá un error y no se iniciará.Similarly, if a job starts after the token has expired, an error occurs and the job fails. Para resolver este problema, detenga el trabajo en ejecución y vaya a la salida de Power BI.To resolve this issue, stop the job that's running and go to your Power BI output. A fin de evitar que se pierdan datos, seleccione el vínculo Renovar autorización y reinicie el trabajo desde la Hora de la última detención.To avoid data loss, select the Renew authorization link, and then restart your job from the Last Stopped Time.
Después de que la autorización se haya actualizado con Power BI, se mostrará una alerta verde en el área de autorización para indicar que el problema se ha resuelto.After the authorization has been refreshed with Power BI, a green alert appears in the authorization area to reflect that the issue has been resolved.
Pasos siguientesNext steps
- Introducción a Azure Stream AnalyticsIntroduction to Azure Stream Analytics
- Introducción al uso de Azure Stream AnalyticsGet started using Azure Stream Analytics
- Salidas de Stream AnalyticsStream Analytics outputs
- Referencia del lenguaje de consulta de Azure Stream AnalyticsAzure Stream Analytics query language reference
- Referencia de API de REST de administración de Azure Stream AnalyticsAzure Stream Analytics Management REST API reference
- Uso de la identidad administrada para autenticar el trabajo de Azure Stream Analytics en Power BIUse Managed Identity to authenticate your Azure Stream Analytics job to Power BI