Pular para o conteúdo

Push de arquivos para a landing

Aula 6 de 86 minOperarAtualizada em 2026-10-05

Vídeo em produção

A gravação desta aula está no lote de produção. O objetivo, o exercício e a documentação já valem. Duração-alvo: 6 min.

Objetivo: Importar arquivo; explicar área de recebimento

Selo de estado: Preview (teto atual do produto) · Curso ACD-210 — Conectores e conexões · Aula 6 de 8 · Atualizado em 2026-10-05.

Objetivo#

Ao final desta aula você vai importar arquivo; explicar área de recebimento — depositando um CSV na landing do seu workspace e sabendo dizer onde ele parou em cada passo.

Vídeo#

Identificador no manifesto: acd-210-06-arquivos-csv-json-parquet · duração-alvo 6 min · tela do produto: /conexoes.

Roteiro de gravação (5 capítulos):

#Minutagem-alvoCapítuloTela do produto
10:00–0:40Abertura: título + selo. Você deposita (push) × Nós buscamos (pull) — e por que arquivo não pede senha./conexoes/nova
20:40–2:00O cartão de arquivo leva ao fluxo de arquivos, não ao assistente de conexão. Pasta na landing e caminho de destino./sources/new
32:00–3:20Opções por formato: Delimitador no CSV, Formato (linhas/array) no JSON, nada no Parquet./sources/new
43:20–4:40Processar agora e os quatro passos ao vivo: validar → landing → bronze → registrar. Carga verbatim e os carimbos./sources
54:40–6:00Saneamento automático de cabeçalho; por que puxar do seu bucket ainda depende de liberação; o "faça você mesmo"./sources

Conteúdo#

CSV, JSON e Parquet são Disponível (maturidade GA-candidato) e são os únicos conectores que não têm cofre nem senha: no modo push você é quem entrega o dado. O cartão do catálogo já avisa a porta certa — "Enviar arquivo — não pede senha".

Push é uma carga que

você dispara No modo Você deposita (push) o arquivo vai para a área de recebimento (landing) do seu workspace e o produto carrega na Bronze quando você manda. Nada acontece sozinho: o arquivo chegar à landing não é o mesmo que a Bronze ter linhas.

Push, pull e o que cada um autoriza (medido em 2026-10-05)

ModoQuem move o dadoEstado hoje
Você deposita (push)Você envia o arquivo para a landing do seu workspaceDisponível — é o caminho desta aula, e o único sem condição
Nós buscamos de um bucket seu — Amazon S3, Google Cloud Storage, Azure Blob, R2, MinIO (categoria Object storage)O produto lê o bucket no agendamentoAcesso limitado: o cadastro e o teste são aceitos, e a extração ao vivo é liberada conector a conector, depois de validada com uma credencial real da sua conta
Nós buscamos de uma pasta remota — SFTP, Google Drive, Dropbox, OneDrive (categoria Arquivos remotos)O produto lê a pasta no agendamentoAcesso limitado, mesma condição

Mudou em 2026-10-05: até a onda 15, puxar de bucket próprio era Planejado e a configuração era recusada. Hoje existe, e o que falta é a liberação com credencial real — ver a aula 2 para o que "Acesso limitado" autoriza. Na prática, o caminho que não depende de liberação nenhuma continua sendo o push: depositar na área de recebimento, que segue exatamente o mesmo fluxo de camadas. É o que se promete ao cliente com data.

Opções por formato (e só isso)

FormatoCampoValores
CSVDelimitadorVírgula (,) · Ponto e vírgula (;) · Tab · Pipe (|) — ; é o comum no Brasil
JSONFormatoLinhas (JSONL / ndjson) ou Array único
Parquet—Nada a configurar: o formato é auto-descritivo, traz esquema e tipos embutidos

Antes do envio, a tela pede o Nome da pasta na landing (ex.: vendas/) e mostra o caminho de destino, do tipo landing/<prefixo-do-workspace>/<pasta>. A área de upload avisa uma coisa que vale decorar: ao selecionar o arquivo, o conteúdo é lido no seu navegador só para descobrir as colunas — nessa etapa nenhum arquivo é enviado para a nuvem.

Os quatro passos da ingestão

Com a fonte salva, Processar agora abre o painel ao vivo com quatro passos, nesta ordem:

PassoO que acontece
validarConfere fonte e credenciais cifradas
landingEnvia o arquivo bruto para a área de recebimento (GCS)
bronzeCarrega verbatim na Bronze (BigQuery)
registrarAtualiza o catálogo e a última sincronização

