Udostępnij za pośrednictwem


mysql_request, wtyczka

Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer

Wtyczka mysql_request wysyła zapytanie SQL do punktu końcowego sieci serwera Azure MySQL 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 mysql_request jest domyślnie wyłączona. Aby włączyć wtyczkę, uruchom .enable plugin mysql_request polecenie . Aby sprawdzić, które wtyczki są włączone, użyj .show plugin poleceń zarządzania.

Składnia

evaluatemysql_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 MySQL. 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 mysql_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 MySQL, 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 MySql. Upewnij się, że zasady objaśnienia klastra umożliwiają wywołania typu mysql do docelowego identyfikatora MySqlDbUri.

W poniższym przykładzie pokazano, jak zdefiniować zasady objaśnienie dla baz danych MySQL. Zalecamy ograniczenie zasad objaśnień do określonych punktów końcowych (my_endpoint1, my_endpoint2).

[
  {
    "CalloutType": "mysql",
    "CalloutUriRegex": "my_endpoint1\\.mysql\\.database\\.azure\\.com",
    "CanCall": true
  },
  {
    "CalloutType": "mysql",
    "CalloutUriRegex": "my_endpoint2\\.mysql\\.database\\.azure\\.com",
    "CanCall": true
  }
]

W poniższym przykładzie pokazano .alter callout policy polecenie mysql calloutType:

.alter cluster policy callout @'[{"CalloutType": "mysql", "CalloutUriRegex": "\\.mysql\\.database\\.azure\\.com", "CanCall": true}]'

Uwierzytelnianie nazwy użytkownika i hasła

Wtyczka mysql_request obsługuje tylko uwierzytelnianie nazwy użytkownika i hasła w punkcie końcowym serwera MySQL 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 MySQL. 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 MySQL w ramach parametry połączenia.

Składnia:

Server= Nazwa FQDN [ Port = Port]

Gdzie:

  • Nazwa FQDN jest w pełni kwalifikowaną nazwą domeny punktu końcowego.
  • Port to port TCP punktu końcowego. Domyślnie przyjmuje się założenie 3306 .

Przykłady

Zapytanie SQL do usługi Azure MySQL DB

Poniższy przykład wysyła zapytanie SQL do bazy danych Azure MySQL. Pobiera wszystkie rekordy z [dbo].[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 mysql_request(
    'Server=contoso.mysql.database.azure.com; Port = 3306;'
    'Database=Fabrikam;'
    h'UID=USERNAME;'
    h'Pwd=PASSWORD;',
    'select * from `dbo`.`Table`') : (Id: int, Name: string)
| where Id > 0
| project Name

Zapytanie SQL do bazy danych Azure MySQL z modyfikacjami

Poniższy przykład wysyła zapytanie SQL do bazy danych Azure MySQL, pobierając wszystkie rekordy z [dbo].[Table]usługi , dołączając kolejną datetime kolumnę, a następnie przetwarza wyniki po stronie usługi Kusto. Określa parametr SQL (@param0) do użycia w zapytaniu SQL.

evaluate mysql_request(
    'Server=contoso.mysql.database.azure.com; Port = 3306;'
    'Database=Fabrikam;'
    h'UID=USERNAME;'
    h'Pwd=PASSWORD;',
    'select *, @param0 as dt from `dbo`.`Table`',
    dynamic({'param0': datetime(2020-01-01 16:47:26.7423305)})) : (Id:long, Name:string, dt: datetime)
| where Id > 0
| project Name

Zapytanie SQL do bazy danych Azure MySQL bez schematu danych wyjściowych zdefiniowanych przez zapytanie

Poniższy przykład wysyła zapytanie SQL do bazy danych Azure MySQL bez schematu wyjściowego. Nie jest to zalecane, chyba że schemat jest nieznany, ponieważ może to mieć wpływ na wydajność zapytania.

evaluate mysql_request(
    'Server=contoso.mysql.database.azure.com; Port = 3306;'
    'Database=Fabrikam;'
    h'UID=USERNAME;'
    h'Pwd=PASSWORD;',
    'select * from `dbo`.`Table`')
| where Id > 0
| project Name