Partager via


Azure Data Explorer (Kusto)

Résumé

Élément Descriptif
État de publication Disponibilité générale
Produits Excel
Power BI (modèles sémantiques)
Power BI (flux de données)
Fabric (Dataflow Gen2)
Power Apps (Flux de données)
Dynamics 365 Customer Insights
Types d’authentification pris en charge Compte d’organisation
Documentation de référence sur les fonctions

Note

Certaines fonctionnalités peuvent être présentes dans un produit, mais pas d’autres en raison de planifications de déploiement et de fonctionnalités spécifiques à l’hôte.

Prerequisites

Fonctionnalités prises en charge

  • Import
  • DirectQuery (modèles sémantiques Power BI)
  • Options avancées
    • Limiter le numéro d’enregistrement du résultat de la requête
    • Limiter la taille des données des résultats de requête en octets
    • Désactiver la troncation du jeu de résultats
    • Ensembles d'instructions supplémentaires

Se connecter à Azure Data Explorer à partir de Power Query Desktop

Pour vous connecter à Azure Data Explorer à partir de Power Query Desktop :

  1. Sélectionnez Azure Data Explorer (Kusto) dans l’expérience obtenir des données. L’expérience d’obtention de données dans Power Query Desktop varie selon les applis. Pour plus d’informations sur l’expérience Power Query Desktop pour obtenir des données avec votre application, accédez à Où obtenir des données.

  2. Dans Azure Data Explorer (Kusto), indiquez le nom de votre cluster Azure Data Explorer. Pour cet exemple, utilisez cette option https://help.kusto.windows.net pour accéder à l’exemple de cluster d’aide. Pour les autres clusters, l’URL se trouve sous la forme https:// <ClusterName>.<Region.kusto.windows.net>.

    Vous pouvez également sélectionner une base de données hébergée sur le cluster auquel vous vous connectez, et l’une des tables de la base de données, ou une requête comme StormEvents | take 1000.

  3. Si vous souhaitez utiliser des options avancées, sélectionnez l’option et entrez les données à utiliser avec cette option. Plus d’informations : Se connecter à l’aide d’options avancées

    Note

    Vous devrez peut-être faire défiler vers le bas pour afficher toutes les options avancées et la sélection de connectivité des données.

  4. Sélectionnez soit le mode de connectivité des données Import ou DirectQuery (Power BI Desktop uniquement). Plus d’informations : Quand utiliser le mode Importation ou Requête directe

  5. Sélectionnez OK pour continuer.

    Capture d’écran de la boîte de dialogue Azure Data Explorer (Kusto), avec l’URL du cluster entré.

  6. Si vous n’avez pas encore de connexion au cluster, sélectionnez Se connecter. Connectez-vous avec un compte d’organisation, puis sélectionnez Se connecter.

    Capture d’écran de la boîte de dialogue de connexion pour Azure Data Explorer, avec un compte d’organisation prêt à être connecté.

  7. Dans le navigateur, sélectionnez les informations de base de données souhaitées, puis sélectionnez Charger pour charger les données ou Transformer des données pour continuer à transformer les données dans l’éditeur Power Query. Dans cet exemple, StormEvents a été sélectionné dans la base de données Samples.

    Capture d’écran du navigateur ouvert et contenant les données de StormEvents dans la base de données Samples.

Se connecter à Azure Data Explorer à partir de Power Query Online

Pour vous connecter à Azure Data Explorer à partir de Power Query Online :

  1. Sélectionnez l’option Azure Data Explorer (Kusto) dans l’expérience obtenir des données. Chaque appli a sa propre façon d’accéder à l’expérience d’obtention de données de Power Query Online. Pour plus d’informations sur la manière d’accéder à la fonctionnalité de récupération de données dans Power Query Online à partir de votre application, accédez à Où obtenir des données.

    Capture d’écran de la fenêtre de récupération de données avec Azure Data Explorer mise en évidence.

  2. Dans Se connecter à la source de données, indiquez le nom de votre cluster Azure Data Explorer. Pour cet exemple, utilisez cette option https://help.kusto.windows.net pour accéder à l’exemple de cluster d’aide. Pour les autres clusters, l’URL se trouve sous la forme https:// <ClusterName>.<Region.kusto.windows.net>.

    Vous pouvez également sélectionner une base de données hébergée sur le cluster auquel vous vous connectez, et l’une des tables de la base de données, ou une requête comme StormEvents | take 1000.

    Capture d’écran de la page Choisir une source de données pour Azure Data Explorer (Kusto), avec l’URL du cluster entré.

  3. Si vous souhaitez utiliser des options avancées, sélectionnez l’option et entrez les données à utiliser avec cette option. Plus d’informations : Se connecter à l’aide d’options avancées

  4. Si nécessaire, sélectionnez la passerelle de données locale dans la passerelle de données.

  5. Si vous n’avez pas encore de connexion au cluster, sélectionnez Se connecter. Connectez-vous avec un compte d’organisation.

  6. Une fois que vous êtes connecté, sélectionnez Suivant.

  7. Dans la page Choisir des données , sélectionnez les informations de base de données souhaitées, puis sélectionnez Transformer des données ou Suivant pour continuer à transformer les données dans l’éditeur Power Query. Dans cet exemple, StormEvents a été sélectionné dans la base de données Samples.

    Capture d’écran de la page Choisir des données contenant les données de StormEvents dans la base de données Samples.

