Pular para o conteúdo principal

Arquivo HTTP

validado

Use http_file para arquivos limitados servidos por HTTP(S), especialmente quando o runtime do Spark não consegue ler caminhos HTTPS arbitrários diretamente. O conector baixa o arquivo no driver, materializa-o para o Spark e preserva os metadados de origem nas tabelas de controle.

Quando usar

Conjuntos de dados públicos

Download direto de arquivo

Use isto para arquivos CSV, JSON, JSONL, NDJSON ou de texto limitados expostos por HTTP(S).

Reserva de runtime

Spark não consegue ler HTTPS

O driver baixa o arquivo e, em seguida, entrega um arquivo local/preparado materializado para o Spark.

Arquivos pequenos e médios

Cargas controladas

Use limites explícitos de tempo limite, repetição e tamanho. Mova feeds recorrentes grandes para armazenamento de objetos.

Limite do conector

Sem análise de negócios

Use transform.shape ou contratos downstream para normalização de carga útil aninhada.

Requisitos de runtime

ExigênciaDetalhes
Saída do motoristaO driver Databricks ou o processo Spark local deve atingir o endpoint HTTP(S).
Limites de carga útilConfigure o tempo limite/nova tentativa e evite downloads ilimitados.
Suporte de formatoO Spark deve oferecer suporte ao formato de arquivo declarado após a materialização do arquivo.
AutenticaçãoUse cabeçalhos ou URLs protegidos por segredo para arquivos autenticados.

Exemplo básico

source:
type: connector
connector: http_file
path: https://example.org/data/orders.csv
format: csv
options:
header: true
inferSchema: false
read:
schema: "order_id STRING, order_ts TIMESTAMP, amount DOUBLE"
source_complete: true
limits:
timeout_seconds: 60
retry_attempts: 3
retry_backoff_seconds: 2
max_bytes: 52428800
max_records: 100000

target:
catalog: contractforge
schema: bronze_examples
table: b_http_orders

layer: bronze
mode: overwrite

Formatos suportados

Os formatos suportados são csv, json, jsonl, ndjson e text. Os aliases http_csv, http_json e http_text estão disponíveis quando você deseja que o nome do conector implique o formato do arquivo.

Orientação operacional

  • Use este conector para arquivos pequenos e médios, não para extração ilimitada de API.
  • Defina limites explícitos de bytes, tempo limite e novas tentativas porque o driver executa o download.
  • Para feeds recorrentes de alto volume, coloque os arquivos no armazenamento de objetos e use o Auto Loader ou um conector de arquivo.

Padrão de conjunto de dados público

Esse padrão é útil para extrações públicas completas que são mais fáceis de baixar como um arquivo limitado do que de acessar por meio de um leitor de sistema de arquivos Spark.

source:
type: connector
connector: http_file
path: https://example.org/public/covid.csv
format: csv
options:
header: true
inferSchema: false
read:
schema: "submission_date DATE, state STRING, tot_cases BIGINT"
source_complete: true
limits:
timeout_seconds: 60
retry_attempts: 3
retry_backoff_seconds: 2
max_bytes: 52428800
max_records: 100000

target:
catalog: contractforge
schema: bronze_health
table: b_public_covid

layer: bronze
mode: overwrite

Use apenas arquivos limitados

Para feeds recorrentes de alto volume, coloque os arquivos no armazenamento de objetos e use o Auto Loader ou um conector de arquivo.

Validação operacional

SELECT
run_id,
status,
source_connector,
source_format,
source_path,
rows_read,
rows_written,
source_metrics_json
FROM main.ops.ctrl_ingestion_runs
WHERE source_connector IN ('http_file', 'http_csv', 'http_json', 'http_text')
ORDER BY started_at_utc DESC;

Problemas comuns

SintomaCausa provávelAção
DNS ou falha de conexãoO driver não pode alcançar o host.Valide listas de permissões de saída, DNS, proxy e endpoint do runtime.
Tempo esgotadoO arquivo é muito grande ou o endpoint está lento.Aumente os limites com cautela ou mova o feed para o armazenamento de objetos.
Esquema inesperadoO formato do arquivo foi alterado ou a inferência de esquema foi usada.Declare o esquema explícito e as opções do leitor.
Pressão de memóriaA carga útil é muito grande para download do lado do driver.Use a ingestão de armazenamento de objetos ou o Auto Loader para feeds grandes.

Como este conector se enquadra no contrato

Mantenha as preocupações de extração em source, normalização estrutural em transform, validação em quality_rules e semântica de destino em mode. Essa separação mantém os exemplos portáteis e evita que correções de runtime específicas do conector se tornem uma lógica de negócios oculta.