Pular para o conteúdo principal

Azure Blob e ADLS

validado

Use o connector Azure Blob/ADLS para arquivos no Azure Storage. No Databricks serverless, prefira Unity Catalog External Locations ou Volumes. Use SAS token em classic/job clusters quando a configuração de filesystem do runtime for permitida.

Quando usar

Databricks serverless

External Location ou Volume

Use acesso governado a storage quando Spark Connect/serverless bloquear configuração direta de filesystem SAS/Hadoop.

Classic/job cluster

Token SAS ou identidade de plataforma

Use este caminho quando o cluster puder receber a configuração do filesystem Azure e o contrato deve declarar acesso direto ao armazenamento.

Unity Catalog

Storage Credential e External Location

Prefira este modelo para equipes compartilhadas que precisam de acesso governado, auditoria e separação clara entre credenciais e contratos de ingestão.

Spark local

Configuração ABFS/SAS

Use para testes de desenvolvimento e compatibilidade quando bibliotecas Hadoop Azure e credenciais locais estão disponíveis.

Requisitos de runtime

RuntimeModelo de acessoUsar quando
Databricks serverlessUnity Catalog External Location ou VolumeA configuração direta de SAS/Hadoop é bloqueada ou gerenciada pela política da plataforma.
Classic clusterSAS token, configuração ABFS/SAS ou service principalVocê controla a configuração Spark/Hadoop em nível de cluster.
Spark localConfiguração ABFS/WASBS ou provedor de credenciais localDesenvolvimento e testes de compatibilidade fora do Databricks.

Exemplo básico

Quando o path já for governado pelo Unity Catalog, o contrato deve referenciar o path ABFS legível ou o caminho do Volume. A configuração da credencial pertence à plataforma.

source:
type: connector
connector: azure_blob
path: abfss://databricksdata@generalcafe.dfs.core.windows.net/blob_teste/csv/
format: csv
options:
header: true
read:
schema: "id STRING, event_ts TIMESTAMP, amount DOUBLE"
source_complete: true

target:
catalog: contractforge
schema: bronze_examples
table: b_blob_csv

layer: bronze
mode: overwrite

Padrão de cluster clássico de token SAS

Use este padrão quando um cluster classic/job puder configurar o acesso ao filesystem Azure e um token SAS estiver armazenado em um secret scope.

source:
type: connector
connector: azure_blob
account_url: https://generalcafe.blob.core.windows.net/
container: databricksdata
path: blob_teste/json/
format: json
auth:
sas_token: "{{ secret:contractforge-azure/blob_sas_token }}"
read:
schema: "id STRING, event_ts TIMESTAMP, payload STRUCT<kind:STRING,value:DOUBLE>"
recursiveFileLookup: true

target:
catalog: contractforge
schema: bronze_examples
table: b_blob_json

layer: bronze
mode: append

Permissões SAS

As leituras de pasta requerem permissão de lista. A leitura de arquivos individuais pode funcionar com SAS somente leitura, mas a descoberta de diretório, leituras recursivas e seleção de regex precisam de permissão de lista.

Criando um local externo

O SQL exato depende de como a credencial de armazenamento está configurada. A credencial de armazenamento é um objeto do Catálogo do Unity, não um escopo secreto do Databricks.

CREATE EXTERNAL LOCATION IF NOT EXISTS contractforge_blob_teste
URL 'abfss://databricksdata@generalcafe.dfs.core.windows.net/blob_teste'
WITH (STORAGE CREDENTIAL my_storage_credential);

GRANT READ FILES ON EXTERNAL LOCATION contractforge_blob_teste TO `data-engineers`;

Validação de credenciais

O Unity Catalog valida o local tentando ler e muitas vezes criando um marcador de validação. As credenciais somente leitura podem falhar na criação do local mesmo quando a leitura do arquivo funcionaria.

Exemplos multiformato

O conector delega a análise aos leitores Spark. Mantenha as opções e o esquema do leitor explícitos para formatos que tenham comportamento de inferência ambíguo.

CSV

source:
type: connector
connector: azure_blob
path: abfss://container@account.dfs.core.windows.net/blob_teste/csv/
format: csv
options:
header: true
read:
schema: "id STRING, amount DOUBLE"

target:
catalog: contractforge
schema: bronze_examples
table: b_blob_csv_extract

layer: bronze
mode: append

JSON

source:
type: connector
connector: azure_blob
path: abfss://container@account.dfs.core.windows.net/blob_teste/json/
format: json
read:
schema: "id STRING, payload STRUCT<a:STRING>"

target:
catalog: contractforge
schema: bronze_examples
table: b_blob_nested_json

layer: bronze
mode: append

Parquete

source:
type: connector
connector: azure_blob
path: abfss://container@account.dfs.core.windows.net/blob_teste/parquet/
format: parquet
read:
recursiveFileLookup: true

target:
catalog: contractforge
schema: bronze_examples
table: b_blob_parquet

layer: bronze
mode: append

XML

source:
type: connector
connector: azure_blob
path: abfss://container@account.dfs.core.windows.net/blob_teste/xml/
format: xml
options:
rowTag: item
read:
schema: "id STRING, amount DOUBLE"

target:
catalog: contractforge
schema: bronze_examples
table: b_blob_xml

layer: bronze
mode: append

Tratamento de limitações serverless

ContractForge deve falhar claramente quando um runtime serverless/Spark Connect bloqueia a configuração direta de credenciais do sistema de arquivos. Não dependa de um substituto oculto que funcione apenas em um espaço de trabalho.

SintomaCausa provávelAção
Falha no acesso ao armazenamento em nuvem durante a criação do local externoA credencial de armazenamento não pode validar o comportamento de leitura/gravação/lista.Conceda à entidade de serviço a função de armazenamento do Azure necessária e verifique o prefixo da URL.
SAS funciona no clássico, mas falha no serverlessServerless bloqueia a configuração de credenciais do Hadoop em runtime.Use localização externa, volume ou política de rede/armazenamento do espaço de trabalho.
A leitura do diretório falha, mas o arquivo único funcionaSAS não tem permissão de lista.Gere novamente o SAS com permissão de lista para leituras de pastas.
Erros de DNS/saídaA rede do espaço de trabalho não pode alcançar o ponto final de armazenamento.Corrija firewall, acesso à rede pública, endpoint privado ou política de rede.

Metadados operacionais

SELECT
run_id,
source_connector,
source_path,
source_auth_redacted_json,
source_read_redacted_json,
source_metrics_json
FROM main.ops.ctrl_ingestion_runs
WHERE source_connector = 'azure_blob'
ORDER BY started_at_utc DESC;

Problemas comuns

SintomaCausa provávelAção
Acesso negado em serverlessA configuração direta do SAS/Hadoop está bloqueada pelo runtime.Use localização externa, volume ou política de rede do espaço de trabalho.
A validação da credencial falhaA credencial de armazenamento não pode ler/gravar o caminho de validação.Conceda a função de Armazenamento do Azure necessária à entidade de serviço ou à identidade gerenciada.
O caminho não lista nenhum arquivoConfiguração incorreta de contêiner, prefixo ou pesquisa recursiva.Valide o caminho com uma listagem mínima e verifique o tamanho da pasta.
A análise de formato falhaEsquema/opções não correspondem ao formato do arquivo.Comece com uma pequena amostra e um esquema explícito.