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_request
invoegtoepassing in te schakelen. Gebruik .show plugin
beheeropdrachten om te zien welke invoegtoepassingen zijn ingeschakeld.
Syntax
evaluate
mysql_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 mysql
CalloutType:
.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.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor