Поделиться через


Стандартные соединители в Lakeflow Connect

Azure Databricks предлагает различные методы для загрузки данных в lakehouse, поддерживаемый Delta Lake. В этой статье перечислены поддерживаемые средства приема и рекомендации по использованию метода на основе таких критериев, как источник данных и задержка.

методы приема веществ

Вы можете загружать данные в Databricks с помощью следующих методов:

  • пакетная загрузка набора строк данных для нечастой обработки
  • потоковое поступление данных отдельных строк данных или наборов строк данных по мере их поступления для обработки в реальном времени

Полученные данные загружаются в таблицы Delta , которые затем можно использовать в последующих данных и сценариях применения ИИ. Из-за архитектуры Databricks Lakehouse вам не нужно дублировать данные в разных вариантах использования, и вы можете использовать каталог Unity для централизованного управления доступом, аудита, происхождения и обнаружения данных во всех ваших данных.

прием пакетных данных

При пакетной загрузке данные загружаются в виде наборов строк (или пакетов) в Databricks, часто по расписанию (например, каждый день) или запускаемы вручную. Это является этапом "извлечение" в традиционных сценариях использования извлечения, преобразования и загрузки (ETL). Вы можете использовать пакетную приемку для загрузки данных из:

  • Локальные файлы, такие как CSV
  • Облачное хранилище объектов, включая Amazon S3, Azure Data Lake Storage и Google Cloud Storage
  • Приложения SaaS, такие как Salesforce и базы данных, такие как SQL Server

Пакетная приемка поддерживает широкий спектр форматов источников файлов, включая CSV, TSV, JSON, XML, Avro, ORC, Parquet и текстовые файлы.

Databricks поддерживает как традиционные варианты приема пакетов, так и добавочного приема пакетов. Традиционная пакетная загрузка обрабатывает все записи при каждом запуске, тогда как инкрементная пакетная загрузка автоматически обнаруживает новые записи в источнике данных и игнорирует записи, которые уже были загружены. Это означает, что меньше данных необходимо обрабатывать и, как следствие, задания на загрузку данных выполняются быстрее и используют вычислительные ресурсы эффективнее.

традиционная (однократная) пакетная загрузка

Вы можете отправлять локальные файлы данных или скачивать файлы из общедоступного URL-адреса с помощью пользовательского интерфейса добавления данных. См. загрузку файлов.

инкрементное пакетное поглощение

В этом разделе описаны поддерживаемые инструменты инкрементного приема пакетов.

Таблицы потоков

Команда SQL CREATE STREAMING TABLE позволяет постепенно загружать данные в таблицы потоковой передачи из облачного хранилища объектов. См. CREATE STREAMING TABLE.

Пример: инкрементная пакетная загрузка с использованием потоковых таблиц

CREATE OR REFRESH STREAMING TABLE customers
AS SELECT * FROM STREAM read_files(
  "/databricks-datasets/retail-org/customers/",
  format => "csv"
)
Коннектор облачного объектного хранилища Cloud

Автозагрузчик, встроенный соединитель облачного хранилища объектов, позволяет постепенно и эффективно обрабатывать новые файлы данных по мере их поступления в Amazon S3 (S3), Azure Data Lake Storage 2-го поколения (ALDS2) или Google Cloud Storage (GCS). См. автозагрузчика.

Пример: Инкрементная пакетная загрузка с использованием 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/")
полностью управляемых коннекторов

Lakeflow Connect предоставляет полностью управляемые соединители для интеграции из SaaS-приложений и баз данных. Управляемые соединители доступны с помощью следующих компонентов:

  • Пользовательский интерфейс Databricks
  • Databricks CLI (интерфейс командной строки)
  • API системы Databricks
  • Пакеты SDK Databricks
  • Пакеты активов Databricks

См. Managed connectors in Lakeflow Connect.

ввод потоковых данных

При потоковой загрузке вы постоянно загружаете строки данных или пакеты строк данных по мере их создания, чтобы запрашивать их при поступлении практически в режиме реального времени. Вы можете использовать потоковую загрузку для загрузки потоковых данных из источников, таких как Apache Kafka, Amazon Kinesis, Google Pub/Sub и Apache Pulsar.

