Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Schakelen tussen services met behulp van de vervolgkeuzelijst Versie . Meer informatie over navigatie.
Van toepassing op: ✅ Microsoft Fabric ✅ Azure Data Explorer
De postgresql_request invoegtoepassing verzendt een SQL-query naar een Azure PostgreSQL Server-netwerkeindpunt en retourneert de eerste rijenset in de resultaten. De query kan meer dan één rijenset retourneren, maar alleen de eerste rijenset wordt beschikbaar gesteld voor de rest van de Kusto-query.
De invoegtoepassing wordt aangeroepen met de operator evaluate.
Belangrijk
De postgresql_request invoegtoepassing is standaard uitgeschakeld.
Voer de .enable plugin postgresql_request opdracht uit om de invoegtoepassing in te schakelen. Gebruik .show plugin beheeropdrachten om te zien welke invoegtoepassingen zijn ingeschakeld.
Syntaxis
evaluate
postgresql_request
(
Connectionstring,SqlQuery [,SqlParameters] ) [:OutputSchema]
Meer informatie over syntaxisconventies.
Parameterwaarden
| Naam | Typologie | Verplicht | Description |
|---|---|---|---|
| Connectionstring | string |
✔️ | De verbindingsreeks die verwijst naar het postgreSQL Server-netwerkeindpunt. Zie verificatie en hoe u het netwerkeindpunt opgeeft. |
| SqlQuery- | string |
✔️ | De query die moet worden uitgevoerd op het SQL-eindpunt. Moet een of meer rijensets retourneren. Alleen de eerste set wordt beschikbaar gesteld voor de rest van de query. |
| SqlParameters | dynamic |
Een eigenschapsverzamelingsobject dat sleutel-waardeparen bevat die als parameters moeten worden doorgegeven, samen met de query. | |
| OutputSchema- | De namen en typen voor de verwachte kolommen van de uitvoer van de postgresql_request invoegtoepassing.Syntaxis: (ColumnName:ColumnType [, ...] ) |
Opmerking
- Het opgeven van het OutputSchema wordt ten zeerste aanbevolen, omdat de invoegtoepassing kan worden gebruikt in scenario's die anders niet werken zonder, zoals een query voor meerdere clusters. Het OutputSchema kan ook meerdere queryoptimalisaties inschakelen.
- Er treedt een fout op als het runtimeschema van de eerste rijset die door het SQL-netwerkeindpunt wordt geretourneerd, niet overeenkomt met het OutputSchema-schema .
Authenticatie en autorisatie
Als u een PostgreSQL Server-netwerkeindpunt wilt autoriseren, moet u de autorisatiegegevens in de verbindingsreeks opgeven. De ondersteunde autorisatiemethode is via gebruikersnaam en wachtwoord.
Bijschriftbeleid instellen
De invoegtoepassing maakt bijschriften naar de PostgreSQL-database. Zorg ervoor dat het bijschriftbeleid van het cluster aanroepen van het type postgresql toekent aan de doelPostgreSqlDbUri.
In het volgende voorbeeld ziet u hoe u het bijschriftbeleid voor PostgreSQL-databases definieert. U wordt aangeraden het bijschriftbeleid te beperken tot specifieke eindpunten (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
}
]
In het volgende voorbeeld ziet u een .alter callout policy opdracht voor postgresqlCalloutType:
.alter cluster policy callout @'[{"CalloutType": "postgresql", "CalloutUriRegex": "\\.postgresql\\.database\\.azure\\.com", "CanCall": true}]'
Verificatie met gebruikersnaam en wachtwoord
De postgresql_request invoegtoepassing ondersteunt alleen verificatie via gebruikersnaam en wachtwoord voor het PostgreSQL-servereindpunt en kan niet worden geïntegreerd met Microsoft Entra-verificatie.
De gebruikersnaam en het wachtwoord worden opgegeven als onderdeel van de verbindingsreeks met behulp van de volgende parameters:
User ID=...; Password=...;
Waarschuwing
Vertrouwelijke of beveiligde informatie moet worden verborgen uit verbindingsreeksen en query's, zodat ze worden weggelaten uit kusto-tracering. Zie verborgen letterlijke tekenreeksen voor meer informatie.
Versleuteling en servervalidatie
Voor beveiliging SslMode is voorwaardelijke ingesteld Required op wanneer u verbinding maakt met een PostgreSQL-servernetwerkeindpunt. Als gevolg hiervan moet de server worden geconfigureerd met een geldig SSL/TLS-servercertificaat.
Het netwerkeindpunt opgeven
Geef het PostgreSQL-netwerkeindpunt op als onderdeel van de verbindingsreeks.
Syntaxis:
Host
=
FQDN [Port=poort]
Where:
- FQDN is de volledig gekwalificeerde domeinnaam van het eindpunt.
- Poort is de TCP-poort van het eindpunt.
Voorbeelden
SQL-query naar Azure PostgreSQL DB
In het volgende voorbeeld wordt een SQL-query verzonden naar een Azure PostgreSQL-database. Alle records worden opgehaald uit public."Table"en vervolgens worden de resultaten verwerkt.
Opmerking
Dit voorbeeld mag niet worden gebruikt als aanbeveling om gegevens op deze manier te filteren of te projecteren. SQL-query's moeten worden samengesteld om de kleinste mogelijke gegevensset te retourneren.
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-query naar een Azure PostgreSQL-database met wijzigingen
In het volgende voorbeeld wordt een SQL-query verzonden naar een Azure PostgreSQL-database waarmee alle records worden opgehaald uit public."Table", terwijl u een andere datetime kolom toevoegt en vervolgens de resultaten verwerkt.
Hiermee geeft u een SQL-parameter (@param0) op die moet worden gebruikt in de SQL-query.
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-query naar een Azure PostgreSQL-database zonder een querygedefinieerde uitvoerschema
In het volgende voorbeeld wordt een SQL-query verzonden naar een Azure PostgreSQL-database zonder een uitvoerschema. Dit wordt niet aanbevolen tenzij het schema onbekend is, omdat dit van invloed kan zijn op de prestaties van de query
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