Dela via


mysql_request-plugin-program

Plugin-programmet mysql_request skickar en SQL-fråga till en MySQL Server-nätverksslutpunkt och returnerar den första raduppsättningen i resultatet. Frågan kan returnera fler än en raduppsättning, men endast den första raduppsättningen görs tillgänglig för resten av Kusto-frågan.

Plugin-programmet anropas med operatorn evaluate .

Viktigt

Plugin-programmet mysql_request är inaktiverat som standard. Kör kommandot för .enable plugin mysql_requestatt aktivera plugin-programmet. Om du vill se vilka plugin-program som är aktiverade använder du .show plugin hanteringskommandon.

Syntax

evaluatemysql_request(Connectionstring,SqlQuery [,SqlParameters] ) [:OutputSchema]

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
Connectionstring string ✔️ Den anslutningssträng som pekar på MySQL Server-nätverksslutpunkten. Se autentisering och hur du anger nätverksslutpunkten.
SqlQuery string ✔️ Frågan som ska köras mot SQL-slutpunkten. Måste returnera en eller flera raduppsättningar. Endast den första uppsättningen görs tillgänglig för resten av frågan.
SqlParameters dynamic Ett egenskapsuppsättningsobjekt som innehåller nyckel/värde-par som ska skickas som parametrar tillsammans med frågan.
OutputSchema Namn och typer för de förväntade kolumnerna i plugin-programmets mysql_request utdata.

Syntax: (ColumnName:ColumnType [, ...] )

Anteckning

  • Vi rekommenderar att du anger OutputSchema eftersom det gör att plugin-programmet kan användas i scenarier som annars inte fungerar utan det, till exempel en fråga mellan kluster. OutputSchema kan också aktivera flera frågeoptimeringar.
  • Ett fel utlöses om körningsschemat för den första raduppsättningen som returneras av SQL-nätverksslutpunkten inte matchar OutputSchema-schemat .

Autentisering och auktorisering

Om du vill auktorisera till en MySQL Server-nätverksslutpunkt måste du ange auktoriseringsinformationen i anslutningssträng. Auktoriseringsmetoden som stöds är via användarnamn och lösenord.

Ange pratbubblans princip

Plugin-programmet gör pratbubblan till MySql-databasen. Kontrollera att klustrets pratbubblans princip aktiverar anrop av typen mysql till målet MySqlDbUri.

I följande exempel visas hur du definierar pratbubblans princip för MySQL-databaser. Vi rekommenderar att du begränsar pratbubblan till specifika slutpunkter (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
  }
]

I följande exempel visas ett .alter callout policy kommando för mysqlCalloutType:

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

Autentisering med användarnamn och lösenord

Plugin-programmet mysql_request stöder endast autentisering med användarnamn och lösenord till MySQL-serverslutpunkten och integreras inte med Microsoft Entra-autentisering.

Användarnamnet och lösenordet anges som en del av anslutningssträngen med hjälp av följande parametrar:

User ID=...; Password=...;

Varning

Konfidentiell eller skyddad information bör döljas från anslutningssträngar och frågor så att de utelämnas från kusto-spårning. Mer information finns i dolda strängliteraraler.

Kryptering och servervalidering

För säkerhet SslMode är villkorslöst inställt på Required när du ansluter till en MySQL-servernätverksslutpunkt. Därför måste servern konfigureras med ett giltigt SSL/TLS-servercertifikat.

Ange nätverksslutpunkten

Ange MySQL-nätverksslutpunkten som en del av anslutningssträng.

Syntax:

Server=FQDN [Port=port]

Plats:

  • FQDN är slutpunktens fullständigt kvalificerade domännamn.
  • Port är TCP-porten för slutpunkten. Som standard 3306 antas.

Exempel

SQL-fråga till Azure MySQL DB

I följande exempel skickas en SQL-fråga till en Azure MySQL-databas. Den hämtar alla poster från [dbo].[Table]och bearbetar sedan resultatet.

Anteckning

Det här exemplet bör inte användas som en rekommendation för att filtrera eller projektdata på det här sättet. SQL-frågor bör konstrueras för att returnera den minsta möjliga datamängden.

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

SQL-fråga till en Azure MySQL-databas med ändringar

I följande exempel skickas en SQL-fråga till en Azure MySQL-databas som hämtar alla poster från [dbo].[Table]och lägger till en annan datetime kolumn och bearbetar sedan resultaten på Kusto-sidan. Den anger en SQL-parameter (@param0) som ska användas i SQL-frågan.

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

SQL-fråga till en Azure MySQL-databas utan ett frågedefinierat utdataschema

I följande exempel skickas en SQL-fråga till en Azure MySQL-databas utan ett utdataschema. Detta rekommenderas inte om inte schemat är okänt, eftersom det kan påverka frågans prestanda.

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

Den här funktionen stöds inte i Azure Monitor.