Databricks также поддерживает прием потоковой передачи с помощью встроенных соединителей. Эти соединители позволяют постепенно и эффективно обрабатывать новые данные по мере поступления из источников потоковой передачи. См. раздел "Настройка источников данных потоковой передачи".

Пример: потоковое внедрение из Kafka

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

пакетная и потоковая загрузка с помощью DLT

Databricks рекомендует использовать DLT для создания надежных и масштабируемых конвейеров обработки данных. DLT поддерживает прием пакетов и потоковой передачи, а также вы можете получать данные из любого источника данных, поддерживаемого автозагрузчиком.

Пример: Пошаговая интеграция партии данных с помощью DLT

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

Пример: Потоковая загрузка из Kafka с помощью DLT

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

Расписания приема

Вы можете получать данные как в рамках одноразовой операции, по повторяющемуся графику, или на постоянной основе.

  • В случае использования потоковой передачи практически в режиме реального времени используйте непрерывный режим.
  • Для вариантов использования пакетного приема данных, выполните однократный прием или задайте повторяющееся расписание.

См. раздел "Триггерный и непрерывный режимы конвейера".

партнеры по интеграции данных

Многие сторонние средства поддерживают пакетную или потоковую загрузку в Databricks. Databricks проверяет различные сторонние интеграции, хотя шаги по настройке доступа к исходным системам и приему данных зависят от средства. В партнеров по сбору данных см. список проверенных средств. Некоторые технологические партнеры также представлены в Databricks Partner Connect, который предоставляет пользовательский интерфейс, упрощающий подключение сторонних средств к данным Lakehouse.

внедрение DIY

Databricks предоставляет общую платформу вычислений. В конечном итоге вы можете создать свои коннекторы для обработки данных с помощью любого языка программирования, поддерживаемого Databricks, например Python или Java. Вы также можете импортировать и использовать популярные библиотеки соединителей с открытым исходным кодом, такие как средство загрузки данных, Airbyte и Debezium.

альтернативные варианты приема

Databricks рекомендует использовать импорт данных для большинства сценариев использования, так как это решение масштабируется для обработки больших объемов данных, обеспечения низкой задержки при обработке запросов и соблюдения ограничений сторонних API. Импорт данных копирует данные из ваших исходных систем в Azure Databricks, что приводит к дублированию данных, которые могут со временем стать устаревшими. Если вы не хотите копировать данные, можно использовать следующие средства:

  • Федерация Lakehouse позволяет выполнять запросы к внешним данным без перемещения ваших данных.
  • Delta Sharing позволяет безопасно совместно использовать данные между платформами, облаками и регионами.

Однако если вы не хотите копировать данные, используйте Lakehouse Federation или Delta Sharing.

Когда использовать Delta Sharing

Выберите Delta Sharing для следующих сценариев:

  • Ограничение дублирования данных
  • Запрос самых свежих возможных данных

Когда использовать Federation Lakehouse

Выберите федерацию Лейкхаус для следующих сценариев.

  • Неформализованные отчеты или проверка концепта для конвейеров ETL

Рекомендации при выборе метода приема

Рассмотрение Руководство
Источник данных Если собственные соединители Lakeflow Connect существуют для источника данных, это будет самый простой способ приема данных. Для источников данных, не поддерживаемых Lakeflow Connect, извлеките данные из источника и используйте автозагрузчик для приема данных в Databricks. Для локальных файлов используйте пользовательский интерфейс Databricks для отправки данных.
Задержка Если вы хотите анализировать данные практически в реальном времени, используйте потоковую передачу для использования добавочной обработки. При потоковой передаче данные доступны для запроса сразу после поступления каждой записи. В противном случае используйте пакетную загрузку.
Перемещение данных Если вы не можете скопировать данные из исходных систем в Databricks, используйте Lakehouse Federation или Delta Sharing.

Перенос данных в Delta Lake

Сведения о переносе существующих данных в Delta Lake см. в статье "Миграция данных в Delta Lake".

COPY INTO (устаревшая версия)

Команда CREATE STREAMING TABLE SQL является рекомендуемой альтернативой устаревшей команде COPY INTO SQL для добавочного приема из облачного хранилища объектов. См. COPY INTO. Для более масштабируемого и надежного приема файлов Databricks рекомендует пользователям SQL использовать потоковые таблицы вместо COPY INTO.