postgresql¶
fonte
lê dados de bancos sql relacionais: postgresql, mysql, sql server e oracle. usa a conexão configurada no gerenciador de conexões e executa uma query ou lê uma tabela inteira.
casos de uso¶
- extrair tabelas operacionais de um sistema legado
- executar queries analíticas complexas como fonte de dados
- sincronizar dados entre bancos de diferentes tecnologias
bancos suportados¶
| banco | driver | observações |
|---|---|---|
| postgresql | asyncpg | recomendado |
| mysql | aiomysql | |
| sql server | pyodbc | requer odbc driver |
| oracle | cx_oracle | requer oracle client |
configuração¶
| campo | tipo | obrigatório | descrição |
|---|---|---|---|
credential_id |
uuid | sim | id da conexão criada em conexões |
query |
string | sim* | sql a executar · suporta {{variavel}} |
table |
string | sim* | nome da tabela (alternativa ao query) |
schema |
string | não | schema da tabela (padrão: public no postgres) |
use query ou* table, não ambos.
exemplos¶
leitura de tabela inteira¶
equivale a SELECT * FROM vendas.clientes.
query personalizada¶
{
"credential_id": "uuid-da-conexao",
"query": "SELECT id, nome, email, created_at FROM clientes WHERE created_at >= '{{data_inicio}}' ORDER BY created_at"
}
query com join¶
{
"credential_id": "uuid-da-conexao",
"query": "SELECT p.id, p.nome, c.razao_social FROM pedidos p JOIN clientes c ON c.id = p.cliente_id WHERE p.status = 'pendente'"
}
variáveis de pipeline em queries¶
parâmetros de data, filtros e qualquer valor dinâmico podem ser injetados via {{variavel}}:
SELECT *
FROM vendas
WHERE data_venda BETWEEN '{{data_inicio}}' AND '{{data_fim}}'
AND filial_id = {{filial_id}}
sql injection
as variáveis de pipeline são substituídas por interpolação de string — não por parâmetros preparados. use apenas variáveis confiáveis (valores do seu próprio pipeline). nunca exponha input de usuário final diretamente em queries.
configurando a conexão¶
antes de usar o conector, crie a conexão em configurações → conexões:
| campo | descrição |
|---|---|
| tipo | postgres, mysql, mssql, oracle |
| host | endereço do servidor |
| port | porta (padrão postgres: 5432) |
| database | nome do banco |
| credencial | usuário e senha no vault |
performance¶
- para tabelas grandes, prefira
querycom filtros atable(evita varrer toda a tabela) - adicione
LIMITna query ao testar no builder - índices na coluna de filtro de data reduzem drasticamente o tempo de extração