mysql_request plugin
Das Plug-In mysql_request
sendet eine SQL-Abfrage an einen MySQL Server-Netzwerkendpunkt und gibt das erste Rowset aus den Ergebnissen zurück. Die Abfrage gibt möglicherweise mehr als ein Rowset zurück, aber nur das erste Rowset wird für den Rest der Kusto-Abfrage verfügbar gemacht.
Das Plug-In wird mit dem evaluate
Operator aufgerufen.
Wichtig
Das mysql_request
Plug-In ist standardmäßig deaktiviert.
Führen Sie den Befehl aus, um das .enable plugin mysql_request
Plug-In zu aktivieren. Verwenden Sie .show plugin
Verwaltungsbefehle, um zu sehen, welche Plug-Ins aktiviert sind.
Syntax
evaluate
mysql_request
(
Connectionstring,
SqlQuery [,
SqlParameters] )
[:
OutputSchema]
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
ConnectionString | string |
✔️ | Die Verbindungszeichenfolge, die auf den MySQL Server-Netzwerkendpunkt zeigt. Weitere Informationen finden Sie unter Authentifizierung und Angeben des Netzwerkendpunkts. |
SqlQuery | string |
✔️ | Die Abfrage, die für den SQL-Endpunkt ausgeführt werden soll. Muss einen oder mehrere Zeilensätze zurückgeben. Nur der erste Satz wird für den Rest der Abfrage verfügbar gemacht. |
SqlParameters | dynamic |
Ein Eigenschaftenbehälterobjekt, das Schlüssel-Wert-Paare enthält, die zusammen mit der Abfrage als Parameter übergeben werden sollen. | |
OutputSchema | Die Namen und Typen für die erwarteten Spalten der mysql_request Plug-In-Ausgabe.Syntax: ( ColumnName: ColumnType [, ...] ) |
Hinweis
- Die Angabe des OutputSchemas wird dringend empfohlen, da das Plug-In in Szenarien verwendet werden kann, die andernfalls ohne es möglicherweise nicht funktionieren, z. B. bei einer clusterübergreifenden Abfrage. Das OutputSchema kann auch mehrere Abfrageoptimierungen aktivieren.
- Ein Fehler wird ausgelöst, wenn das Laufzeitschema des ersten Zeilensatzes, der vom SQL-Netzwerkendpunkt zurückgegeben wird, nicht mit dem OutputSchema-Schema übereinstimmt.
Authentifizierung und Autorisierung
Um einen MySQL Server-Netzwerkendpunkt zu autorisieren, müssen Sie die Autorisierungsinformationen im Verbindungszeichenfolge angeben. Die unterstützte Autorisierungsmethode erfolgt über Benutzername und Kennwort.
Festlegen einer Beschriftungsrichtlinie
Das Plug-In sendet Beschriftungen für die MySql-Datenbank. Stellen Sie sicher, dass die Beschriftungsrichtlinie des Clusters Aufrufe des Typs mysql
mySqlDbUri aktiviert.
Im folgenden Beispiel wird gezeigt, wie die Beschriftungsrichtlinie für MySQL-Datenbanken definiert wird. Es wird empfohlen, die Beschriftungsrichtlinie auf bestimmte Endpunkte (my_endpoint1
, my_endpoint2
) einzuschränken.
[
{
"CalloutType": "mysql",
"CalloutUriRegex": "my_endpoint1\\.mysql\\.database\\.azure\\.com",
"CanCall": true
},
{
"CalloutType": "mysql",
"CalloutUriRegex": "my_endpoint2\\.mysql\\.database\\.azure\\.com",
"CanCall": true
}
]
Das folgende Beispiel zeigt einen .alter callout policy
Befehl für mysql
CalloutType:
.alter cluster policy callout @'[{"CalloutType": "mysql", "CalloutUriRegex": "\\.mysql\\.database\\.azure\\.com", "CanCall": true}]'
Authentifizierung per Benutzername und Kennwort
Das mysql_request
Plug-In unterstützt nur die Benutzernamen- und Kennwortauthentifizierung für den MySQL-Serverendpunkt und lässt sich nicht in Microsoft Entra Authentifizierung integrieren.
Der Benutzername und das Kennwort werden als Teil der Verbindungszeichenfolge mit den folgenden Parametern bereitgestellt:
User ID=...; Password=...;
Warnung
Vertrauliche oder überwachte Informationen sollten in Verbindungszeichenfolgen und Abfragen verschleiert werden, sodass sie in jeder Kusto-Ablaufverfolgung weggelassen werden. Weitere Informationen finden Sie unter Verschleierte Zeichenfolgenliterale.
Verschlüsselung und Servervalidierung
Aus Sicherheitsgründen ist bedingungslos auf Required
festgelegt, SslMode
wenn eine Verbindung mit einem MySQL-Server-Netzwerkendpunkt hergestellt wird. Daher muss der Server mit einem gültigen SSL/TLS-Serverzertifikat konfiguriert werden.
Angeben des Netzwerkendpunkts
Geben Sie den MySQL-Netzwerkendpunkt als Teil der Verbindungszeichenfolge an.
Syntax:
Server
=
FQDN [Port
=
Port]
Hierbei gilt:
- FQDN ist der vollqualifizierte Domänenname des Endpunkts.
- Port ist der TCP-Port des Endpunkts. Standardmäßig wird
3306
verwendet.
Beispiele
SQL-Abfrage für Azure MySQL-Datenbank
Im folgenden Beispiel wird eine SQL-Abfrage an eine Azure MySQL-Datenbank gesendet. Es ruft alle Datensätze von ab [dbo].[Table]
und verarbeitet dann die Ergebnisse.
Hinweis
Dieses Beispiel sollte nicht als Empfehlung zum Filtern oder Projektieren von Daten auf diese Weise betrachtet werden. SQL-Abfragen sollten so erstellt werden, dass sie das kleinste mögliche Dataset zurückgeben.
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
SQL-Abfrage an eine Azure MySQL-Datenbank mit Änderungen
Das folgende Beispiel sendet eine SQL-Abfrage an eine Azure MySQL-Datenbank, die alle Datensätze von [dbo].[Table]
abruft, während eine weitere datetime
Spalte angefügt wird, und verarbeitet die Ergebnisse dann auf der Kusto-Seite.
Er gibt einen SQL-Parameter (@param0
) an, der in der SQL-Abfrage verwendet werden soll.
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
SQL-Abfrage an eine Azure MySQL-Datenbank ohne abfragedefiniertes Ausgabeschema
Im folgenden Beispiel wird eine SQL-Abfrage ohne Ausgabeschema an eine Azure MySQL-Datenbank gesendet. Dies wird nur empfohlen, wenn das Schema unbekannt ist, da es sich möglicherweise auf die Leistung der Abfrage auswirken kann.
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
Diese Funktion wird in Azure Monitor nicht unterstützt.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für