mysql_request, plug-in
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Le mysql_request
plug-in envoie une requête SQL à un point de terminaison réseau Azure MySQL Server et retourne le premier ensemble de lignes dans les résultats. La requête peut retourner plusieurs ensembles de lignes, mais seul le premier ensemble de lignes est disponible pour le reste de la requête Kusto.
Le plug-in est appelé avec l’opérateur evaluate
.
Important
Le mysql_request
plug-in est désactivé par défaut.
Pour activer le plug-in, exécutez la .enable plugin mysql_request
commande. Pour voir quels plug-ins sont activés, utilisez .show plugin
des commandes de gestion.
Syntaxe
evaluate
mysql_request
(
ConnectionString ,
SqlQuery [,
SqlParameters] )
[:
OutputSchema]
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
ConnectionString | string |
✔️ | Le chaîne de connexion qui pointe vers le point de terminaison réseau mySQL Server. Consultez l’authentification et comment spécifier le point de terminaison réseau. |
SqlQuery | string |
✔️ | Requête à exécuter sur le point de terminaison SQL. Doit retourner un ou plusieurs jeux de lignes. Seul le premier jeu est disponible pour le reste de la requête. |
SqlParameters | dynamic |
Objet conteneur de propriétés qui contient des paires clé-valeur à passer en tant que paramètres avec la requête. | |
OutputSchema | Noms et types pour les colonnes attendues de la sortie du mysql_request plug-in.Syntaxe : ( ColumnName : ColumnType [, ...] ) |
Remarque
- La spécification de OutputSchema est vivement recommandée, car elle permet au plug-in d’être utilisé dans des scénarios qui peuvent ne pas fonctionner sans cela, comme une requête inter-cluster. OutputSchema peut également activer plusieurs optimisations de requête.
- Une erreur est générée si le schéma d’exécution du premier jeu de lignes retourné par le point de terminaison réseau SQL ne correspond pas au schéma OutputSchema .
Authentification et autorisation
Pour autoriser un point de terminaison réseau MySQL Server, vous devez spécifier les informations d’autorisation dans le chaîne de connexion. La méthode d’autorisation prise en charge est via le nom d’utilisateur et le mot de passe.
Définir la stratégie de légende
Le plug-in effectue des légendes dans la base de données MySql. Assurez-vous que la stratégie de légende du cluster active les appels de type mysql
vers mySqlDbUri cible.
L’exemple suivant montre comment définir la stratégie de légende pour les bases de données MySQL. Nous vous recommandons de restreindre la stratégie de légende à des points de terminaison spécifiques (my_endpoint1
, my_endpoint2
).
[
{
"CalloutType": "mysql",
"CalloutUriRegex": "my_endpoint1\\.mysql\\.database\\.azure\\.com",
"CanCall": true
},
{
"CalloutType": "mysql",
"CalloutUriRegex": "my_endpoint2\\.mysql\\.database\\.azure\\.com",
"CanCall": true
}
]
L’exemple suivant montre une .alter callout policy
commande pour mysql
CalloutType :
.alter cluster policy callout @'[{"CalloutType": "mysql", "CalloutUriRegex": "\\.mysql\\.database\\.azure\\.com", "CanCall": true}]'
Authentification par nom d'utilisateur et mot de passe
Le mysql_request
plug-in prend uniquement en charge l’authentification par nom d’utilisateur et mot de passe sur le point de terminaison du serveur MySQL et ne s’intègre pas à l’authentification Microsoft Entra.
Le nom d’utilisateur et le mot de passe sont fournis dans le cadre de la chaîne de connexions à l’aide des paramètres suivants :
User ID=...; Password=...;
Avertissement
Les informations confidentielles ou surveillées doivent être masquées par les chaîne de connexion et les requêtes afin qu’elles soient omises de tout suivi Kusto. Pour plus d’informations, consultez littéraux de chaîne obfusqués.
Validation du chiffrement et du serveur
Pour la sécurité, SslMode
elle est définie Required
de manière inconditionnelle lors de la connexion à un point de terminaison réseau de serveur MySQL. Par conséquent, le serveur doit être configuré avec un certificat de serveur SSL/TLS valide.
Spécifier le point de terminaison réseau
Spécifiez le point de terminaison réseau MySQL dans le cadre de la chaîne de connexion.
Syntaxe :
Server
=
Nom de domaine complet [Port
=
Port]
Où :
- Le nom de domaine complet du point de terminaison est le nom de domaine complet.
- Le port est le port TCP du point de terminaison. Par défaut, la valeur
3306
est supposée.
Exemples
Requête SQL vers Azure MySQL DB
L’exemple suivant envoie une requête SQL à une base de données Azure MySQL. Il récupère tous les enregistrements à partir de [dbo].[Table]
, puis traite les résultats.
Remarque
Cet exemple ne doit pas être considéré comme une recommandation pour filtrer ou projeter les données de cette manière. Les requêtes SQL doivent être construites pour retourner le plus petit jeu de données possible.
evaluate mysql_request(
'Server=contoso.mysql.database.azure.com; Port = 3306;'
'Database=Fabrikam;'
h'UID=USERNAME;'
h'Pwd=PASSWORD;',
'select * from `dbo`.`Table`') : (Id: int, Name: string)
| where Id > 0
| project Name
Requête SQL vers une base de données Azure MySQL avec des modifications
L’exemple suivant envoie une requête SQL à une base de [dbo].[Table]
données Azure MySQL qui récupère tous les enregistrements, tout en ajoutant une autre datetime
colonne, puis traite les résultats côté Kusto.
Il spécifie un paramètre SQL (@param0
) à utiliser dans la requête SQL.
evaluate mysql_request(
'Server=contoso.mysql.database.azure.com; Port = 3306;'
'Database=Fabrikam;'
h'UID=USERNAME;'
h'Pwd=PASSWORD;',
'select *, @param0 as dt from `dbo`.`Table`',
dynamic({'param0': datetime(2020-01-01 16:47:26.7423305)})) : (Id:long, Name:string, dt: datetime)
| where Id > 0
| project Name
Requête SQL vers une base de données Azure MySQL sans schéma de sortie défini par une requête
L’exemple suivant envoie une requête SQL à une base de données Azure MySQL sans schéma de sortie. Cela n’est pas recommandé, sauf si le schéma est inconnu, car il peut avoir un impact sur les performances de la requête.
evaluate mysql_request(
'Server=contoso.mysql.database.azure.com; Port = 3306;'
'Database=Fabrikam;'
h'UID=USERNAME;'
h'Pwd=PASSWORD;',
'select * from `dbo`.`Table`')
| where Id > 0
| project Name