Pular para conteúdo

postgresql · sql server · mysql · oracle

fonte

lê dados de bancos sql relacionais: postgresql, sql server / azure sql, mysql / mariadb e oracle database. os quatro aparecem como conectores separados na paleta (cada um com seu próprio ícone e conexão), mas compartilham a mesma mecânica de extração — a única diferença prática entre eles é o dialeto sql que você escreve na query.


quando usar

  • extrair tabelas operacionais de um sistema legado ou de terceiros para consolidar no seu lakehouse
  • executar queries analíticas complexas (joins, agregações) direto na origem como fonte de um pipeline
  • sincronizar dados entre bancos de tecnologias diferentes sem escrever integração customizada
  • alimentar a camada bronze do lakehouse com uma extração incremental agendada (watermark)

configuração

campo tipo obrigatório descrição
credential_id uuid sim conexão/credencial criada em configurações → conexões
query string sim sql a executar · suporta {{variavel}}
max_rows number não limite de segurança de linhas retornadas
store_as string não nome de variável de pipeline para reaproveitar o resultado

extração incremental (watermark)

campo tipo descrição
watermark_column string coluna com timestamp/id crescente (ex: updated_at) — habilita extração incremental por alto-water-mark
watermark_var string variável de pipeline injetada com o último valor visto (padrão: watermark)

não é cdc

a extração incremental via watermark é por polling: a cada execução, o pipeline injeta {{ pipeline.watermark }} na query e você mesmo filtra (WHERE updated_at > '{{ pipeline.watermark }}'). não é captura de mudanças em log (cdc) — não captura deletes nem updates que não avancem a coluna de watermark.


bancos suportados

banco conector na paleta observação de sintaxe
PostgreSQL PostgreSQL sql padrão, LIMIT
SQL Server / Azure SQL SQL Server usa TOP N em vez de LIMIT; identificadores entre colchetes [coluna] são aceitos
MySQL / MariaDB MySQL / MariaDB sql padrão, LIMIT; aspas de identificador com crase `coluna`
Oracle Database Oracle DB usa ROWNUM ou FETCH FIRST N ROWS ONLY; FROM DUAL para expressões sem tabela

exemplos por dialeto

SELECT id, nome, email, created_at
FROM clientes
WHERE created_at >= '{{data_inicio}}'
ORDER BY created_at
LIMIT 1000;
SELECT TOP 1000 id, nome, email, created_at
FROM clientes
WHERE created_at >= '{{data_inicio}}'
ORDER BY created_at;
SELECT id, nome, email, created_at
FROM clientes
WHERE created_at >= '{{data_inicio}}'
ORDER BY created_at
LIMIT 1000;
SELECT id, nome, email, created_at
FROM clientes
WHERE created_at >= TO_DATE('{{data_inicio}}', 'YYYY-MM-DD')
ORDER BY created_at
FETCH FIRST 1000 ROWS ONLY;

exemplos

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'"
}

extração incremental por watermark

{
  "credential_id": "uuid-da-conexao",
  "query": "SELECT * FROM vendas WHERE atualizado_em > '{{ pipeline.watermark }}' ORDER BY atualizado_em",
  "watermark_column": "atualizado_em",
  "watermark_var": "watermark"
}

a cada execução do pipeline, {{ pipeline.watermark }} é substituído automaticamente pelo maior valor de atualizado_em já processado na execução anterior.


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 segura (escaping automático de literais) — mesmo assim, use apenas variáveis controladas pelo seu próprio pipeline. nunca exponha input de usuário final diretamente em queries sem validação prévia.


configurando a conexão

antes de usar qualquer um dos quatro conectores, crie a conexão em configurações → conexões:

campo descrição
tipo postgresql, sqlserver, mysql ou oracle
host endereço do servidor
port porta (padrão postgres: 5432, sql server: 1433, mysql: 3306, oracle: 1521)
database nome do banco
credencial usuário e senha, criptografados no vault

performance

  • para tabelas grandes, prefira filtros na query (WHERE, watermark) a SELECT * sem filtro
  • adicione um limite (LIMIT/TOP/FETCH FIRST) na query ao testar o pipeline no builder
  • índices na coluna de filtro de data/watermark reduzem drasticamente o tempo de extração
  • em oracle e sql server, prefira paginação nativa do dialeto (FETCH FIRST, TOP) a ORDER BY sem limite em tabelas muito grandes