Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Databricks oferece vários métodos para integrar dados em uma arquitetura de lakehouse suportada pelo Delta Lake. Este artigo lista as ferramentas de ingestão com suporte e as diretrizes sobre qual método usar com base em critérios como fonte de dados e latência.
Métodos de ingestão
Você pode ingerir dados no Databricks usando os seguintes métodos:
- Ingestão em lote de um conjunto de linhas de dados para processamento pouco frequente
- Ingestão contínua de linhas de dados individuais ou conjuntos de linhas de dados à medida que chegam para processamento em tempo real
Os dados ingeridos são carregados em tabelas Delta, que podem ser utilizadas em seus dados subsequentes e casos de uso de IA. Devido à arquitetura lakehouse do Databricks, você não precisa duplicar seus dados para diferentes casos de uso e pode utilizar o Unity Catalog para controle de acesso centralizado, auditoria, linhagem e descoberta de dados.
Ingestão em lote
Com a ingestão em lote, você carrega dados como conjuntos (ou lotes) de linhas no Databricks geralmente com base em um agendamento (por exemplo, todos os dias) ou disparado manualmente. Isso representa a parte "extração" dos casos de uso de ETL (extração, transformação, carga) tradicionais. Você pode usar a ingestão em lote para carregar dados de:
- Arquivos locais como CSVs
- Armazenamento de objetos de nuvem, incluindo Amazon S3, Azure Data Lake Storage e Google Cloud Storage
- Aplicativos SaaS como o Salesforce e bancos de dados como o SQL Server
A ingestão em lote dá suporte a uma ampla gama de formatos de origem de arquivo, incluindo CSV, TSV, JSON, XML, Avro, ORC, Parquet e arquivos de texto.
O Databricks dá suporte à ingestão em lote tradicional e às opções incrementais de ingestão em lotes. Enquanto a ingestão em lote tradicional processa todos os registros sempre que é executada, a ingestão incremental em lotes detecta automaticamente novos registros na fonte de dados e ignora os registros que já foram ingeridos. Isso significa que menos dados precisam ser processados e, como resultado, os trabalhos de ingestão são executados mais rapidamente e usam recursos de computação com mais eficiência.
Ingestão em lote tradicional (única)
Você pode carregar arquivos de dados locais ou baixar arquivos de uma URL pública usando a interface do usuário de adicionar dados. Consulte Carregar arquivos.
Ingestão incremental em lote
Esta seção descreve as ferramentas de ingestão em lote incremental com suporte.
Tabelas de streaming
O CREATE STREAMING TABLE
comando SQL permite carregar dados incrementalmente em tabelas de streaming do armazenamento de objetos de nuvem. Consulte CREATE STREAMING TABLE.
Exemplo: ingestão incremental em lotes usando tabelas de streaming
CREATE OR REFRESH STREAMING TABLE customers
AS SELECT * FROM STREAM read_files(
"/databricks-datasets/retail-org/customers/",
format => "csv"
)
Conector de armazenamento de objetos de nuvem
O Carregador Automático, o conector interno de armazenamento de objetos de nuvem, permite processar de forma incremental e eficiente novos arquivos de dados à medida que eles chegam no Amazon S3 (S3), no Azure Data Lake Storage Gen 2 (ALDS2) ou no Google Cloud Storage (GCS). Consulte o Carregador Automático.
Exemplo: ingestão incremental em lotes usando o Auto Loader
df = spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv")
.option("rescuedDataColumn", "_rescued_data")
.schema("/databricks-datasets/retail-org/customers/schema")
.load("/databricks-datasets/retail-org/customers/")
Conectores totalmente gerenciados
O Lakeflow Connect fornece conectores totalmente gerenciados para ingestão de aplicativos SaaS e bancos de dados. Conectores gerenciados estão disponíveis usando o seguinte:
- Interface do usuário do Databricks
- CLI do Databricks
- Databricks APIs
- Databricks SDKs
- Pacotes de ativos do Databricks
Consulte Conectores gerenciados no Lakeflow Connect.
Ingestão via streaming
Com a ingestão de streaming, você carrega continuamente linhas de dados ou lotes de linhas de dados conforme são geradas, para que você possa consultá-las conforme chegam em tempo quase real. Você pode usar a ingestão de streaming para carregar dados de streaming de fontes como Apache Kafka, Amazon Kinesis, Google Pub/Sub e Apache Pulsar.
O Databricks também dá suporte à ingestão de streaming usando conectores internos. Esses conectores permitem processar novos dados de forma incremental e eficiente à medida que chegam de fontes de streaming. Consulte Configurar fontes de dados de streaming.
Exemplo: Ingestão de dados em streaming do Kafka
spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "<server:ip>")
.option("subscribe", "topic1")
.option("startingOffsets", "latest")
.load()
Ingestão de dados em lote e em streaming com Pipelines Declarativos do Lakeflow
O Databricks recomenda usar o Lakeflow Declarative Pipelines para criar pipelines de processamento de dados confiáveis e escalonáveis. O Lakeflow Declarative Pipelines dá suporte à ingestão em lote e streaming e você pode ingerir dados de qualquer fonte de dados compatível com o Carregador Automático.
Exemplo: ingestão incremental em lote usando as Pipelines Declarativas do Lakeflow
@dlt.table
def customers():
return (
spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv")
.load("/databricks-datasets/retail-org/customers/")
)
Exemplo: Ingestão de streaming a partir do Kafka usando Pipelines Declarativos do Lakeflow
@dlt.table
def kafka_raw():
return (
spark.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "<server:ip>")
.option("subscribe", "topic1")
.option("startingOffsets", "latest")
.load()
)
Agendamentos de ingestão
Você pode ingerir dados por meio de uma operação única, periodicamente ou continuamente.
- Para casos de uso de streaming quase em tempo real, use o modo contínuo.
- Para casos de uso de ingestão em lote, realize a ingestão uma vez ou defina uma programação recorrente.
Confira Modo de pipeline disparado versus contínuo.
Parceiros de ingestão
Muitas ferramentas de terceiros dão suporte à ingestão em lote ou streaming no Databricks. O Databricks valida várias integrações de terceiros, embora as etapas para configurar o acesso aos sistemas de origem e ingerir dados variem de acordo com a ferramenta. Consulte os parceiros de ingestão para obter uma lista de ferramentas validadas. Alguns parceiros de tecnologia também são apresentados no Databricks Partner Connect, que fornece uma interface do usuário que simplifica a conexão de ferramentas de terceiros aos dados do Lakehouse.
Ingestão faça você mesmo
O Databricks fornece uma plataforma de computação geral. Como resultado, você pode criar seus próprios conectores de ingestão usando qualquer linguagem de programação compatível com o Databricks, como Python ou Java. Você também pode importar e aproveitar bibliotecas populares de conectores de software livre, como ferramenta de carregamento de dados, Airbyte e Debezium.
Alternativas de ingestão
O Databricks recomenda a ingestão para a maioria dos casos de uso porque ele é dimensionado para acomodar grandes volumes de dados, consultas de baixa latência e limites de API de terceiros. A ingestão copia dados de seus sistemas de origem para o Azure Databricks, resultando em dados duplicados que podem se tornar desatualizados ao longo do tempo. Se você não quiser copiar dados, poderá usar as seguintes ferramentas:
- Federação Lakehouse permite consultar fontes de dados externas sem precisar mover seus dados.
- O Compartilhamento Delta permite que você compartilhe dados com segurança entre plataformas, nuvens e regiões.
No entanto, se você não quiser copiar dados, use Lakehouse Federation ou Delta Sharing.
Quando usar o Compartilhamento Delta
Escolha o Compartilhamento Delta para os seguintes cenários:
- Limitando a duplicação de dados
- Consultando os dados mais recentes possíveis
Quando usar a Federação lakehouse
Escolha a Federação Lakehouse para os seguintes cenários:
- Relatórios ad hoc ou trabalho de prova de conceito em seus pipelines de ETL.
Considerações ao escolher um método de ingestão
Consideração | Orientação |
---|---|
Fonte de dados | Se houver conectores nativos do Lakeflow Connect para a fonte de dados, essa será a maneira mais simples de ingerir dados. Para fontes de dados sem suporte do Lakeflow Connect, extraia os dados da origem e use o Carregador Automático para ingerir os dados no Databricks. Para arquivos locais, use a interface do usuário do Databricks para carregar os dados. |
Latência | Se você quiser analisar dados quase em tempo real, use o streaming para aproveitar o processamento incremental. Com o streaming, os dados estão disponíveis para consulta assim que cada registro chega. Caso contrário, use a ingestão em lote. |
Movimentação de dados | Se você não conseguir copiar dados de seus sistemas de origem para o Databricks, use Lakehouse Federation ou Delta Sharing. |
Migrar dados para o Delta Lake
Para saber como migrar dados existentes para o Delta Lake, consulte Migrar dados para o Delta Lake.
COPY INTO (herdado)
O CREATE STREAMING TABLE
comando SQL é a alternativa recomendada ao comando SQL herdado COPY INTO
para ingestão incremental do armazenamento de objetos de nuvem. Consulte COPY INTO. Para uma experiência de ingestão de arquivos mais escalonável e robusta, o Databricks recomenda que os usuários do SQL aproveitem as tabelas de streaming em vez de COPY INTO
.