O que é o Auto Loader?
O Auto Loader processa de forma progressiva e eficiente novos arquivos de dados à medida que chegam ao armazenamento em nuvem sem qualquer configuração adicional.
Como funciona o Auto Loader?
O Auto Loader processa de forma incremental e eficiente novos arquivos de dados à medida que eles chegam ao armazenamento em nuvem. O Auto Loader pode carregar arquivos de dados do AWS S3 (s3://
), Azure Data Lake Storage Gen2 (ADLS Gen2, abfss://
), Google Cloud Storage (GCS, gs://
), Azure Blob Storage (wasbs://
), ADLS Gen1 (adl://
) e Databricks File System (DBFS, dbfs:/
). O Auto Loader pode ingerir os formatos de arquivo JSON
, CSV
, XML
, PARQUET
, AVRO
, ORC
, TEXT
e BINARYFILE
.
Observação
O antigo driver do Windows Azure Storage Blob (WASB) está obsoleto. O ABFS tem inúmeros benefícios em relação ao WASB. Consulte Documentação do Azure no ABFS. Para ver a documentação sobre como trabalhar com o driver WASB legado, consulte Conectar ao Azure Blob Storage com WASB (legado).
O Azure anunciou a retirada pendente do Azure Data Lake Storage Gen1. A Databricks recomenda que sejam migrados todos os dados do Azure Data Lake Storage Gen1 para o Azure Data Lake Storage Gen2. Se você ainda não migrou, consulte Acessar o Azure Data Lake Storage Gen1 no Databricks.
O Auto Loader fornece uma fonte de transmissão estruturada chamada cloudFiles
. Dado um caminho de diretório de entrada no armazenamento de arquivo na nuvem, a origem do cloudFiles
processa automaticamente novos arquivos à medida que eles chegam, com a opção de também processar arquivos existentes nesse diretório. O Auto Loader é compatível com Python e SQL em Delta Live Tables.
Você pode usar o Auto Loader para processar bilhões de arquivos para migrar ou preencher uma tabela. O Auto Loader é dimensionado para ser compatível com a ingestão quase em tempo real de milhões de arquivos por hora.
Como o Auto Loader o progresso da ingestão?
Conforme 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 todos de uma vez.
Em caso de falhas, o Auto Loader pode retomar de onde parou por meio de informações armazenadas no local do ponto de verificação e continuar a fornecer garantias únicas ao gravar dados no Delta Lake. Você não precisa manter ou gerenciar nenhum estado sozinho para obter tolerância a falhas ou semântica de única.
Ingestão incremental usando o Auto Loader com Delta Live Tables
A Databricks recomenda o Auto Loader em Delta Live Tables para ingestão incremental de dados. Delta Live Tables estende a funcionalidade do Apache Spark transmissão estruturada e permite que você escreva apenas algumas linhas de Python ou SQL declarativo para implantar um pipeline de dados de qualidade de produção com:
autoscale compute infraestrutura para economia de custos
Verificações de qualidade de dados com expectativas
Evolução automática do esquema de manuseio
Monitoramento via métricas nos logsde eventos
Você não precisa fornecer um esquema ou local de ponto de verificação porque o Delta Live Tables gerencia automaticamente essas configurações para seu pipeline. Consulte Carregar dados com Delta Live Tables.
A Databricks também recomenda o Auto Loader sempre que você usar o Apache Spark transmissão estruturada para ingerir dados do armazenamento de objetos clouds . APIs estão disponíveis em Python e Scala.
Comece com o Databricks Auto Loader
Consulte os artigos a seguir para começar a configurar a ingestão incremental de dados usando o Auto Loader com Delta Live Tables:
Exemplos: padrões comuns Auto Loader
Para obter exemplos de padrões comuns 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 de dados, variedade e velocidade.
Para obter uma lista completa das opções do Auto Loader, consulte:
Caso você encontre um desempenho inesperado, consulte as perguntas frequentes.
Configurar os modos de detecção de arquivos do Auto Loader
O Auto Loader suporta dois modos de detecção de arquivos. Veja:
Vantagens do Auto Loader em relação ao uso de Transmissão Estruturada diretamente nos arquivos
No Apache Spark, você pode ler arquivos de forma incremental usando spark.readStream.format(fileFormat).load(directory)
. O Auto Loader oferece os seguintes benefícios em relação à origem do arquivo:
Escalabilidade: o Auto Loader pode descobrir bilhões de arquivos com eficiência. Os preenchimentos podem ser executados de forma assíncrona para evitar o desperdício de recursos de computação.
Desempenho: O custo de descobrir arquivos com o Auto Loader aumenta com a quantidade de arquivos que estão sendo ingeridos, em vez do número de diretórios onde os arquivos podem ser armazenados. Consulte O que é o modo de listagem de diretório do Auto Loader?.
Inferência de esquema e suporte à evolução: o Auto Loader pode detectar desvios de esquema, notificá-lo quando ocorrerem alterações de esquema e resgatar dados que, de outra forma, seriam ignorados ou perdidos. Consulte Como funciona a inferência de esquema Auto Loader ?.
Custo: o Auto Loader usa APIs de nuvem nativas para obter 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 de nuvem, evitando completamente a listagem de diretórios. O Auto Loader pode configurar automaticamente serviços de notificação de arquivos no armazenamento para tornar a descoberta de arquivos muito mais barata.