Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Växla tjänster genom att använda listrutan Version. Läs mer om navigering.
Gäller för: ✅ Microsoft Fabric ✅ Azure Data Explorer
Plugin-programmet postgresql_request skickar en SQL-fråga till en Azure PostgreSQL Server-nätverksslutpunkt och returnerar den första raduppsättningen i resultatet. Frågan kan returnera fler än en raduppsättning, men endast den första raduppsättningen görs tillgänglig för resten av Kusto-frågan.
Plugin-programmet anropas med operatorn evaluate.
Viktigt!
Plugin-programmet postgresql_request är inaktiverat som standard.
Om du vill aktivera plugin-programmet kör du .enable plugin postgresql_request kommandot . Om du vill se vilka plugin-program som är aktiverade använder du .show plugin hanteringskommandon.
Syntax
evaluate
postgresql_request
(
Connectionstring,SqlQuery [,SqlParameters] ) [:OutputSchema]
Läs mer om syntaxkonventioner.
Parameterar
| Namn | Typ | Krävs | Description |
|---|---|---|---|
| Connectionstring | string |
✔️ | Anslutningssträngen som pekar på PostgreSQL Server-nätverksslutpunkten. Se autentisering och hur du anger nätverksslutpunkten. |
| SqlQuery | string |
✔️ | Frågan som ska köras mot SQL-slutpunkten. Måste returnera en eller flera raduppsättningar. Endast den första uppsättningen görs tillgänglig för resten av frågan. |
| SqlParameters | dynamic |
Ett egenskapsuppsättningsobjekt som innehåller nyckel/värde-par som ska skickas som parametrar tillsammans med frågan. | |
| OutputSchema | Namn och typer för de förväntade kolumnerna i postgresql_request plugin-utdata.Syntax: (ColumnName:ColumnType [, ...] ) |
Anmärkning
- Att ange OutputSchema rekommenderas starkt eftersom det gör att plugin-programmet kan användas i scenarier som annars inte fungerar utan det, till exempel en fråga mellan kluster. OutputSchema kan också aktivera flera frågeoptimeringar.
- Ett fel uppstår om körningsschemat för den första raduppsättningen som returneras av SQL-nätverksslutpunkten inte matchar OutputSchema-schemat .
Autentisering och auktorisering
Om du vill auktorisera en PostgreSQL Server-nätverksslutpunkt måste du ange auktoriseringsinformationen i anslutningssträngen. Den auktoriseringsmetod som stöds är via användarnamn och lösenord.
Ange pratbubblans princip
Plugin-programmet gör pratbubblar till PostgreSQL-databasen. Kontrollera att klustrets pratbubblans princip aktiverar anrop av typ postgresql till målet PostgreSqlDbUri.
I följande exempel visas hur du definierar pratbubblan för PostgreSQL-databaser. Vi rekommenderar att du begränsar pratbubblan till specifika slutpunkter (my_endpoint1, my_endpoint2).
[
{
"CalloutType": "postgresql",
"CalloutUriRegex": "my_endpoint1\\.postgres\\.database\\.azure\\.com",
"CanCall": true
},
{
"CalloutType": "postgresql",
"CalloutUriRegex": "my_endpoint2\\.postgres\\.database\\.azure\\.com",
"CanCall": true
}
]
I följande exempel visas ett .alter callout policy kommando för postgresqlCalloutType:
.alter cluster policy callout @'[{"CalloutType": "postgresql", "CalloutUriRegex": "\\.postgresql\\.database\\.azure\\.com", "CanCall": true}]'
Användarnamns- och lösenordsautentisering
Plugin-programmet postgresql_request stöder endast autentisering med användarnamn och lösenord till PostgreSQL-serverslutpunkten och integreras inte med Microsoft Entra-autentisering.
Användarnamnet och lösenordet anges som en del av anslutningssträngen med hjälp av följande parametrar:
User ID=...; Password=...;
Varning
Konfidentiell eller skyddad information bör döljas från anslutningssträngar och frågor så att de utelämnas från kusto-spårning. Mer information finns i dolda strängliteraler.
Kryptering och serververifiering
För säkerhet SslMode är villkorslöst inställt på Required när du ansluter till en PostgreSQL-servernätverksslutpunkt. Därför måste servern konfigureras med ett giltigt SSL/TLS-servercertifikat.
Ange nätverksslutpunkten
Ange PostgreSQL-nätverksslutpunkten som en del av anslutningssträngen.
Syntax:
Host
=
FQDN [Port=Port]
Where:
- FQDN är slutpunktens fullständigt kvalificerade domännamn.
- Port är TCP-porten för slutpunkten.
Examples
SQL-fråga till Azure PostgreSQL DB
I följande exempel skickas en SQL-fråga till en Azure PostgreSQL-databas. Den hämtar alla poster från public."Table"och bearbetar sedan resultatet.
Anmärkning
Det här exemplet bör inte ses som en rekommendation att filtrera eller projicera data på det här sättet. SQL-frågor bör konstrueras för att returnera den minsta möjliga datamängden.
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-fråga till en Azure PostgreSQL-databas med ändringar
I följande exempel skickas en SQL-fråga till en Azure PostgreSQL-databas som hämtar alla poster från public."Table", medan du lägger till en annan datetime kolumn och bearbetar sedan resultatet.
Den anger en SQL-parameter (@param0) som ska användas i SQL-frågan.
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-fråga till en Azure PostgreSQL-databas utan ett frågedefinierat utdataschema
I följande exempel skickas en SQL-fråga till en Azure PostgreSQL-databas utan utdataschema. Detta rekommenderas inte om inte schemat är okänt, eftersom det kan påverka frågans prestanda
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