Compartir a través de


Conectores estándar en Lakeflow Connect

Azure Databricks ofrece varios métodos para ingerir datos en almacenes de lago de datos con el respaldo por Delta Lake. En este artículo se enumeran las herramientas de ingesta admitidas y las instrucciones sobre qué método usar en función de criterios como el origen de datos y la latencia.

Métodos de ingesta

Puede ingerir datos en Databricks mediante los métodos siguientes:

  • Ingesta por lotes de un conjunto de filas de datos para su procesamiento poco frecuente
  • Ingestión de datos en streaming de filas de datos individuales o conjuntos de filas de datos a medida que llegan para su procesamiento en tiempo real

Los datos ingeridos se cargan en tablas Delta que luego se pueden usar en tus casos de uso de datos posteriores e inteligencia artificial. Debido a la arquitectura Lakehouse de Databricks, no es necesario duplicar los datos en los casos de uso y puede utilizar Unity Catalog para el control de acceso centralizado, la auditoría, el linaje y la exploración de datos en todos sus datos.

Ingesta por lotes

Con la ingesta por lotes, los datos se cargan como conjuntos (o lotes) de filas en Databricks a menudo según una programación (por ejemplo, cada día) o se desencadenan manualmente. Representa la parte de "extracción" de los casos de uso tradicionales de extracción, transformación y carga (ETL). Puede usar la ingesta por lotes para cargar datos desde:

  • Archivos locales como CSV
  • Almacenamiento de objetos en la nube, incluido Amazon S3, Azure Data Lake Storage y Google Cloud Storage
  • Aplicaciones SaaS como Salesforce y bases de datos como SQL Server

La ingesta por lotes admite una amplia gama de formatos de origen de archivo, incluidos CSV, TSV, JSON, XML, Avro, ORC, Parquet y archivos de texto.

Databricks admite las opciones tradicionales de ingesta por lotes e ingesta incremental de lotes. Mientras que la ingesta por lotes tradicional procesa todos los registros cada vez que se ejecuta, la ingesta incremental por lotes detecta automáticamente nuevos registros en el origen de datos y omite los registros que ya se han ingerido. Esto significa que es necesario que se procesen menos datos y, como resultado, los trabajos de ingesta se ejecutan más rápido y usan recursos de cómputo de manera más eficiente.

Ingesta tradicional de lotes (de una sola vez)

Puede cargar archivos de datos locales o descargar archivos desde una dirección URL pública mediante la interfaz de usuario de agregar datos. Consulte Carga de archivos.

Ingesta por lotes incremental

En esta sección se describen las herramientas de ingesta por lotes incrementales admitidas.

Tablas de streaming

El CREATE STREAMING TABLE comando SQL permite cargar datos de forma incremental en tablas de streaming desde el almacenamiento de objetos en la nube. Consulte CREATE STREAMING TABLE.

Ejemplo: Ingesta incremental por lotes mediante tablas de streaming

CREATE OR REFRESH STREAMING TABLE customers
AS SELECT * FROM STREAM read_files(
  "/databricks-datasets/retail-org/customers/",
  format => "csv"
)
Conector de almacenamiento de objetos en la nube

Auto Loader, el conector de almacenamiento de objetos en la nube integrado, le permite procesar de forma incremental y eficaz nuevos archivos de datos a medida que llegan a Amazon S3 (S3), Azure Data Lake Storage Gen 2 (ALDS2) o Google Cloud Storage (GCS). Consulte Cargador automático.

Ejemplo: Ingesta incremental por lotes mediante 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 administrados

Lakeflow Connect proporciona conectores totalmente administrados para ingerir desde bases de datos y aplicaciones SaaS. Los conectores administrados están disponibles a través de las siguientes opciones:

  • Interfaz de usuario de Databricks
  • CLI de Databricks
  • API de Databricks
  • SDK de Databricks
  • Conjuntos de recursos de Databricks

Consulte Conectores administrados en Lakeflow Connect.

Ingesta en streaming

Con la transmisión continua, se cargan de forma constante filas de datos o lotes de filas de datos conforme se generan, permitiendo su consulta casi en tiempo real a medida que llegan. Puede usar la ingesta de streaming para cargar datos de streaming desde orígenes como Apache Kafka, Amazon Kinesis, Google Pub/Sub y Apache Pulsar.

Databricks también admite la ingesta de streaming mediante conectores integrados. Estos conectores permiten procesar datos nuevos de forma incremental y eficaz a medida que llegan desde orígenes de streaming. Consulte Configuración de orígenes de datos de streaming.

Ejemplo: Ingesta de streaming desde Kafka

spark.readStream
    .format("kafka")
    .option("kafka.bootstrap.servers", "<server:ip>")
    .option("subscribe", "topic1")
    .option("startingOffsets", "latest")
    .load()

