mysql_request plugin
O mysql_request
plug-in envia uma consulta SQL para um ponto final de rede do MySQL Server e devolve o primeiro conjunto de linhas nos resultados. A consulta pode devolver mais do que um conjunto de linhas, mas apenas o primeiro conjunto de linhas é disponibilizado para o resto da consulta Kusto.
O plug-in é invocado com o evaluate
operador .
Importante
O mysql_request
plug-in está desativado por predefinição.
Para ativar o plug-in, execute o .enable plugin mysql_request
comando . Para ver que plug-ins estão ativados, utilize .show plugin
comandos de gestão.
Syntax
evaluate
mysql_request
(
ConnectionString,
SqlQuery [,
SqlParameters] )
[:
OutputSchema]
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
ConnectionString | string |
✔️ | O cadeia de ligação que aponta para o ponto final de rede do Servidor MySQL. Veja a autenticação e como especificar o ponto final de rede. |
SqlQuery | string |
✔️ | A consulta que vai ser executada no ponto final do SQL. Tem de devolver um ou mais conjuntos de linhas. Apenas o primeiro conjunto é disponibilizado para o resto da consulta. |
SqlParameters | dynamic |
Um objeto de conjunto de propriedades que contém pares chave-valor para transmitir como parâmetros juntamente com a consulta. | |
OutputSchema | Os nomes e tipos das colunas esperadas da saída do mysql_request plug-in.Sintaxe: ( ColumnName: ColumnType [, ...] ) |
Nota
- Especificar o OutputSchema é altamente recomendado, uma vez que permite que o plug-in seja utilizado em cenários que, de outra forma, não funcionarão sem ele, como uma consulta entre clusters. O OutputSchema também pode ativar várias otimizações de consultas.
- É gerado um erro se o esquema de tempo de execução do primeiro conjunto de linhas devolvido pelo ponto final de rede SQL não corresponder ao esquema OutputSchema .
Autenticação e autorização
Para autorizar um ponto final de rede do Servidor MySQL, tem de especificar as informações de autorização no cadeia de ligação. O método de autorização suportado é através do nome de utilizador e da palavra-passe.
Definir política de nota de aviso
O plug-in faz notas de aviso para a base de dados MySql. Confirme que a política de nota de aviso do cluster ativa as chamadas do tipo mysql
para o MySqlDbUri de destino.
O exemplo seguinte mostra como definir a política de nota de aviso para bases de dados MySQL. Recomendamos que restrinja a política de nota de aviso a pontos finais específicos (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
}
]
O exemplo seguinte mostra um .alter callout policy
comando para mysql
CalloutType:
.alter cluster policy callout @'[{"CalloutType": "mysql", "CalloutUriRegex": "\\.mysql\\.database\\.azure\\.com", "CanCall": true}]'
Autenticação de nome de utilizador e palavra-passe
O mysql_request
plug-in só suporta a autenticação de nome de utilizador e palavra-passe no ponto final do servidor MySQL e não se integra na autenticação Microsoft Entra.
O nome de utilizador e a palavra-passe são fornecidos como parte da cadeia de ligações com os seguintes parâmetros:
User ID=...; Password=...;
Aviso
As informações confidenciais ou guardadas devem ser ocultadas de cadeias de ligação e consultas para que sejam omitidas de qualquer rastreio do Kusto. Para obter mais informações, veja literais de cadeias ocultas.
Encriptação e validação do servidor
Por motivos de segurança, SslMode
é definido incondicionalmente como Required
ao ligar a um ponto final de rede do servidor MySQL. Como resultado, o servidor tem de ser configurado com um certificado de servidor SSL/TLS válido.
Especificar o ponto final de rede
Especifique o ponto final de rede mySQL como parte do cadeia de ligação.
Sintaxe:
Server
=
FQDN [Port
=
Porta]
Em que:
- FQDN é o nome de domínio completamente qualificado do ponto final.
- A porta é a porta TCP do ponto final. Por predefinição,
3306
é assumido.
Exemplos
Consulta SQL para a BD MySQL do Azure
O exemplo seguinte envia uma consulta SQL para uma base de dados MySQL do Azure. Obtém todos os registos de [dbo].[Table]
e, em seguida, processa os resultados.
Nota
Este exemplo não deve ser considerado como uma recomendação para filtrar ou projetar dados desta forma. As consultas SQL devem ser construídas para devolver o menor conjunto de dados possível.
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
Consulta SQL para uma base de dados MySQL do Azure com modificações
O exemplo seguinte envia uma consulta SQL para uma base de dados MySQL do Azure que obtém todos os registos de [dbo].[Table]
, ao acrescentar outra datetime
coluna e, em seguida, processa os resultados no lado do Kusto.
Especifica um parâmetro SQL (@param0
) a ser utilizado na consulta 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
Consulta SQL para uma base de dados MySQL do Azure sem um esquema de saída definido pela consulta
O exemplo seguinte envia uma consulta SQL para uma base de dados MySQL do Azure sem um esquema de saída. Isto não é recomendado a menos que o esquema seja desconhecido, uma vez que pode afetar o desempenho da consulta.
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
Esta capacidade não é suportada no Azure Monitor.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários