modul plug-in postgresql_request
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer
Modul postgresql_request
plug-in odešle dotaz SQL do koncového bodu sítě Serveru Azure PostgreSQL a vrátí první sadu řádků ve výsledcích. Dotaz může vrátit více než jednu sadu řádků, ale pro zbytek dotazu Kusto je k dispozici pouze první sada řádků.
Modul plug-in se vyvolá pomocí operátoru evaluate
.
Důležité
Modul plug-in postgresql_request
je ve výchozím nastavení zakázaný.
Pokud chcete modul plug-in povolit, spusťte .enable plugin postgresql_request
příkaz. Pokud chcete zjistit, které moduly plug-in jsou povolené, použijte .show plugin
příkazy pro správu.
Syntaxe
evaluate
postgresql_request
(
ConnectionString SqlQuery [,
SqlParameters] )
[:
OutputSchema] ,
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
Připojovací řetězec | string |
✔️ | Připojovací řetězec, která odkazuje na koncový bod sítě Serveru PostgreSQL. Podívejte se na ověřování a určení koncového bodu sítě. |
SqlQuery | string |
✔️ | Dotaz, který se má spustit na koncovém bodu SQL. Musí vrátit jednu nebo více sad řádků. Pro zbytek dotazu se zpřístupní pouze první sada. |
SqlParameters | dynamic |
Objekt kontejneru vlastností, který obsahuje páry klíč-hodnota, které se předávají jako parametry spolu s dotazem. | |
OutputSchema | Názvy a typy očekávaných sloupců výstupu postgresql_request modulu plug-in.Syntaxe: ( ColumnName : ColumnType [, ...]) |
Poznámka:
- Zadání outputSchema je vysoce doporučeno, protože umožňuje použití modulu plug-in ve scénářích, které by jinak bez něj nemusely fungovat, například dotaz mezi clustery. OutputSchema může také povolit více optimalizací dotazů.
- Pokud schéma spuštění první sady řádků vrácené koncovým bodem sítě SQL neodpovídá schématu OutputSchema , vyvolá se chyba.
Ověřování a autorizace
Pokud chcete autorizovat koncový bod sítě Serveru PostgreSQL, je nutné zadat informace o autorizaci v připojovací řetězec. Podporovaná metoda autorizace je prostřednictvím uživatelského jména a hesla.
Nastavení zásad bublinového popisku
Modul plug-in provádí bublinové popisky do databáze PostgreSQL. Ujistěte se, že zásada popisku clusteru umožňuje volání typu postgresql
do cílového identifikátoru PostgreSqlDbUri.
Následující příklad ukazuje, jak definovat zásady popisku pro databáze PostgreSQL. Doporučujeme omezit zásady bublinového popisku na konkrétní koncové body (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
}
]
Následující příklad ukazuje .alter callout policy
příkaz pro postgresql
CalloutType:
.alter cluster policy callout @'[{"CalloutType": "postgresql", "CalloutUriRegex": "\\.postgresql\\.database\\.azure\\.com", "CanCall": true}]'
Ověřování pomocí uživatelského jména a hesla
Modul postgresql_request
plug-in podporuje pouze ověřování pomocí uživatelského jména a hesla pro koncový bod serveru PostgreSQL a neintegruje se s ověřováním Microsoft Entra.
Uživatelské jméno a heslo se zadají jako součást připojovacího řetězce pomocí následujících parametrů:
User ID=...; Password=...;
Upozorňující
Důvěrné nebo chráněné informace by měly být obfuskovány z připojovací řetězec a dotazů, aby byly vynechány z jakéhokoli trasování Kusto. Další informace najdete v obfuskovaných řetězcových literálech.
Ověřování šifrování a serveru
Pro zabezpečení SslMode
je bezpodmínečně nastaveno Required
při připojování ke koncovému bodu sítě serveru PostgreSQL. V důsledku toho musí být server nakonfigurovaný s platným certifikátem serveru SSL/TLS.
Zadání koncového bodu sítě
Jako součást připojovací řetězec zadejte koncový bod sítě PostgreSQL.
Syntaxe:
Host
=
Plně kvalifikovaný název domény [ Port
=
Port]
Kde:
- Plně kvalifikovaný název domény koncového bodu.
- Port je port TCP koncového bodu.
Příklady
Dotaz SQL na databázi Azure PostgreSQL
Následující příklad odešle dotaz SQL do databáze Azure PostgreSQL. Načte všechny záznamy z public."Table"
a pak zpracuje výsledky.
Poznámka:
Tento příklad by se neměl brát jako doporučení k filtrování nebo projektování dat tímto způsobem. Dotazy SQL by se měly vytvořit tak, aby vrátily nejmenší možnou datovou sadu.
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
Dotaz SQL na databázi Azure PostgreSQL s úpravami
Následující příklad odešle dotaz SQL do databáze Azure PostgreSQL, která načítá všechny záznamy z public."Table"
, při připojování jiného datetime
sloupce a pak zpracuje výsledky.
Určuje parametr SQL (@param0
), který se má použít v dotazu SQL.
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
Dotaz SQL na databázi Azure PostgreSQL bez schématu výstupu definovaného dotazem
Následující příklad odešle dotaz SQL do databáze Azure PostgreSQL bez výstupního schématu. To se nedoporučuje, pokud schéma není neznámé, protože může mít vliv na výkon dotazu.
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