plug-in postgresql_request
O postgresql_request
plug-in envia uma consulta SQL para um ponto final de rede do PostgreSQL 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 postgresql_request
plug-in está desativado por predefinição.
Para ativar o plug-in, execute o .enable plugin postgresql_request
comando . Para ver que plug-ins estão ativados, utilize .show plugin
comandos de gestão.
Syntax
evaluate
postgresql_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 PostgreSQL. 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 postgresql_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 PostgreSQL, 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 chamadas para a base de dados PostgreSQL. Confirme que a política de nota de aviso do cluster ativa as chamadas do tipo postgresql
para o PostgreSqlDbUri de destino.
O exemplo seguinte mostra como definir a política de nota de aviso para bases de dados PostgreSQL. Recomendamos que restrinja a política de nota de aviso a pontos finais específicos (my_endpoint1
, my_endpoint2
).
[
{
"CalloutType": "postgresql",
"CalloutUriRegex": "my_endpoint1\\.postgres\\.database\\.azure\\.com",
"CanCall": true
},
{
"CalloutType": "postgresql",
"CalloutUriRegex": "my_endpoint2\\.postgres\\.database\\.azure\\.com",
"CanCall": true
}
]
O exemplo seguinte mostra um .alter callout policy
comando para postgresql
CalloutType:
.alter cluster policy callout @'[{"CalloutType": "postgresql", "CalloutUriRegex": "\\.postgresql\\.database\\.azure\\.com", "CanCall": true}]'
Autenticação de nome de utilizador e palavra-passe
O postgresql_request
plug-in só suporta a autenticação de nome de utilizador e palavra-passe no ponto final do servidor PostgreSQL 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
Para segurança, SslMode
é definido incondicionalmente como Required
ao ligar a um ponto final de rede do servidor PostgreSQL. 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 do PostgreSQL como parte do cadeia de ligação.
Sintaxe:
Host
=
FQDN [Port
=
Porta]
Em que:
- FQDN é o nome de domínio completamente qualificado do ponto final.
- A porta é a porta TCP do ponto final.
Exemplos
Consulta SQL para a BD PostgreSQL do Azure
O exemplo seguinte envia uma consulta SQL para uma base de dados PostgreSQL do Azure. Obtém todos os registos de public."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 postgresql_request(
'Host=contoso.postgres.database.azure.com; Port = 5432;'
'Database=Fabrikam;'
h'User Id=USERNAME;'
h'Password=PASSWORD;',
'select * from public."Table"') : (Id: int, Name: string)
| where Id > 0
| project Name
Consulta SQL para uma base de dados PostgreSQL do Azure com modificações
O exemplo seguinte envia uma consulta SQL para uma base de dados PostgreSQL do Azure a obter todos os registos de public."Table"
, ao acrescentar outra datetime
coluna e, em seguida, processa os resultados no lado Data Explorer do Azure.
Especifica um parâmetro SQL (@param0
) a ser utilizado na consulta SQL.
evaluate postgresql_request(
'Server=contoso.postgres.database.azure.com; Port = 5432;'
'Database=Fabrikam;'
h'User Id=USERNAME;'
h'Password=PASSWORD;',
'select *, @param0 as dt from public."Table"',
dynamic({'param0': datetime(2020-01-01 16:47:26.7423305)})) : (Id: int, Name: string, dt: datetime)
| where Id > 0
| project Name
Consulta SQL para uma base de dados PostgreSQL do Azure sem um esquema de saída definido pela consulta
O exemplo seguinte envia uma consulta SQL para uma base de dados PostgreSQL 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 postgresql_request(
'Host=contoso.postgres.database.azure.com; Port = 5432;'
'Database=Fabrikam;'
h'User Id=USERNAME;'
h'Password=PASSWORD;',
'select * from public."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