mysql_request plugin
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Das mysql_request
Plug-In sendet eine SQL-Abfrage an einen Azure MySQL Server-Netzwerkendpunkt und gibt das erste Rowset in den Ergebnissen zurück. Die Abfrage gibt möglicherweise mehrere 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 .enable plugin mysql_request
Befehl aus, um das 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 | Type | Erforderlich | Beschreibung |
---|---|---|---|
ConnectionString | string |
✔️ | Die Verbindungszeichenfolge, die auf den MySQL Server-Netzwerkendpunkt verweist. Siehe 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üsselwertpaare enthält, die zusammen mit der Abfrage als Parameter übergeben werden. | |
OutputSchema | Die Namen und Typen für die erwarteten Spalten der mysql_request Plug-In-Ausgabe.Syntax: ( ColumnName : ColumnType [, ...] ) |
Hinweis
- Die Angabe des OutputSchema-Schemas wird dringend empfohlen, da das Plug-In in Szenarien verwendet werden kann, die andernfalls nicht funktionieren, z. B. eine clusterübergreifende Abfrage. Das OutputSchema kann auch mehrere Abfrageoptimierungen aktivieren.
- Ein Fehler wird ausgelöst, wenn das Laufzeitschema des vom SQL-Netzwerkendpunkt zurückgegebenen ersten Zeilensatzes 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 der Beschriftungsrichtlinie
Das Plug-In führt Legenden an die MySql-Datenbank aus. Stellen Sie sicher, dass die Popuprichtlinie des Clusters Aufrufe vom Typ mysql
an das Ziel MySqlDbUri aktiviert.
Das folgende Beispiel zeigt, wie die Popuprichtlinie für MySQL-Datenbanken definiert wird. Es wird empfohlen, die Popuprichtlinie auf bestimmte Endpunkte (my_endpoint1
, my_endpoint2
) zu beschrä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 an den MySQL-Serverendpunkt und lässt sich nicht in die 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 geschützte Informationen sollten von Verbindungszeichenfolge und Abfragen verschleiert werden, damit sie von jeder Kusto-Ablaufverfolgung weggelassen werden. Weitere Informationen finden Sie unter verschleierten Zeichenfolgenliteralen.
Verschlüsselung und Serverüberprüfung
Für die Sicherheit SslMode
ist die Verbindung mit einem MySQL-Servernetzwerkendpunkt bedingungslos festgelegt Required
. Daher muss der Server mit einem gültigen SSL/TLS-Serverzertifikat konfiguriert werden.
Angeben des Netzwerkendpunkts
Geben Sie den MySQL-Netzwerkendpunkt als Teil des 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 DB
Im folgenden Beispiel wird eine SQL-Abfrage an eine Azure MySQL-Datenbank gesendet. Es ruft alle Datensätze aus [dbo].[Table]
und verarbeitet dann die Ergebnisse.
Hinweis
Dieses Beispiel sollte nicht als Empfehlung zum Filtern oder Projektdaten auf diese Weise verwendet werden. SQL-Abfragen sollten erstellt werden, um möglichst kleine Datasets zurückzugeben.
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
Im folgenden Beispiel wird eine SQL-Abfrage an eine Azure MySQL-Datenbank gesendet, aus [dbo].[Table]
der alle Datensätze abgerufen werden, während sie eine weitere datetime
Spalte anfügen und dann die Ergebnisse auf der Kusto-Seite verarbeiten.
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 in einer 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 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