Se connecter à l’aide d’options avancées

Power Query Desktop et Power Query Online fournissent tous deux un ensemble d’options avancées que vous pouvez ajouter à votre requête si nécessaire.

Le tableau suivant répertorie toutes les options avancées que vous pouvez définir dans Power Query Desktop et Power Query Online.

Option avancée Descriptif
Limiter le numéro d’enregistrement du résultat de la requête Nombre maximal d’enregistrements à retourner dans le résultat.
Limiter la taille des données des résultats de requête en octets Taille maximale des données en octets à retourner dans le résultat.
Désactiver la troncation du jeu de résultats Activez ou désactivez la troncation des résultats à l’aide de l’option notruncation de requête.
Déclarations d'ensembles supplémentaires Définit les options de requête pour la durée de la requête. Les options de requête contrôlent la façon dont une requête s’exécute et retourne des résultats. Plusieurs instructions Set peuvent être séparées par des points-virgules.

Pour plus d’informations sur les options avancées supplémentaires non disponibles dans l’interface utilisateur De Power Query, accédez à La configuration des options du connecteur Azure Data Explorer dans une requête M.

Quand utiliser le mode Importation ou Requête directe

En mode Importation, les données sont déplacées vers Power BI. En mode DirectQuery, les données sont interrogées directement à partir de votre cluster.

Utilisez le mode Importation quand :

  • Votre jeu de données est petit.
  • Vous n’avez pas besoin de données en quasi temps réel.
  • Vos données sont déjà agrégées ou vous effectuez une agrégation dans Kusto.

Utilisez le mode DirectQuery quand :

  • Votre jeu de données est très volumineux.
  • Vous avez besoin de données en quasi temps réel.

Pour en savoir plus sur l’utilisation de DirectQuery, consultez À propos de l’utilisation de DirectQuery dans Power BI.

Conseils pour l’utilisation du connecteur Azure Data Explorer pour interroger des données

Les sections suivantes incluent des conseils et astuces pour l’utilisation du langage de requête Kusto avec Power Query.

Requêtes complexes dans Power BI

Les requêtes complexes sont plus facilement exprimées dans Kusto que dans Power Query. Elles doivent être implémentées en tant que fonctions Kusto et appelées dans Power BI. Cette méthode est requise lors de l’utilisation de DirectQuery avec let instructions dans votre requête Kusto. Étant donné que Power BI joint deux requêtes et que les instructions let ne peuvent pas être utilisées avec l’opérateur join, des erreurs de syntaxe peuvent se produire. Par conséquent, enregistrez chaque partie de la jointure en tant que fonction Kusto et autorisez Power BI à joindre ces deux fonctions ensemble.

Comment simuler un opérateur date/heure relative

Power Query ne contient pas d’opérateur de date/heure relatif tel que ago(). Pour simuler ago(), utilisez une combinaison de fonctions DateTime.FixedLocalNow et #duration Power Query M.

Au lieu d'utiliser cette requête avec l’opérateur ago() :

    StormEvents | where StartTime > (now()-5d)
    StormEvents | where StartTime > ago(5d)

Utilisez la requête équivalente suivante :

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
    #"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
    #"Filtered Rows"

Configuration des options de connecteur Azure Data Explorer dans une requête M

Vous pouvez configurer les options du connecteur Azure Data Explorer à partir de l’éditeur avancé Power Query dans le langage de requête M. À l’aide de ces options, vous pouvez contrôler la requête générée envoyée à votre cluster Azure Data Explorer.

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
    Source

Vous pouvez utiliser l’une des options suivantes dans votre requête M :

