Azure Data Explorer (Kusto)
Resumen
Elemento | Descripción |
---|---|
Estado de la versión | Disponibilidad general |
Productos | Excel Power BI (Modelos semánticos) Power BI (Flujos de datos) Fabric (Flujo de datos Gen2) Power Apps (Flujos de datos) Dynamics 365 Customer Insights |
Tipos de autenticación admitidos | Cuenta de organización |
Documentación de Referencia de las Funciones | — |
Nota:
Algunas capacidades pueden estar presentes en un producto, pero otras no, debido a los programas de implementación y las capacidades específicas del host.
Requisitos previos
Suscripción a Azure. Vaya a Obtener evaluación gratuita de Azure.
Una cuenta de correo electrónico de la organización que sea miembro de Microsoft Entra ID. En este artículo se usa esta cuenta para conectarse a los ejemplos del clúster de ayuda de Azure Data Explorer.
Funcionalidades admitidas
- Importar
- DirectQuery (modelos semánticos de Power BI)
- Opciones avanzadas
- Limitar el número de registro de resultados de consulta
- Limitar el tamaño de los datos del resultado de la consulta (en bytes)
- Deshabilitar el truncamiento del conjunto de resultados
- Instrucciones de establecimiento adicionales
Conexión a Azure Data Explorer desde Power Query Desktop
Para conectar a Azure Data Explorer desde Power Query Desktop:
Seleccione Azure Data Explorer (Kusto) en la experiencia de obtención de datos. La experiencia de obtención de datos en Power Query Desktop varía entre las aplicaciones. Para obtener más información sobre la experiencia de obtención de datos de Power Query Desktop para la aplicación, vaya a Dónde obtener datos.
En Azure Data Explorer (Kusto), proporcione el nombre del clúster de Azure Data Explorer. En este ejemplo, use
https://help.kusto.windows.net
para acceder al clúster de ayuda de ejemplo. Para otros clústeres, la dirección URL tiene el formato https://<NombreClúster>.<Región>.kusto.windows.net.También puede seleccionar una base de datos hospedada en el clúster al que se está conectando, y una de las tablas de la base de datos, o una consulta similar a
StormEvents | take 1000
.Si desea usar opciones avanzadas, seleccione la opción y escriba los datos que se van a usar con esa opción. Más información: Conectar con opciones avanzadas
Nota:
Es posible que tenga que desplazarse hacia abajo para mostrar todas las opciones avanzadas y la selección de conectividad de datos.
Seleccione el modo de conectividad de datos Importar o DirectQuery (solo Power BI Desktop). Más información: Cuándo usar el modo Importar o Direct Query
Seleccione OK (Aceptar) para continuar.
Si no dispone de una conexión al clúster de ayuda, seleccione Iniciar sesión. Inicie sesión con una cuenta de organización y, luego, seleccione Conectar.
En Navegador, seleccione la información de base de datos que desee y después elija Cargar para cargar los datos o Transformar datos para seguir transformando los datos en el editor de Power Query. En este ejemplo, StormEvents se seleccionó en la base de datos Samples.
Conexión a Azure Data Explorer desde Power Query Online
Para conectar a Azure Data Explorer desde Power Query Online:
Seleccione la opción Azure Data Explorer (Kusto) en la experiencia de obtención de datos. Las distintas aplicaciones tienen diferentes formas de obtener datos en Power Query Online. Para obtener más información sobre cómo acceder a la experiencia de obtención de datos de Power Query Online desde la aplicación, vaya a Dónde obtener datos.
En Conectar a origen de datos, proporcione el nombre del clúster de Azure Data Explorer. En este ejemplo, use
https://help.kusto.windows.net
para acceder al clúster de ayuda de ejemplo. Para otros clústeres, la dirección URL tiene el formato https://<NombreClúster>.<Región>.kusto.windows.net.También puede seleccionar una base de datos hospedada en el clúster al que se está conectando, y una de las tablas de la base de datos, o una consulta similar a
StormEvents | take 1000
.Si desea usar opciones avanzadas, seleccione la opción y escriba los datos que se van a usar con esa opción. Más información: Conectar con opciones avanzadas
Si es necesario, seleccione la puerta de enlace de datos local en Puerta de enlace de datos .
Si no dispone de una conexión al clúster de ayuda, seleccione Iniciar sesión. Inicie sesión con una cuenta de organización.
Una vez que haya iniciado sesión correctamente, seleccione Siguiente.
En la página Elegir datos, seleccione la información de base de datos que desee y después elija Transformar datos o Siguiente para seguir transformando los datos en el editor de Power Query. En este ejemplo, StormEvents se seleccionó en la base de datos Samples.
Conectarse mediante las opciones avanzadas
Tanto el espacio de trabajo de Power Query como Power Query Online proporcionan un conjunto de opciones avanzadas que puede agregar a la consulta de ser necesario.
En la siguiente tabla se enumeran todas las opciones avanzadas que puede configurar en el espacio de trabajo de Power Query y en Power Query Online.
Opción avanzada | Descripción |
---|---|
Limitar el número de registro de resultados de consulta | Número máximo de registros que se van a devolver en el resultado. |
Limitar el tamaño de los datos del resultado de la consulta (en bytes) | Tamaño máximo de los datos en bytes que se van a devolver en el resultado. |
Deshabilitar el truncamiento del conjunto de resultados | Habilite o deshabilite el truncamiento de resultados mediante la opción notruncation de la solicitud. |
Instrucciones SET adicionales | Establece las opciones de consulta para la duración de la consulta. Las opciones de consulta controlan cómo se ejecuta una consulta y devuelve los resultados. Varias instrucciones SET se pueden separar por punto y coma. |
Para obtener información sobre las opciones avanzadas adicionales que no están disponibles en la interfaz de usuario de Power Query, vaya a Configuración de las opciones del conector de Azure Data Explorer en una consulta M.
Cuándo usar el modo Importar o Direct Query
En el modo de importación, los datos se trasladan a Power BI. En el modo DirectQuery, los datos se consultan directamente desde el clúster.
Use el modo de importación si:
- El conjunto de datos es pequeño.
- No necesita datos casi en tiempo real.
- Los datos ya están agregados o si realiza una agregación en Kusto.
Use el modo DirectQuery si:
- El conjunto de datos es muy grande.
- Necesita datos casi en tiempo real.
Para obtener más información sobre el uso de DirectQuery, vaya a Acerca del uso de DirectQuery en Power BI.
Sugerencias para usar el conector de Azure Data Explorer para consultar datos
En las secciones siguientes se incluyen sugerencias y trucos para usar el lenguaje de consulta Kusto con Power Query.
Consultas complejas en Power BI
Las consultas complejas se expresan más fácilmente en Kusto que en Power Query. Deben implementarse como funciones de Kusto y se invocan en Power BI. Este método es necesario cuando DirectQuery se usa con instrucciones let
en la consulta Kusto. Como Power BI combina dos consultas y las instrucciones let
no se pueden usar con el operador join
, pueden producirse errores de sintaxis. Por lo tanto, guarde cada parte de la combinación como una función Kusto y permita que Power BI combine estas dos funciones.
Simulación de un operador relativo de fecha y hora
Power Query no contiene un operador relativo de fecha y hora como ago()
.
Para simular ago()
, use una combinación de las funciones M DateTime.FixedLocalNow y #duration de Power Query.
En lugar de esta consulta con el operador ago()
:
StormEvents | where StartTime > (now()-5d)
StormEvents | where StartTime > ago(5d)
Use la consulta equivalente siguiente:
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
#"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
#"Filtered Rows"
Configuración de las opciones del conector de Azure Data Explorer en una consulta M
Puede configurar las opciones del conector de Azure Data Explorer desde el editor avanzado de Power Query en el lenguaje de consulta M. Con estas opciones, puede controlar la consulta generada que se envía al clúster de Azure Data Explorer.
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
Source
Puede usar cualquiera de las siguientes opciones en la consulta M:
Opción | Ejemplo | Descripción |
---|---|---|
MaxRows | [MaxRows=300000] |
Agrega a la consulta la instrucción para establecer truncationmaxrecords . Invalida el número máximo predeterminado de registros que una consulta puede devolver al autor de la llamada (truncamiento). |
MaxSize | [MaxSize=4194304] |
Agrega a la consulta la instrucción para establecer truncationmaxsize . Invalida el tamaño máximo predeterminado de los datos que una consulta puede devolver al autor de la llamada (truncamiento). |
NoTruncate | [NoTruncate=true] |
Agrega a la consulta la instrucción para establecer notruncation . Permite suprimir el truncamiento de los resultados de la consulta que se devuelven al autor de la llamada. |
AdditionalSetStatements | [AdditionalSetStatements="set query_datascope=hotcache"] |
Agrega a la consulta las instrucciones de establecimiento proporcionadas. Estas instrucciones se utilizan para establecer las opciones de consulta mientras dure la consulta. Las opciones de consulta controlan cómo se ejecuta una consulta y devuelve los resultados. |
CaseInsensitive | [CaseInsensitive=true] |
Hace que el conector genere consultas que no distinguen mayúsculas de minúsculas: las consultas usarán el operador =~ en lugar del operador == al comparar valores. |
ForceUseContains | [ForceUseContains=true] |
Hace que el conector genere consultas que utilizan contains en lugar del valor predeterminado has al trabajar con campos de texto. Aunque has es mucho más eficaz, no controla las subcadenas. Para más información sobre la diferencia entre los dos tipos de operadores, consulte los operadores de cadena. |
Tiempo de espera | [Timeout=#duration(0,10,0,0)] |
Configura el tiempo de espera del cliente y del servidor de la consulta con la duración proporcionada. |
ClientRequestIdPrefix | [ClientRequestIdPrefix="MyReport"] |
Configura un prefijo ClientRequestId para todas las consultas enviadas por el conector. Esto permite identificar las consultas en el clúster como procedentes de un informe o origen de datos específicos. |
Nota:
Puede combinar varias opciones para lograr el comportamiento necesario: [NoTruncate=true, CaseInsensitive=true]
Alcance de los límites de la consulta Kusto
De manera predeterminada, las consultas Kusto devuelven hasta 500 000 filas o 64 MB, como se describe en los límites de consulta. Para reemplazar estos valores predeterminados, use las opciones avanzadas en la ventana de conexión de Azure Data Explorer (Kusto):
Estas opciones emiten instrucciones SET con la consulta para cambiar los límites de consulta predeterminados:
- Limitar el número de registros de los resultados de la consulta genera un
set truncationmaxrecords
- Limitar el tamaño de los datos de los resultados de la consulta en Bytes genera un
set truncationmaxsize
- Deshabilitar el truncamiento del conjunto de resultados genera un
set notruncation
Distinción entre mayúsculas y minúsculas
De forma predeterminada, el conector genera consultas que usan el operador ==
, que distingue entre mayúsculas y minúsculas, al comparar valores de cadena. Si los datos no distinguen mayúsculas de minúsculas, este no es el comportamiento deseado. Para cambiar la consulta generada, use la opción CaseInsensitive
del conector:
let
Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
#"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
#"Filtered Rows"
Uso de los parámetros de consulta
Puede usar los parámetros de consulta para modificar la consulta de manera dinámica.
Uso de un parámetro de consulta en los pasos de la consulta
Puede usar un parámetro de consulta en cualquier paso de la consulta que lo admita. Por ejemplo, filtre los resultados en función del valor de un parámetro. En este ejemplo, seleccione el menú desplegable del lado derecho de la columna State
en el editor de Power Query, seleccione Filtros de texto>Igual a y, a continuación, seleccione ALABAMA en Mantener filas donde "Estado".
Proporcionar parámetros a una función de Azure Data Explorer
Las funciones de Kusto son una excelente manera de mantener consultas complejas del lenguaje de consulta Kusto (KQL). Se recomienda usar funciones en lugar de insertar KQL en Power Query. La principal ventaja de usar la función es que la lógica se mantiene una vez en un entorno que es fácil de crear y probar.
Las funciones también pueden recibir parámetros y, por tanto, agregar una gran flexibilidad al usuario de Power BI. Power BI tiene muchas maneras de segmentar los datos. Pero todos los filtros y segmentaciones se agregan después del KQL original y, en muchos casos, querrá usar el filtrado en una fase temprana de la consulta. El uso de funciones y parámetros dinámicos es una manera muy eficaz de personalizar la consulta final.
Crear una función
Puede crear la siguiente función en cualquier clúster de Azure Data Explorer al que tenga acceso, incluido un clúster gratuito. La función devuelve la tabla SalesTable
del clúster de ayuda, filtrada por transacciones de ventas mayores o menores que un número proporcionado por el usuario del informe.
.create-or-alter function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
cluster("help").database("ContosoSales").SalesTable
| where (Op==">" and SalesAmount >= Cutoff) or (Op=="<" and SalesAmount <= Cutoff)
}
Después de crear la función, puede probarla mediante:
LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country
También puede probarla mediante:
LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Uso de la función en Power BI
Conéctese al clúster donde creó la función.
En el navegador de Power Query, seleccione la función en la lista de objetos. El conector analiza los parámetros y los presenta encima de los datos del lado derecho del navegador.
Agregue valores a los parámetros y seleccione Aplicar.
Una vez que aparezca la vista previa, seleccione Transformar datos.
Una vez en el editor de Power Query, cree dos parámetros, uno para el valor de límite y otro para el operador.
Vuelva a la consulta
LargeOrSmallSales
y reemplace los valores por los parámetros de consulta en la barra de fórmulas.En el editor, cree dos tablas estáticas (Escribir datos) para proporcionar opciones para los dos parámetros. Para el límite, puede crear una tabla con valores como 10, 50, 100, 200, 500, 1000, 2000. Para
Op
, una tabla con dos valores de texto<
y>
.Las dos columnas de las tablas deben enlazarse a los parámetros de consulta mediante la selección Enlazar a parámetros.
El informe final incluirá segmentaciones para las dos tablas estáticas y los objetos visuales de las ventas de resumen.
La tabla base se filtra primero y, a continuación, se agrega.
Uso de un parámetro de consulta en los detalles de conexión
Use un parámetro de consulta para filtrar la información de la consulta y optimizar el rendimiento de las consultas.
En el Editor avanzado:
Busque la sección siguiente de la consulta:
Source = AzureDataExplorer.Contents("<Cluster>", "<Database>", "<Query>", [])
Por ejemplo:
Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
Inserte un parámetro de consulta en la consulta del lenguaje de consulta Kusto (KQL).
Si pega una consulta KQL directamente en el cuadro de diálogo de conexión, la consulta formará parte del paso de origen en Power Query. Puede insertar parámetros como parte de la consulta mediante el editor avanzado o al editar la instrucción de origen en la barra de fórmulas. Una consulta de ejemplo podría ser
StormEvents | where State == ' " & State & " ' | take 100
.State
es un parámetro y en tiempo de ejecución la consulta será:StormEvents | where State == 'ALABAMA' | take 100
Si la consulta contiene comillas, codifíquelas correctamente. Por ejemplo, la siguiente consulta en KQL:
"StormEvents | where State == "ALABAMA" | take 100"
aparecerá en el Editor avanzado como se muestra a continuación con dos comillas:
"StormEvents | where State == ""ALABAMA"" | take 100"
Si usa un parámetro, como
State
, se debe reemplazar por la consulta siguiente, que contiene tres comillas:"StormEvents | where State == """ & State & """ | take 100"
Use Value.NativeQuery para las características de Azure Data Explorer
Para usar una característica de Azure Data Explorer que no se admita en Power Query, use el método Value.NativeQuery() en Power Query M. Este método inserta un fragmento del lenguaje de consulta Kusto en la consulta generada y también se puede usar para proporcionar más control sobre la consulta ejecutada.
En el ejemplo siguiente se muestra cómo usar la función percentiles
en Azure Data Explorer:
let
StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
Percentiles
No use el programador de actualización de Power BI para emitir comandos de control a Kusto
Power BI incluye un programador de actualización de datos que puede emitir consultas periódicamente en un origen de datos. Este mecanismo no debe usarse para programar comandos de control en Kusto, ya que Power BI supone que todas las consultas son de solo lectura.