O que é Auto Loader?
O Carregador Automático processa de modo incremental e eficiente os novos ficheiros de dados à medida que chegam ao armazenamento na cloud sem qualquer configuração adicional.
Como funciona o Auto Loader?
O Auto Loader processa de forma incremental e eficiente novos ficheiros de dados à medida que chegam ao armazenamento na nuvem. Ele fornece uma fonte de streaming estruturada chamada cloudFiles
. Dado um caminho de diretório de entrada no armazenamento de arquivos em nuvem, a fonte processa cloudFiles
automaticamente novos arquivos à medida que eles chegam, com a opção de também processar arquivos existentes nesse diretório. Auto Loader tem suporte para Python e SQL no Delta Live Tables.
Você pode usar o Auto Loader para processar bilhões de arquivos para migrar ou preencher um table. O Auto Loader é dimensionado para suportar a ingestão quase em tempo real de milhões de ficheiros por hora.
Fontes de carregador automático suportadas
Auto Loader pode carregar arquivos de dados das seguintes fontes:
Amazon S3 (
s3://
)Azure Data Lake Storage Gen2 (ADLS Gen2,
abfss://
)Armazenamento em nuvem do Google (GCS,
gs://
)Armazenamento de Blob do Azure (
wasbs://
)Nota
O driver de Blob de Armazenamento (WASB) herdado do Windows Azure foi preterido. A ABFS tem inúmeros benefícios em relação ao WASB. Consulte a documentação do Azure no ABFS. Para obter documentação para trabalhar com o driver WASB herdado, consulte Conectar-se ao Armazenamento de Blobs do Azure com WASB (legado).
ADLS Gen1 (
adl://
)Nota
O Azure anunciou a desativação pendente do Azure Data Lake Storage Gen1. O Databricks recomenda migrar todos os dados do Azure Data Lake Storage Gen1 para o Azure Data Lake Storage Gen2. Se você ainda não migrou, consulte Acessando o Azure Data Lake Storage Gen1 a partir do Azure Databricks.
Sistema de arquivos Databricks (DBFS,
dbfs:/
).
Auto Loader pode ingerir JSON
, CSV
, XML
, PARQUET
, AVRO
, ORC
TEXT
, e BINARYFILE
formatos de arquivo.
Como o Auto Loader rastreia o progresso da ingestão?
À medida que os arquivos são descobertos, seus metadados são mantidos em um armazenamento de chave-valor escalável (RocksDB) no local do ponto de verificação do pipeline do Auto Loader. Esse armazenamento de chave-valor garante que os dados sejam processados exatamente uma vez.
Em caso de falhas, o Auto Loader pode retomar a partir de where interrompido pelas informações armazenadas no local do ponto de verificação e continuar a fornecer garantias exatas uma vez ao gravar dados no Delta Lake. Você não precisa manter ou gerenciar nenhum estado sozinho para alcançar tolerância a falhas ou semântica exata uma vez.
Ingestão incremental usando Auto Loader com Delta Live Tables
A Databricks recomenda o Auto Loader no Delta Live Tables para ingestão incremental de dados. O Delta Live Tables estende a funcionalidade no Apache Spark Structured Streaming e permite que você escreva apenas algumas linhas de Python ou SQL declarativo para implantar um pipeline de dados com qualidade de produção com:
- Dimensionamento automático da infraestrutura de computação para economia de custos
- Verificações de qualidade de dados com expectativas
- Gestão automática de evolução schema
- Monitoramento por meio de métricas no log de eventos
Você não precisa fornecer um local de schema ou ponto de verificação porque o Delta Live Tables gerencia automaticamente essas configurações para seus pipelines. Consulte Carregar dados com o Delta Live Tables.
A Databricks também recomenda o Auto Loader sempre que você usar o Apache Spark Structured Streaming para ingerir dados do armazenamento de objetos na nuvem. As APIs estão disponíveis em Python e Scala.
Get começou com o Databricks Auto Loader
Consulte os seguintes artigos para get começou a configurar a ingestão incremental de dados usando o Auto Loader com Delta Live Tables:
Exemplos: Padrões comuns do carregador automático
Para obter exemplos de padrões comuns do Auto Loader, consulte Padrões comuns de carregamento de dados.
Configurar opções do Auto Loader
Você pode ajustar o Auto Loader com base no volume, variedade e velocidade dos dados.
- Configurar schema inferência e evolução no Auto Loader
- Configurar o Auto Loader para cargas de trabalho de produção
Para obter uma list completa das opções do Auto Loader, consulte:
Se encontrar um desempenho inesperado, consulte as Perguntas frequentes.
Configurar os modos de deteção de ficheiros do Auto Loader
Auto Loader suporta dois modos de deteção de arquivos. Veja:
- O que é o modo de listagem de diretórios do Auto Loader?
- O que é o modo de notificação de arquivo Auto Loader?
Benefícios do Auto Loader em relação ao uso do Structured Streaming diretamente nos arquivos
No Apache Spark, você pode ler arquivos incrementalmente usando spark.readStream.format(fileFormat).load(directory)
o . O Auto Loader oferece os seguintes benefícios em relação à origem do arquivo:
- Escalabilidade: Auto Loader pode descobrir bilhões de arquivos de forma eficiente. Os backfills podem ser realizados de forma assíncrona para evitar o desperdício de recursos de computação.
- Desempenho: O custo de descobrir arquivos com o Auto Loader é dimensionado com o número de arquivos que estão sendo ingeridos em vez do número de diretórios em que os arquivos podem chegar. Consulte O que é o modo de listagem de diretórios do Auto Loader?.
- Schema suporte de inferência e evolução: o Auto Loader pode detetar desvios de schema, notificá-lo quando schema mudanças acontecerem e resgatar dados que, de outra forma, teriam sido ignorados ou perdidos. Consulte Como funciona a inferência de schema do Auto Loader?.
- Custo: o Auto Loader usa APIs nativas na nuvem para get listas de arquivos que existem no armazenamento. Além disso, o modo de notificação de arquivos do Auto Loader pode ajudar a reduzir ainda mais seus custos na nuvem, evitando completamente a listagem de diretórios. O Auto Loader pode set automaticamente os serviços de notificação de arquivos no armazenamento para tornar a descoberta de arquivos muito mais barata.