Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Автозагрузчик поэтапно и эффективно обрабатывает новые файлы данных по мере их поступления в облачное хранилище без дополнительной настройки.
Как работает автозагрузчик?
Автозагрузчик поэтапно и эффективно обрабатывает новые файлы данных по мере их поступления в облачное хранилище. Он предоставляет источник потоковой передачи под названием cloudFiles, который является структурированным. При наличии пути к входному каталогу в облачном хранилище файлов источник cloudFiles автоматически обрабатывает новые файлы по мере их поступления, при этом также обрабатывает существующие файлы в этом каталоге. Автозагрузчик поддерживает как Python, так и SQL в конвейерах Lakeflow.
Автозагрузчик можно использовать для обработки миллиардов файлов, чтобы перенести данные или выполнить дозаполнение таблицы. Автозагрузчик масштабируется для поддержки приема миллионов файлов в час почти в реальном времени.
Поддерживаемые источники автозагрузчика
Автозагрузчик может загружать файлы данных из следующих источников:
Amazon S3 (
s3://)Azure Data Lake Storage (ADLS,
abfss://)Google Cloud Storage (GCS,
gs://)Тома каталога Unity (
/Volumes/)Хранилище BLOB-объектов Azure (
wasbs://)Note
Устаревший драйвер Blobs для Windows служба хранилища Azure (WASB) объявлен устаревшим. ABFS имеет множество преимуществ по сравнению с WASB. См. документацию Azure по ABFS. Документация по работе с устаревшим драйвером WASB см. в разделе Connect to Хранилище BLOB-объектов Azure with WASB (legacy).
Автозагрузчик может принимать форматы файлов JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT и BINARYFILE. Автозагрузчик также поддерживает чтение предварительно сжатых файлов в этих форматах. Поддерживаемые типы сжатия по формату см. в разделе "Параметры формата данных".
Доступно в бета-версии, вы можете загружать файлы как FILE ссылки. Например, вы можете непрерывно вводить документы или изображения из каталога в таблицу по мере поступления новых файлов. Смотрите файлы Ingest как тип FILE.
Как Auto Loader отслеживает прогресс загрузки данных?
По мере обнаружения файлов их метаданные сохраняются в масштабируемом хранилище пар "ключ — значение" (RocksDB) в расположении контрольной точки конвейера Автозагрузчика. Это хранилище пар "ключ — значение" гарантирует, что данные обрабатываются только один раз.
В случае сбоев Auto Loader может возобновить работу с того места, где остановился, используя информацию, хранящуюся в месте контрольной точки, и продолжать обеспечивать гарантию точной одноразовой записи данных в Delta Lake. Вам не нужно поддерживать или управлять каким-либо состоянием самостоятельно, чтобы обеспечить отказоустойчивость или точно один раз семантику.
Инкрементальная загрузка данных с использованием Auto Loader в конвейерах Lakeflow
Databricks рекомендует автозагрузчик в конвейерах Lakeflow для добавочного приема данных. Вам не нужно указывать расположение схемы данных или расположение контрольных точек, так как конвейеры Lakeflow автоматически управляют этими параметрами в ваших конвейерах. Рекомендуемую конфигурацию см. в статье "Настройка автозагрузчика для рабочих нагрузок".
Databricks также рекомендует Auto Loader при использовании структурированной потоковой передачи Apache Spark для приема данных из облачного хранилища объектов. API доступны в Python и Scala.
Как начать работу с автозагрузчиком Databricks
Ознакомьтесь со следующими статьями, чтобы приступить к настройке добавочного приема данных с помощью автозагрузчика с конвейерами Lakeflow:
- Руководство. Создание конвейера ETL с помощью конвейеров Lakeflow
- Настройка инкрементальной загрузки из Azure Data Lake Storage
Примеры. Распространенные шаблоны автозагрузчика
Примеры распространенных шаблонов автозагрузчика см. в разделе Общие шаблоны загрузки данных.
Настройка параметров автозагрузчика
Полный справочник по параметрам конфигурации, которые управляют тем, как автозагрузчик считывает и обрабатывает файлы, см. в разделе Автозагрузчик.
Настройка автозагрузчика
Автозагрузчик можно настроить на основе объема данных, разнообразия и скорости.
- Настройте вывод схемы и эволюцию в автозагрузчике: настройте, как автозагрузчик выводит и развивается схему данных с течением времени, включая обработку новых столбцов и изменений типов.
- Автоматическое расширение типов с помощью Auto Loader
- Настройка автозагрузчика для рабочих нагрузок: оптимизация автозагрузчика для надежности и производительности в рабочей среде, включая контрольные точки, обработку ошибок и управление хранением файлов.
- Хранение исходных данных: автоматически архивировать или удалять файлы после приема, чтобы сократить затраты на хранение и ускорить обнаружение файлов.
- Мониторинг и наблюдение за Auto Loader: отслеживайте ключевые метрики, запрашивайте состояние загрузки на уровне файлов, создавайте панели мониторинга для наблюдаемости и устраняйте распространенные проблемы.
Если вы столкнулись с непредвиденным поведением, ознакомьтесь с разделом FAQ об автозагрузчике.
Настройка режимов обнаружения файлов автозагрузчика
Автозагрузчик поддерживает два режима обнаружения файлов. По умолчанию автозагрузчик использует режим перечисления каталогов. Однако Databricks рекомендует режим уведомлений о файлах с помощью событий файлов для большинства рабочих нагрузок. See:
- Настройка потоков автозагрузчика в режиме перечисления каталогов
- Настройка потоков автозагрузчика в режиме уведомлений о файлах
Обработать неупорядоченные данные
Автозагрузчик не гарантирует порядок обнаружения или обработки файлов независимо от того, используется ли список каталогов или режим уведомлений о файлах. Используйте следующие стратегии для создания потоков обработки, способных справляться с поступлением файлов в неправильном порядке.
Конвейеры Lakeflow с AUTO CDC
Если вы используете конвейеры Lakeflow с Auto Loader и AUTO CDC, настройте хранение tombstone-данных так, чтобы удаленные записи сохранялись достаточно долго для обработки файлов, поступающих не по порядку. Присвойте свойству pipelines.cdc.tombstoneGCThresholdInSeconds таблицы целевой потоковой передачи значение, превышающее максимальную ожидаемую задержку между прибытием события и выполнением конвейера. Срок хранения по умолчанию — два дня. Дополнительные сведения см. в разделе create_auto_cdc_flow.
Структурированная потоковая передача без конвейеров Lakeflow
Если вы используете структурированную потоковую обработку Apache Spark напрямую с Auto Loader (без пайплайнов Lakeflow), рассмотрите следующие шаблоны для обработки данных, поступающих не по порядку:
- Предпочитайте логическое удаление в отличие от жесткого удаления: отслеживайте
deletedфлаг и метку времени вместо удаления строк, чтобы удаление данных, поступивших с опозданием, не конфликтовало с предыдущими записями. - Сравните метки времени перед применением обновлений: при вставке или обновлении сравните метку времени обновления новых данных с текущей меткой времени целевой строки, чтобы избежать перезаписи с устаревшими данными.
Преимущества использования автозагрузчика при использовании структурированной потоковой передачи непосредственно из файлов
В Apache Spark можно выполнять добавочное чтение файлов с помощью spark.readStream.format(fileFormat).load(directory). Автозагрузчик обеспечивает следующие преимущества по сравнению с источником файлов.
- Масштабируемость — Автозагрузчик может эффективно обнаруживать миллиарды файлов. Операции обратного заполнения могут выполняться асинхронно, чтобы вычислительные ресурсы не тратились впустую.
- Производительность — стоимость обнаружения файлов с помощью Автозагрузчика зависит от количества принимаемых файлов, а не от количества каталогов, в которых эти файлы могут находиться. См. статью "Настройка потоков автозагрузчика" в режиме перечисления каталогов.
- Поддержка вывода схемы и эволюции: автозагрузчик может обнаруживать смещения схем, уведомлять вас о том, когда происходят изменения схемы, и спасать данные, которые были бы в противном случае проигнорированы или потеряны. См. Как работает вывод схемы автозагрузчика?.
- Стоимость: автозагрузчик использует собственные облачные API для получения списков файлов, существующих в хранилище. Кроме того, режим уведомлений о файлах автозагрузчика может помочь сократить затраты на облако, избегая перечисления каталогов в целом. Автозагрузчик может автоматически настроить службы уведомлений о файлах в хранилище, чтобы сделать обнаружение файлов гораздо дешевле.