Ingesta por lotes y streaming con canalizaciones declarativas de Lakeflow

Databricks recomienda usar canalizaciones declarativas de Lakeflow para crear canalizaciones de procesamiento de datos confiables y escalables. Lakeflow Declarative Pipelines admite la ingesta por lotes y streaming, y puede ingerir datos de cualquier origen de datos compatible con Auto Loader.

Ejemplo: Ingesta incremental por lotes mediante canalizaciones declarativas de Lakeflow

@dlt.table
def customers():
  return (
    spark.readStream.format("cloudFiles")
      .option("cloudFiles.format", "csv")
      .load("/databricks-datasets/retail-org/customers/")
  )

Ejemplo: Ingesta de streaming desde Kafka mediante canalizaciones declarativas de Lakeflow

@dlt.table
def kafka_raw():
  return (
    spark.readStream
      .format("kafka")
      .option("kafka.bootstrap.servers", "<server:ip>")
      .option("subscribe", "topic1")
      .option("startingOffsets", "latest")
      .load()
  )

Programaciones de ingesta

Se puede ingerir datos como una operación única, con una programación periódica o de manera continua.

  • Para casos de uso de streaming casi en tiempo real, use el modo continuo.
  • Para casos de uso de ingesta por lotes, ingiera una vez o establezca una programación periódica.

Consulte Desencadenado frente al modo de canalización continua.

Asociados de ingesta

Muchas herramientas de terceros admiten la ingesta por lotes o streaming en Databricks. Databricks valida varias integraciones de terceros, aunque los pasos para configurar el acceso a los sistemas de origen e ingerir datos varían según la herramienta. En Asociados de ingesta encontrará una lista de herramientas validadas. Algunos asociados tecnológicos también se incluyen en Databricks Partner Connect, que proporciona una interfaz de usuario que simplifica la conexión de herramientas de terceros a los datos de LakeHouse.

Ingesta de bricolaje

Databricks proporciona una plataforma informática general. Como resultado, puede crear sus propios conectores de ingesta mediante cualquier lenguaje de programación compatible con Databricks, como Python o Java. También puede importar y aprovechar bibliotecas populares de conectores de código abierto, como la herramienta de carga de datos, Airbyte y Debezium.

Alternativas de ingesta

Databricks recomienda la ingesta para la mayoría de los casos de uso, ya que se escala para dar cabida a grandes volúmenes de datos, consultas de baja latencia y límites de API de terceros. La ingesta copia los datos de los sistemas de origen en Azure Databricks, lo que da como resultado datos duplicados que podrían quedar obsoletos a lo largo del tiempo. Si no desea copiar datos, puede usar las siguientes herramientas:

  • Lakehouse Federation permite consultar orígenes de datos externos sin mover los datos.
  • Delta Sharing permite compartir datos de forma segura entre plataformas, nubes y regiones.

Sin embargo, si no desea copiar datos, use Lakehouse Federation o Delta Sharing.

Cuándo usar delta sharing

Elija Delta Sharing para los escenarios siguientes:

  • Limitación de la duplicación de datos
  • Consulta de los datos más recientes posibles

Cuándo usar Federation Lakehouse

Elija la Federación de Lakehouse para los escenarios siguientes:

  • Creación de informes ad hoc o trabajo de prueba de concepto en canalizaciones de ETL

Consideraciones al elegir un método de ingesta

Consideración Orientación
Origen de datos Si existen conectores nativos de Lakeflow Connect para el origen de datos, esta será la manera más sencilla de ingerir datos. En el caso de los orígenes de datos no admitidos por Lakeflow Connect, extraiga los datos del origen y, a continuación, use Auto Loader para ingerir los datos en Databricks. Para los archivos locales, use la interfaz de usuario de Databricks para cargar los datos.
Latencia Si desea analizar datos casi en tiempo real, use streaming para aprovechar el procesamiento incremental. Con el streaming, los datos están disponibles para realizar consultas tan pronto como llegue cada registro. De lo contrario, use la ingesta por lotes.
Movimiento de datos Si no puede copiar datos de los sistemas de origen a Databricks, utilice Lakehouse Federation o Delta Sharing (facilidades para compartir datos).

Migración de datos a Delta Lake

Para obtener información sobre cómo migrar datos existentes a Delta Lake, consulte Migración de datos a Delta Lake.

COPY INTO (heredado)

El CREATE STREAMING TABLE comando SQL es la alternativa recomendada al comando SQL heredado COPY INTO para la ingesta incremental desde el almacenamiento de objetos en la nube. Consulte COPY INTO. Para una experiencia de ingesta de archivos más escalable y sólida, Databricks recomienda que los usuarios de SQL aprovechen las tablas de streaming en lugar de COPY INTO.