Plug-in mysql_request
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati
Il mysql_request
plug-in invia una query SQL a un endpoint di rete del server MySQL di Azure e restituisce il primo set di righe nei risultati. La query può restituire più set di righe, ma solo il primo set di righe viene reso disponibile per il resto della query Kusto.
Il plug-in viene richiamato con l'operatore evaluate
.
Importante
Il mysql_request
plug-in è disabilitato per impostazione predefinita.
Per abilitare il plug-in, eseguire il .enable plugin mysql_request
comando . Per vedere quali plug-in sono abilitati, usare .show plugin
i comandi di gestione.
Sintassi
evaluate
mysql_request
(
ConnectionString ,
SqlQuery [,
SqlParameters] )
[:
OutputSchema]
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
ConnectionString | string |
✔️ | Il stringa di connessione che punta all'endpoint di rete del server MySQL. Vedere Autenticazione e come specificare l'endpoint di rete. |
SqlQuery | string |
✔️ | Query da eseguire sull'endpoint SQL. Deve restituire uno o più set di righe. Solo il primo set viene reso disponibile per il resto della query. |
SqlParameters | dynamic |
Oggetto contenitore delle proprietà che contiene coppie chiave-valore da passare come parametri insieme alla query. | |
OutputSchema | Nomi e tipi per le colonne previste dell'output del plug-in mysql_request .Sintassi: ( ColumnName : ColumnType [, ...]) |
Nota
- È consigliabile specificare OutputSchema , in quanto consente l'uso del plug-in in scenari che potrebbero altrimenti non funzionare senza di esso, ad esempio una query tra cluster. OutputSchema può anche abilitare più ottimizzazioni delle query.
- Viene generato un errore se lo schema di runtime del primo set di righe restituito dall'endpoint di rete SQL non corrisponde allo schema OutputSchema .
Autenticazione e autorizzazione
Per autorizzare un endpoint di rete mySQL Server, è necessario specificare le informazioni di autorizzazione nel stringa di connessione. Il metodo di autorizzazione supportato è tramite nome utente e password.
Impostare i criteri di callout
Il plug-in crea callout al database MySql. Assicurarsi che i criteri di callout del cluster consentano le chiamate di tipo mysql
a MySqlDbUri di destinazione.
L'esempio seguente illustra come definire i criteri di callout per i database MySQL. È consigliabile limitare i criteri di callout a endpoint specifici (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
}
]
L'esempio seguente mostra un .alter callout policy
comando per mysql
CalloutType:
.alter cluster policy callout @'[{"CalloutType": "mysql", "CalloutUriRegex": "\\.mysql\\.database\\.azure\\.com", "CanCall": true}]'
Autenticazione con nome utente e password
Il mysql_request
plug-in supporta solo l'autenticazione di nome utente e password per l'endpoint server MySQL e non si integra con l'autenticazione di Microsoft Entra.
Il nome utente e la password vengono forniti come parte della stringa di connessione usando i parametri seguenti:
User ID=...; Password=...;
Avviso
Le informazioni riservate o protette devono essere offuscate da stringa di connessione e query in modo che vengano omesse da qualsiasi traccia Kusto. Per altre informazioni, vedere Valori letterali stringa offuscati.
Crittografia e convalida del server
Per la sicurezza, SslMode
è impostato in modo incondizionato su Required
quando ci si connette a un endpoint di rete del server MySQL. Di conseguenza, il server deve essere configurato con un certificato server SSL/TLS valido.
Specificare l'endpoint di rete
Specificare l'endpoint di rete MySQL come parte del stringa di connessione.
Sintassi:
Server
=
FQDN [Port
=
Porta]
Dove:
- FQDN è il nome di dominio completo dell'endpoint.
- La porta è la porta TCP dell'endpoint. Per impostazione predefinita, questo valore è
3306
.
Esempi
Query SQL nel database MySQL di Azure
L'esempio seguente invia una query SQL a un database MySQL di Azure. Recupera tutti i record da [dbo].[Table]
e quindi elabora i risultati.
Nota
Questo esempio non deve essere considerato come raccomandazione per filtrare o proiettare i dati in questo modo. Le query SQL devono essere costruite per restituire il set di dati più piccolo possibile.
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
Query SQL in un database MySQL di Azure con modifiche
L'esempio seguente invia una query SQL a un database MySQL di Azure che recupera tutti i record da [dbo].[Table]
, aggiungendo un'altra datetime
colonna e quindi elabora i risultati sul lato Kusto.
Specifica un parametro SQL (@param0
) da usare nella query 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
Query SQL in un database MySQL di Azure senza uno schema di output definito da query
L'esempio seguente invia una query SQL a un database MySQL di Azure senza uno schema di output. Questa operazione non è consigliata a meno che lo schema non sia sconosciuto, perché può influire sulle prestazioni della 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