wtyczka postgresql_request
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Wtyczka postgresql_request
wysyła zapytanie SQL do punktu końcowego sieci serwera Azure PostgreSQL i zwraca pierwszy zestaw wierszy w wynikach. Zapytanie może zwrócić więcej niż jeden zestaw wierszy, ale tylko pierwszy zestaw wierszy jest dostępny dla pozostałej części zapytania Kusto.
Wtyczka jest wywoływana z operatorem evaluate
.
Ważne
Wtyczka postgresql_request
jest domyślnie wyłączona.
Aby włączyć wtyczkę, uruchom .enable plugin postgresql_request
polecenie . Aby sprawdzić, które wtyczki są włączone, użyj .show plugin
poleceń zarządzania.
Składnia
evaluate
postgresql_request
(
ConnectionString SqlQuery [,
SqlParameters] )
[:
OutputSchema] ,
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
ConnectionString | string |
✔️ | Parametry połączenia wskazujący punkt końcowy sieci serwera PostgreSQL. Zobacz uwierzytelnianie i sposób określania punktu końcowego sieci. |
Zapytanie sql | string |
✔️ | Zapytanie, które ma zostać wykonane względem punktu końcowego SQL. Musi zwrócić co najmniej jeden zestaw wierszy. Tylko pierwszy zestaw jest udostępniany dla pozostałej części zapytania. |
Parametry sql | dynamic |
Obiekt torby właściwości, który przechowuje pary klucz-wartość do przekazania jako parametry wraz z zapytaniem. | |
OutputSchema | Nazwy i typy oczekiwanych kolumn danych wyjściowych postgresql_request wtyczki.Składnia: ( ColumnName : ColumnType [, ...]) |
Uwaga
- Określenie parametru OutputSchema jest zdecydowanie zalecane, ponieważ umożliwia użycie wtyczki w scenariuszach, które w przeciwnym razie mogą nie działać bez niego, takich jak zapytanie między klastrami. Moduł OutputSchema może również włączyć wiele optymalizacji zapytań.
- Błąd jest zgłaszany, jeśli schemat czasu wykonywania pierwszego zestawu wierszy zwrócony przez punkt końcowy sieci SQL nie jest zgodny ze schematem OutputSchema .
Uwierzytelnianie i autoryzacja
Aby autoryzować punkt końcowy sieci serwera PostgreSQL, należy określić informacje o autoryzacji w parametry połączenia. Obsługiwana metoda autoryzacji odbywa się za pośrednictwem nazwy użytkownika i hasła.
Ustawianie zasad objaśnienie
Wtyczka wywołuje bazę danych PostgreSQL. Upewnij się, że zasady objaśnienia klastra umożliwiają wywołania typu postgresql
do docelowego identyfikatora PostgreSqlDbUri.
W poniższym przykładzie pokazano, jak zdefiniować zasady objaśnienie dla baz danych PostgreSQL. Zalecamy ograniczenie zasad objaśnień do określonych punktów końcowych (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
}
]
W poniższym przykładzie pokazano .alter callout policy
polecenie postgresql
calloutType:
.alter cluster policy callout @'[{"CalloutType": "postgresql", "CalloutUriRegex": "\\.postgresql\\.database\\.azure\\.com", "CanCall": true}]'
Uwierzytelnianie nazwy użytkownika i hasła
Wtyczka postgresql_request
obsługuje tylko uwierzytelnianie nazwy użytkownika i hasła do punktu końcowego serwera PostgreSQL i nie integruje się z uwierzytelnianiem firmy Microsoft Entra.
Nazwa użytkownika i hasło są udostępniane jako część parametrów połączeń przy użyciu następujących parametrów:
User ID=...; Password=...;
Ostrzeżenie
Poufne lub chronione informacje powinny być zaciemnione z parametry połączenia i zapytań, aby zostały pominięte z dowolnego śledzenia Usługi Kusto. Aby uzyskać więcej informacji, zobacz zaciemnione literały ciągu.
Szyfrowanie i walidacja serwera
W przypadku zabezpieczeń SslMode
parametr jest bezwarunkowo ustawiony na Required
wartość podczas nawiązywania połączenia z punktem końcowym sieci serwera PostgreSQL. W związku z tym serwer musi być skonfigurowany przy użyciu prawidłowego certyfikatu serwera SSL/TLS.
Określanie punktu końcowego sieci
Określ punkt końcowy sieci PostgreSQL w ramach parametry połączenia.
Składnia:
Host
=
Nazwa FQDN [ Port
=
Port]
Gdzie:
- Nazwa FQDN jest w pełni kwalifikowaną nazwą domeny punktu końcowego.
- Port to port TCP punktu końcowego.
Przykłady
Zapytanie SQL do bazy danych Azure PostgreSQL
Poniższy przykład wysyła zapytanie SQL do bazy danych Azure PostgreSQL. Pobiera wszystkie rekordy z public."Table"
elementu , a następnie przetwarza wyniki.
Uwaga
Ten przykład nie powinien być traktowany jako zalecenie dotyczące filtrowania lub filtrowania danych projektu w ten sposób. Zapytania SQL powinny być konstruowane w celu zwrócenia najmniejszego możliwego zestawu danych.
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
Zapytanie SQL do bazy danych Azure PostgreSQL z modyfikacjami
Poniższy przykład wysyła zapytanie SQL do bazy danych Azure PostgreSQL, pobierając wszystkie rekordy z public."Table"
elementu , dołączając kolejną datetime
kolumnę, a następnie przetwarza wyniki.
Określa parametr SQL (@param0
) do użycia w zapytaniu 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
Zapytanie SQL do bazy danych Azure PostgreSQL bez schematu danych wyjściowych zdefiniowanych przez zapytanie
Poniższy przykład wysyła zapytanie SQL do bazy danych Azure PostgreSQL bez schematu wyjściowego. Nie jest to zalecane, chyba że schemat jest nieznany, ponieważ może to mieć wpływ na wydajność zapytania
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