Choix Sample Descriptif
MaxRows [MaxRows=300000] Ajoute l’instruction truncationmaxrecords set à votre requête. Remplace le nombre maximal d’enregistrements qu'une requête peut par défaut renvoyer à l'appelant (troncature).
MaxSize [MaxSize=4194304] Ajoute l’instruction truncationmaxsize set à votre requête. Remplace la taille maximale par défaut des données qu’une requête est autorisée à renvoyer à l'appelant (troncation).
NoTruncate [NoTruncate=true] Ajoute l’instruction notruncation set à votre requête. Permet de supprimer la troncation des résultats de la requête retournés à l’appelant.
InstructionsAdditionnellesSet [AdditionalSetStatements="set query_datascope=hotcache"] Ajoute les instructions set fournies à votre requête. Ces instructions sont utilisées pour définir les options de requête pendant la durée de la requête. Les options de requête contrôlent la façon dont une requête s’exécute et retourne des résultats.
Insensible à la casse [CaseInsensitive=true] Fait en sorte que le connecteur génère des requêtes insensibles à la casse : les requêtes utilisent l’opérateur =~ au lieu de l’opérateur == lors de la comparaison des valeurs.
ForcerUtilisationContient [ForceUseContains=true] Fait en sorte que le connecteur génère des requêtes qui utilisent contains au lieu de la valeur par défaut has lors de l’utilisation de champs de texte. Bien que has soit beaucoup plus performant, il ne gère pas les sous-chaînes de caractères. Pour plus d’informations sur la différence entre les deux opérateurs, accédez aux opérateurs de chaîne.
Délai d'expiration [Timeout=#duration(0,10,0,0)] Configure le délai d’expiration du client et du serveur pour la requête à la durée fournie.
ClientRequestIdPrefix [ClientRequestIdPrefix="MyReport"] Configure un préfixe ClientRequestId pour toutes les requêtes envoyées par le connecteur. Cela permet aux requêtes d’être identifiables dans le cluster comme provenant d’un rapport spécifique et/ou d’une source de données.

Note

Vous pouvez combiner plusieurs options pour atteindre le comportement requis : [NoTruncate=true, CaseInsensitive=true]

Dépassement des limites de requête Kusto

Les requêtes Kusto retournent, par défaut, jusqu’à 500 000 lignes ou 64 Mo, comme décrit dans les limites de requête. Vous pouvez remplacer ces valeurs par défaut à l’aide d’options avancées dans la fenêtre de connexion Azure Data Explorer (Kusto) :

Capture d’écran de la fenêtre de connexion Azure Data Explorer (Kusto) avec les options avancées facultatives mises en évidence.

Ces options émettent des instructions set avec votre requête pour modifier les limites de requête par défaut :

  • Limiter le numéro d’enregistrement du résultat de la requête génère un set truncationmaxrecords
  • Limiter la taille des données des résultats de requête en octets génère une set truncationmaxsize
  • Désactiver la troncation du jeu de résultats génère une set notruncation

Respect de la casse

Par défaut, le connecteur génère des requêtes qui utilisent l’opérateur == sensible à la casse lors de la comparaison des valeurs de chaîne. Si les données sont insensibles à la casse, ce n'est pas voulu. Pour modifier la requête générée, utilisez l'option connecteur CaseInsensitive :

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
    #"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
    #"Filtered Rows"

Utilisation des paramètres de requête

Vous pouvez utiliser des paramètres de requête pour modifier votre requête dynamiquement.

Utiliser un paramètre de requête dans les étapes de requête

Vous pouvez utiliser un paramètre de requête dans n’importe quelle étape de requête qui la prend en charge. Par exemple, filtrez les résultats en fonction de la valeur d’un paramètre. Dans cet exemple, sélectionnez le menu déroulant situé à droite de la State colonne dans l’éditeur Power Query, sélectionnez Filtres de texte>Égal, puis sélectionnez ALABAMA sous Conserver les lignes où l’« État » est.

Capture d’écran de la boîte de dialogue Filtrer les lignes dans laquelle vous définissez les résultats du filtre à l’aide d’un paramètre.

Fournir des paramètres à une fonction Azure Data Explorer

Les fonctions Kusto constituent un excellent moyen de gérer des requêtes kusto complexes (KQL). Nous vous recommandons d’utiliser des fonctions au lieu d’incorporer KQL dans Power Query. L’avantage principal de l’utilisation de la fonction est que la logique est conservée une fois dans un environnement facile à créer et à tester.

Les fonctions peuvent également recevoir des paramètres et donc ajouter beaucoup de flexibilité à l’utilisateur Power BI. Power BI a de nombreuses façons de segmenter les données. Cependant, tous les filtres et les slicers sont ajoutés après le KQL original et, dans de nombreux cas, vous souhaiterez utiliser le filtrage à un stade initial de la requête. L’utilisation de fonctions et de paramètres dynamiques est un moyen très efficace de personnaliser la requête finale.

Création d’une fonction

