Sdílet prostřednictvím


mysql_request plugin

Modul mysql_request plug-in odešle dotaz SQL do koncového bodu sítě serveru Azure MySQL 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 mysql_request je ve výchozím nastavení zakázaný. Pokud chcete modul plug-in povolit, spusťte .enable plugin mysql_request příkaz. Pokud chcete zjistit, které moduly plug-in jsou povolené, použijte .show plugin příkazy pro správu.

Syntaxe

evaluatemysql_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 MySQL. 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 mysql_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ě MySQL Serveru, musíte 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 databáze MySql. Ujistěte se, že zásada popisku clusteru umožňuje volání typu mysql do cílového mySqlDbUri.

Následující příklad ukazuje, jak definovat zásady popisku pro databáze MySQL. Doporučujeme omezit zásady bublinového popisku na konkrétní koncové body (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
  }
]

Následující příklad ukazuje .alter callout policy příkaz pro mysql CalloutType:

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

Ověřování pomocí uživatelského jména a hesla

Modul mysql_request plug-in podporuje pouze ověřování pomocí uživatelského jména a hesla pro koncový bod serveru MySQL 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ě nastavená Required při připojování ke koncovému bodu sítě serveru MySQL. 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ě MySQL.

Syntaxe:

Server= 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. Ve výchozím nastavení 3306 se předpokládá.

Příklady

Dotaz SQL na databázi Azure MySQL

Následující příklad odešle dotaz SQL do databáze Azure MySQL. Načte všechny záznamy z [dbo].[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 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

Dotaz SQL na databázi Azure MySQL s úpravami

Následující příklad odešle dotaz SQL do databáze Azure MySQL, která načítá všechny záznamy z [dbo].[Table], při připojení jiného datetime sloupce a pak zpracuje výsledky na straně Kusto. Určuje parametr SQL (@param0), který se má použít v dotazu 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

Dotaz SQL na databázi Azure MySQL bez schématu výstupu definovaného dotazem

Následující příklad odešle dotaz SQL do databáze Azure MySQL 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 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

Tato funkce není ve službě Azure Monitor podporovaná.