s3 / minio¶
fonte
lê arquivos do seu próprio bucket s3 ou minio — parquet, csv, json ou excel. use este conector quando os dados de origem já existem como arquivos em um object storage que você controla (exports de sistemas, dumps de terceiros, arquivos entregues por parceiros).
quando usar¶
- ler exports periódicos que um sistema legado deposita em um bucket (csv, excel)
- consumir arquivos parquet entregues por um parceiro de dados ou por outra área da empresa
- processar uma pasta inteira de arquivos que chegam com nomes previsíveis (ex:
vendas_2024-01-01.csv,vendas_2024-01-02.csv, ...) sem reprocessar o que já foi lido
formatos suportados¶
| formato | observações |
|---|---|
parquet |
mais eficiente — leitura colunar direta |
csv |
detecção automática de schema e cabeçalho |
json |
suporta tanto arquivos de array quanto envelope com campo de registros aninhado |
excel |
suporta leitura de múltiplos arquivos combinados em um único dataset |
configuração¶
| campo | tipo | obrigatório | descrição |
|---|---|---|---|
bucket |
string | não | nome do bucket · padrão: bucket do lakehouse do workspace |
key |
string | sim | caminho do arquivo no bucket. suporta {{variavel}} e padrões glob (*, ?, [...]) |
file_format |
enum | não | parquet, csv, json, excel · padrão: parquet |
csv_delimiter |
string | não | delimitador para csv · padrão: , |
json_records_field |
string | não | quando o json é um envelope ({"data": [...]}), informe o campo que contém a lista de registros |
incremental |
bool | não | quando true e key é um padrão glob, pula arquivos já lidos em execuções anteriores |
leitura de múltiplos arquivos (glob)¶
quando key contém um padrão glob (ex: exports/vendas/*.csv), todos os arquivos que casam com o padrão são lidos e combinados em um único dataset — mesmo que tenham colunas ligeiramente diferentes entre si (colunas ausentes em um arquivo recebem null).
extração incremental por arquivo novo¶
com incremental: true, cada execução do pipeline lê apenas os arquivos criados/modificados depois da última execução — útil para pastas onde novos arquivos chegam periodicamente (ex: vendas_YYYY-MM-DD.csv depositado todo dia):
{
"bucket": "meu-bucket",
"key": "exports/vendas/vendas_*.csv",
"file_format": "csv",
"incremental": true
}
não é cdc
o rastreamento incremental é feito pela data de modificação do arquivo no bucket — não olha o conteúdo interno do arquivo. se um arquivo já lido for sobrescrito com dados novos mas sem atualizar sua data de modificação, ele não será relido automaticamente.
exemplos¶
ler parquet de um caminho fixo¶
quando bucket não é informado, o conector usa o bucket do lakehouse padrão do workspace.
ler csv com ponto-e-vírgula¶
{
"bucket": "meu-bucket-externo",
"key": "uploads/vendas_2024.csv",
"file_format": "csv",
"csv_delimiter": ";"
}
caminho dinâmico com variável¶
se as variáveis de pipeline entidade=clientes, ano=2024, mes=01 estiverem configuradas, o caminho resolvido será exports/clientes/2024-01/data.parquet.
ler json com envelope de registros¶
{
"bucket": "dados-raw",
"key": "api-dumps/produtos.json",
"file_format": "json",
"json_records_field": "data"
}
quando o arquivo tem a forma {"data": [{...}, {...}]}, json_records_field: "data" extrai a lista de registros automaticamente.
ler excel¶
excel é mais custoso
arquivos excel são baixados por completo antes da leitura (diferente de parquet/csv, que são lidos de forma mais eficiente). para volumes grandes e recorrentes, prefira que a fonte já entregue os dados em csv ou parquet.
consumindo dados de outro pipeline¶
dados já governados por um pipeline DataBlixt (camada bronze/silver/gold) não devem ser lidos por este conector — use o lakehouse reader, que resolve automaticamente a tabela e a camada certas sem que você precise conhecer o caminho físico do arquivo.