Vous pouvez créer la fonction suivante dans n’importe quel cluster Azure Data Explorer auquel vous avez accès, y compris un cluster gratuit. La fonction retourne la table SalesTable du cluster d’aide, filtrée pour les transactions de vente supérieures ou inférieures à un nombre fourni par l’utilisateur du rapport.

.create-or-alter  function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
    cluster("help").database("ContosoSales").SalesTable
    | where  (Op==">" and SalesAmount >= Cutoff) or (Op=="<"  and SalesAmount <= Cutoff)
}

Après avoir créé la fonction, vous pouvez la tester à l’aide de :

LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country

Vous pouvez également le tester à l’aide de :

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Utilisation de la fonction dans Power BI
  1. Connectez-vous au cluster où vous avez créé la fonction.

  2. Dans le navigateur Power Query, sélectionnez la fonction dans la liste des objets. Le connecteur analyse les paramètres et les présente au-dessus des données situées sur le côté droit du navigateur.

    Capture d’écran avec les paramètres Cutoff et Op affichés au-dessus des données du navigateur.

  3. Ajoutez des valeurs aux paramètres, puis sélectionnez Appliquer.

  4. Une fois l’aperçu affiché, sélectionnez Transformer des données.

  5. Une fois dans l’éditeur Power Query, créez deux paramètres, un pour la valeur de coupure et l’autre pour l’opérateur.

  6. Revenez à la LargeOrSmallSales requête et remplacez les valeurs par les paramètres de requête dans la barre de formule.

    Capture d’écran avec la fonction LargeOrSmallSales, en mettant l’accent sur les paramètres Cutoff_Param et Op_Param dans la barre de formule.

  7. À partir de l’éditeur, créez deux tables statiques (Entrer des données) pour fournir des options pour les deux paramètres. Pour le découpage, vous pouvez créer une table avec des valeurs telles que 10, 50, 100, 200, 500, 1000, 2000. Pour le Op tableau avec deux valeurs de texte < et >.

  8. Les deux colonnes des tables doivent être liées aux paramètres de requête en sélectionnant l’option Lier au paramètre.

    Capture d’écran de l’opération liée au paramètre Op_Param.

Le rapport final inclut des découpeurs pour les deux tableaux statiques et toutes les visualisations des ventes récapitulatives.

Capture d’écran dans Power BI avec les sélections de valeurs Cutoff et Op affichées en regard du tableau.

La table de base est filtrée en premier, puis agrégée.

Utilisation d’un paramètre de requête dans les détails de la connexion

Utilisez un paramètre de requête pour filtrer les informations dans la requête et optimiser les performances des requêtes.

Dans l’éditeur avancé :

  1. Recherchez la section suivante de la requête :

    Source = AzureDataExplorer.Contents(« <Cluster> », « <Database> », « <Query> », [])

    Par exemple:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Insérez un paramètre de requête dans la requête KQL (Kusto Query Language).

    Si vous collez une requête KQL directement dans la boîte de dialogue de connexion, la requête fait partie de l’étape source de Power Query. Vous pouvez incorporer des paramètres dans le cadre de la requête à l’aide de l’éditeur avancé ou lors de la modification de l’instruction source dans la barre de formule. Un exemple de requête peut être StormEvents | where State == ' " & State & " ' | take 100. State est un paramètre et au moment de l’exécution, la requête sera :

    StormEvents | where State == 'ALABAMA' | take 100

  3. Si votre requête contient des guillemets, encodez-les correctement. Par exemple, la requête suivante dans KQL :

    "StormEvents | where State == "ALABAMA" | take 100"
    

    s’affiche dans l’éditeur avancé comme suit avec deux guillemets :

     "StormEvents | where State == ""ALABAMA"" | take 100"
    

    Si vous utilisez un paramètre, tel que State, il doit être remplacé par la requête suivante, qui contient trois guillemets :

    "StormEvents | where State == """ & State & """ | take 100"
    

Utiliser Value.NativeQuery pour les fonctionnalités d’Azure Data Explorer

Pour utiliser une fonctionnalité Azure Data Explorer qui n’est pas prise en charge dans Power Query, utilisez la méthode Value.NativeQuery dans Power Query M. Cette méthode insère un fragment de langage de requête Kusto à l’intérieur de la requête générée, et peut également être utilisée pour vous donner plus de contrôle sur la requête exécutée.

L’exemple suivant montre comment utiliser la percentiles fonction dans 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

N’utilisez pas le planificateur d’actualisation des données Power BI pour émettre des commandes de contrôle sur Kusto

Power BI inclut un planificateur d’actualisation des données qui peut émettre régulièrement des requêtes sur une source de données. Ce mécanisme ne doit pas être utilisé pour planifier les commandes de contrôle sur Kusto, car Power BI suppose que toutes les requêtes sont en lecture seule.