Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
Un abonnement Azure. Accédez à Obtenir une version d’évaluation gratuite d’Azure.
Un compte de messagerie professionnel membre de Microsoft Entra ID. Cet article utilise ce compte pour se connecter aux exemples de cluster d’aide Azure Data Explorer .
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 :
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.
Dans Azure Data Explorer (Kusto), indiquez le nom de votre cluster Azure Data Explorer. Pour cet exemple, utilisez cette option
https://help.kusto.windows.netpour 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.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.
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
Sélectionnez OK pour continuer.
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.
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.
Se connecter à Azure Data Explorer à partir de Power Query Online
Pour vous connecter à Azure Data Explorer à partir de Power Query Online :
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.
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.netpour 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.
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
Si nécessaire, sélectionnez la passerelle de données locale dans la passerelle de données.
Si vous n’avez pas encore de connexion au cluster, sélectionnez Se connecter. Connectez-vous avec un compte d’organisation.
Une fois que vous êtes connecté, sélectionnez Suivant.
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.
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) :
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.
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
Connectez-vous au cluster où vous avez créé la fonction.
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.
Ajoutez des valeurs aux paramètres, puis sélectionnez Appliquer.
Une fois l’aperçu affiché, sélectionnez Transformer des données.
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.
Revenez à la
LargeOrSmallSalesrequête et remplacez les valeurs par les paramètres de requête dans la barre de formule.
À 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
Optableau avec deux valeurs de texte<et>.Les deux colonnes des tables doivent être liées aux paramètres de requête en sélectionnant l’option Lier au paramètre.
Le rapport final inclut des découpeurs pour les deux tableaux statiques et toutes les visualisations des ventes récapitulatives.
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é :
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", [])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.Stateest un paramètre et au moment de l’exécution, la requête sera :StormEvents | where State == 'ALABAMA' | take 100Si 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.