Delen via


Invoegtoepassing voor mysql_request

De mysql_request invoegtoepassing verzendt een SQL-query naar een MySQL Server-netwerkeindpunt en retourneert de eerste rijenset in de resultaten. De query kan meer dan één rijenset retourneren, maar alleen de eerste rijenset wordt beschikbaar gesteld voor de rest van de Kusto-query.

De invoegtoepassing wordt aangeroepen met de evaluate operator.

Belangrijk

De mysql_request invoegtoepassing is standaard uitgeschakeld. Voer de opdracht uit om de .enable plugin mysql_requestinvoegtoepassing in te schakelen. Gebruik .show plugin beheeropdrachten om te zien welke invoegtoepassingen zijn ingeschakeld.

Syntax

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

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
Connectionstring string ✔️ De verbindingsreeks die verwijst naar het mySQL Server-netwerkeindpunt. Zie verificatie en het opgeven van het netwerkeindpunt.
SqlQuery string ✔️ De query die moet worden uitgevoerd op het SQL-eindpunt. Moet een of meer rijensets retourneren. Alleen de eerste set wordt beschikbaar gesteld voor de rest van de query.
SqlParameters dynamic Een eigenschappenverzamelingsobject dat sleutel-waardeparen bevat om door te geven als parameters samen met de query.
OutputSchema De namen en typen voor de verwachte kolommen van de uitvoer van de mysql_request invoegtoepassing.

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

Notitie

  • Het opgeven van het OutputSchema wordt ten zeerste aanbevolen, omdat hiermee de invoegtoepassing kan worden gebruikt in scenario's die anders anders niet werken, zoals een query op meerdere clusters. Het OutputSchema kan ook meerdere queryoptimalisaties inschakelen.
  • Er treedt een fout op als het runtimeschema van de eerste rijset die door het SQL-netwerkeindpunt wordt geretourneerd, niet overeenkomt met het OutputSchema-schema .

Verificatie en autorisatie

Als u een MySQL Server-netwerkeindpunt wilt autoriseren, moet u de autorisatiegegevens opgeven in de verbindingsreeks. De ondersteunde autorisatiemethode is via gebruikersnaam en wachtwoord.

Bijschriftbeleid instellen

De invoegtoepassing maakt bijschriften naar de MySql-database. Zorg ervoor dat het bijschriftbeleid van het cluster aanroepen van het type mysql naar de mySqlDbUri-doel mogelijk maakt.

In het volgende voorbeeld ziet u hoe u het bijschriftbeleid voor MySQL-databases definieert. We raden u aan het bijschriftbeleid te beperken tot specifieke eindpunten (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
  }
]

In het volgende voorbeeld ziet u een .alter callout policy opdracht voor mysqlCalloutType:

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

Verificatie van gebruikersnaam en wachtwoord

De mysql_request invoegtoepassing ondersteunt alleen verificatie van gebruikersnaam en wachtwoord voor het MySQL-servereindpunt en kan niet worden geïntegreerd met Microsoft Entra verificatie.

De gebruikersnaam en het wachtwoord worden opgegeven als onderdeel van de verbindingsreeks met behulp van de volgende parameters:

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

Waarschuwing

Vertrouwelijke of beveiligde informatie moet worden verborgen in verbindingsreeksen en query's, zodat ze worden weggelaten uit kusto-tracering. Zie Verborgen letterlijke tekenreeksen voor meer informatie.

Versleuteling en servervalidatie

Voor beveiliging SslMode is onvoorwaardelijk ingesteld op Required wanneer u verbinding maakt met een MySQL-servernetwerkeindpunt. Als gevolg hiervan moet de server worden geconfigureerd met een geldig SSL/TLS-servercertificaat.

Het netwerkeindpunt opgeven

Geef het MySQL-netwerkeindpunt op als onderdeel van de verbindingsreeks.

Syntaxis:

Server=FQDN [Port=poort]

Waar:

  • FQDN is de Fully Qualified Domain Name van het eindpunt.
  • Poort is de TCP-poort van het eindpunt. 3306 Standaard wordt ervan uitgegaan.

Voorbeelden

SQL-query naar Azure MySQL DB

In het volgende voorbeeld wordt een SQL-query verzonden naar een Azure MySQL-database. Alle records worden opgehaald uit [dbo].[Table]en vervolgens worden de resultaten verwerkt.

Notitie

Dit voorbeeld moet niet worden gebruikt als aanbeveling om gegevens op deze manier te filteren of te projecteren. SQL-query's moeten worden samengesteld om de kleinst mogelijke gegevensset te retourneren.

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-query naar een Azure MySQL-database met wijzigingen

In het volgende voorbeeld wordt een SQL-query verzonden naar een Azure MySQL-database die alle records opvraagt uit [dbo].[Table], terwijl er nog een datetime kolom wordt toegevoegd en worden de resultaten vervolgens aan de Kusto-zijde verwerkt. Hiermee wordt een SQL-parameter (@param0) opgegeven die moet worden gebruikt in de SQL-query.

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-query naar een Azure MySQL-database zonder een querygedefinieerde uitvoerschema

In het volgende voorbeeld wordt een SQL-query verzonden naar een Azure MySQL-database zonder uitvoerschema. Dit wordt niet aanbevolen, tenzij het schema onbekend is, omdat dit van invloed kan zijn op de prestaties van de query.

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

Deze mogelijkheid wordt niet ondersteund in Azure Monitor.