Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Alterne entre serviços usando a lista suspensa Version. Saiba mais sobre navegação.
Aplica-se a: ✅ Microsoft Fabric ✅ Azure Data Explorer
O postgresql_request plugin envia uma consulta SQL para um endpoint de rede Azure 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 fica disponível para o resto da consulta Kusto.
O plugin é invocado com o operador evaluate.
Importante
O postgresql_request plugin está desativado por defeito.
Para ativar o plugin, execute o .enable plugin postgresql_request comando. Para ver quais os plugins que estão ativados, use .show plugin comandos de gestão.
Sintaxe
evaluate
postgresql_request
(
ConnectionString,SqlQuery [,SqlParameters] ) [:OutputSchema]
Saiba mais sobre convenções de sintaxe.
Parâmetros
| Nome | Tipo | Obrigatório | Description |
|---|---|---|---|
| ConnectionString | string |
✔️ | A cadeia de ligação que aponta para o ponto final da rede PostgreSQL Server. Veja autenticação e como especificar o endpoint da rede. |
| SqlQuery | string |
✔️ | A consulta que deve ser executada contra o endpoint SQL. Deve devolver um ou mais conjuntos de linhas. Apenas o primeiro conjunto fica disponível para o resto da consulta. |
| SqlParameters | dynamic |
Um objeto saco de propriedades que contém pares-chave-valor para passar como parâmetros juntamente com a consulta. | |
| Esquema de saída | Os nomes e tipos para as colunas esperadas da saída do postgresql_request plugin.Sintaxe: (ColumnName:ColumnType [, ...] ) |
Observação
- É altamente recomendado especificar o OutputSchema , pois permite que o plugin seja usado em cenários que de outra forma não funcionariam sem ele, como uma consulta cross-cluster. O OutputSchema também pode permitir múltiplas otimizações de consultas.
- Surge um erro se o esquema em tempo de execução do primeiro conjunto de linhas devolvido pelo endpoint da rede SQL não corresponder ao esquema OutputSchema .
Autenticação e autorização
Para autorizar um endpoint de rede PostgreSQL Server, deve especificar a informação de autorização na cadeia de ligação. O método de autorização suportado é através do nome de utilizador e palavra-passe.
Política de chamada definida
O plugin faz chamadas para a base de dados PostgreSQL. Certifique-se de que a política de callout do cluster permite chamadas de tipo postgresql para o PostgreSqlDbUri alvo.
O exemplo seguinte mostra como definir a política de callout para bases de dados PostgreSQL. Recomendamos restringir a política de callout a endpoints 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 postgresqlCalloutType:
.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 plugin só suporta autenticação por nome de utilizador e palavra-passe para o endpoint do servidor PostgreSQL e não se integra com a autenticação Microsoft Entra.
O nome de utilizador e a palavra-passe são fornecidos como parte da cadeia de ligações usando os seguintes parâmetros:
User ID=...; Password=...;
Advertência
Informação confidencial ou guardada deve ser ofuscada das cadeias de ligação e consultas, para que sejam omitidas de qualquer rastreamento Kusto. Para mais informações, veja literais de cadeias ofuscadas.
Encriptação e validação de servidores
Para segurança, SslMode é definido incondicionalmente para Required quando se liga a um endpoint de rede de servidor PostgreSQL. Como resultado, o servidor deve ser configurado com um certificado válido de servidor SSL/TLS.
Especificar o ponto final da rede
Especifique o endpoint da rede PostgreSQL como parte da cadeia de ligação.
Sintaxe:
Host
=
FQDN [Port=Porta]
Where:
- FQDN é o nome de domínio totalmente qualificado do endpoint.
- A porta é a porta TCP do endpoint.
Examples
SQL query to Azure PostgreSQL DB
O exemplo seguinte envia uma consulta SQL para uma base de dados Azure PostgreSQL. Recupera todos os registos de public."Table", e depois processa os resultados.
Observação
Este exemplo não deve ser tomado 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
SQL query para uma base de dados Azure PostgreSQL com modificações
O exemplo seguinte envia uma consulta SQL para uma base de dados Azure PostgreSQL, recuperando todos os registos de public."Table", enquanto acrescenta outra datetime coluna, e depois processa os resultados.
Especifica um parâmetro SQL (@param0) a ser usado 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 Azure PostgreSQL sem um esquema de saída definido por consulta
O exemplo seguinte envia uma consulta SQL para uma base de dados Azure PostgreSQL sem um esquema de saída. Isto não é recomendado, a menos que o esquema seja desconhecido, pois 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