Na Bronze, cada linha entra como texto, com os carimbos _ingest_at, _source e _row. Nenhuma linha é descartada no Bronze — a tipagem acontece depois, na Silver. Ver números como texto na Bronze é o comportamento esperado, não um defeito.

Saneamento automático: por que a carga não quebra por nome de coluna

Um cabeçalho com acento, espaço ou vazio ("preço", "nome do cliente") faria um load direto falhar com Invalid field name. Quando isso acontece, o produto saneia o arquivo e recarrega: minúsculas, sem acento, _ no lugar de espaço; coluna vazia vira coluna; nome que começa com número vira col_…. Ele também explode envelopes ({meta…, data:[…]}) e converte array ou pretty-JSON para NDJSON. A regra é conservadora: linha não-parseável é mantida como está — o produto nunca inventa dado.

No workspace Aurora Varejo

Maria precisa do catálogo de produtos na Bronze e só tem um produtos.csv exportado do sistema da loja, com ; como separador e a coluna preço acentuada. Ela abre o fluxo de arquivos, escolhe CSV, informa a pasta produtos/, seleciona Ponto e vírgula e envia. Processar agora: validar → landing → bronze → registrar. Na Bronze, a coluna chegou como preco — foi o saneamento, e a tela mostra o nome resultante. A contagem de linhas bate com o arquivo. Nenhuma senha foi digitada, nenhum cofre foi usado.

Erros comuns

SintomaCausa provávelO que fazer
Colunas todas numa sóDelimitador errado no CSVSelecione o delimitador correto (; é comum no Brasil)
JSON não carregaFormato marcado erradoAlterne entre Linhas (JSONL) e Array único
Invalid field nameCabeçalho com acento/espaçoO saneamento recarrega sozinho; confira os nomes resultantes
Números como texto na BronzeComportamento esperadoA tipagem acontece na Silver
"Enviei e a Bronze está vazia"A carga não foi disparadaUse Processar agora — push é uma carga que você dispara
Procuro o assistente de conexãoArquivo não passa por eleArquivo vai pelo fluxo de arquivos; não há host nem senha
"Quero que vocês leiam meu bucket S3"Estado do conector S3 na tabela do catálogoÉ Acesso limitado: o cadastro é aceito, e a extração ao vivo depende da liberação com credencial real. Enquanto ela não sai, deposite os arquivos na área de recebimento

O que é provado e o que não é

A leitura de formato e o saneamento de carga são provados por teste. A carga real em BigQuery permanece Preview e o custo faturado em BRL = NÃO MEDIDO: a carga Bronze consome load job (cobrável). O arquivo vai para a landing do seu workspace e nunca cruza com outro cliente — e não coloque segredo nem PII desnecessária no arquivo.

Faça você mesmo#

No workspace de treino Aurora Varejo, como dono, com dados sintéticos.

  1. Crie produtos.csv com ponto e vírgula como delimitador, um cabeçalho acentuado de propósito e três linhas:

    csv
    produto_id;nome;categoria;preço
    P-1001;Água 500ml;Bebidas;3,50
    P-1002;Detergente 500ml;Limpeza;6,90
    P-1003;Suco de uva 1L;Bebidas;12,90
  2. Em /conexoes, use Nova conexão, localize o cartão CSV (categoria Arquivos) e confirme que o rodapé diz "Começar pelo fluxo de arquivos (não pede senha de banco)" antes de clicar.

  3. No fluxo de arquivos, informe Nome da pasta na landing = produtos/ e transcreva o caminho de destino que a tela mostra.

  4. Selecione produtos.csv, escolha Delimitador = Ponto e vírgula e confirme na tela que, nesta etapa, nenhum arquivo foi enviado para a nuvem ainda — as colunas foram lidas no navegador.

  5. Salve a fonte e use Processar agora. Acompanhe os quatro passos e anote em qual deles o arquivo saiu da sua máquina (landing) e em qual as linhas viraram tabela (bronze).

  6. Confira o resultado: a coluna preço deve aparecer saneada (sem acento) e a contagem na Bronze deve ser 3 linhas — a contagem, não só o selo verde.

  7. Repita o passo 4 de propósito errado: delimitador Vírgula. Observe as colunas colapsando numa só na prévia e corrija.

Você terminou quando produtos.csv está na Bronze com 3 linhas, você tem o caminho da pasta de landing anotado, sabe nomear os quatro passos na ordem e viu o saneamento renomear a coluna acentuada.

Checagem rápida#

Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.

Documentação relacionada#

Capacidades ensinadas#

(conceitual — sem capacidade específica da matriz) — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".

Carregando seu progresso…