Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Das postgresql_request Plug-In sendet eine SQL-Abfrage an einen Azure PostgreSQL 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 postgresql_request Plug-In ist standardmäßig deaktiviert.
Führen Sie den .enable plugin postgresql_request Befehl aus, um das Plug-In zu aktivieren. Verwenden Sie .show plugin Verwaltungsbefehle, um zu sehen, welche Plug-Ins aktiviert sind.
Syntax
evaluatepostgresql_request ( ConnectionString , SqlQuery [, SqlParameters] ) [: OutputSchema]
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
| Name | Type | Erforderlich | Beschreibung |
|---|---|---|---|
| ConnectionString | string |
✔️ | Die Verbindungszeichenfolge, die auf den PostgreSQL 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 postgresql_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 PostgreSQL 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 PostgreSQL-Datenbank aus. Stellen Sie sicher, dass die Beschriftungsrichtlinie des Clusters Aufrufe vom Typ postgresql an das Ziel PostgreSqlDbUri aktiviert.
Das folgende Beispiel zeigt, wie die Popuprichtlinie für PostgreSQL-Datenbanken definiert wird. Es wird empfohlen, die Popuprichtlinie auf bestimmte Endpunkte (my_endpoint1, my_endpoint2) zu beschränken.
[
{
"CalloutType": "postgresql",
"CalloutUriRegex": "my_endpoint1\\.postgres\\.database\\.azure\\.com",
"CanCall": true
},
{
"CalloutType": "postgresql",
"CalloutUriRegex": "my_endpoint2\\.postgres\\.database\\.azure\\.com",
"CanCall": true
}
]
Das folgende Beispiel zeigt einen .alter callout policy Befehl für postgresql CalloutType:
.alter cluster policy callout @'[{"CalloutType": "postgresql", "CalloutUriRegex": "\\.postgresql\\.database\\.azure\\.com", "CanCall": true}]'
Authentifizierung per Benutzername und Kennwort
Das postgresql_request Plug-In unterstützt nur die Benutzernamen- und Kennwortauthentifizierung an den PostgreSQL-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 PostgreSQL-Servernetzwerkendpunkt bedingungslos festgelegt Required . Daher muss der Server mit einem gültigen SSL/TLS-Serverzertifikat konfiguriert werden.
Angeben des Netzwerkendpunkts
Geben Sie den PostgreSQL-Netzwerkendpunkt als Teil des Verbindungszeichenfolge an.
Syntax:
Host= FQDN [Port = Port]
Hierbei gilt:
- FQDN ist der vollqualifizierte Domänenname des Endpunkts.
- Port ist der TCP-Port des Endpunkts.
Beispiele
SQL-Abfrage zu Azure PostgreSQL DB
Im folgenden Beispiel wird eine SQL-Abfrage an eine Azure PostgreSQL-Datenbank gesendet. Es ruft alle Datensätze aus public."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 postgresql_request(
'Host=contoso.postgres.database.azure.com; Port = 5432;'
'Database=Fabrikam;'
h'User Id=USERNAME;'
h'Password=PASSWORD;',
'select * from public."Table"') : (Id: int, Name: string)
| where Id > 0
| project Name
SQL-Abfrage an eine Azure PostgreSQL-Datenbank mit Änderungen
Im folgenden Beispiel wird eine SQL-Abfrage an eine Azure PostgreSQL-Datenbank gesendet, aus public."Table"der alle Datensätze abgerufen werden, während eine andere datetime Spalte angefügt und dann die Ergebnisse verarbeitet werden.
Er gibt einen SQL-Parameter (@param0) an, der in der SQL-Abfrage verwendet werden soll.
evaluate postgresql_request(
'Server=contoso.postgres.database.azure.com; Port = 5432;'
'Database=Fabrikam;'
h'User Id=USERNAME;'
h'Password=PASSWORD;',
'select *, @param0 as dt from public."Table"',
dynamic({'param0': datetime(2020-01-01 16:47:26.7423305)})) : (Id: int, Name: string, dt: datetime)
| where Id > 0
| project Name
SQL-Abfrage an eine Azure PostgreSQL-Datenbank ohne abfragedefiniertes Ausgabeschema
Im folgenden Beispiel wird eine SQL-Abfrage ohne Ausgabeschema an eine Azure PostgreSQL-Datenbank gesendet. Dies wird nur empfohlen, wenn das Schema unbekannt ist, da es sich auf die Leistung der Abfrage auswirken kann.
evaluate postgresql_request(
'Host=contoso.postgres.database.azure.com; Port = 5432;'
'Database=Fabrikam;'
h'User Id=USERNAME;'
h'Password=PASSWORD;',
'select * from public."Table"')
| where Id > 0
| project Name