Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлен обзор вариантов переноса конвейеров извлечения, преобразования, загрузки (ETL), работающих в других системах данных в Azure Databricks. Если вы переносите свой существующий код Apache Spark, см. Адаптацию существующего кода Apache Spark для Azure Databricks.
Общую информацию о переходе из корпоративного хранилища данных в lakehouse см. в разделе "Миграция вашего хранилища данных в Databricks Lakehouse". Сведения о переходе из Parquet в Delta Lake см. в разделе «Миграция озера данных из Parquet в Delta Lake».
Можно ли запускать конвейеры Hive в Azure Databricks?
Большинство рабочих нагрузок Hive могут выполняться в Azure Databricks с минимальным рефакторингом. Версия SQL Spark, поддерживаемая Databricks Runtime, позволяет создавать множество конструкций HiveQL. См. статью о совместимости Apache Hive. Azure Databricks включает хранилище метаданных Hive по умолчанию. Большинство миграций Hive должны учитывать несколько важных проблем:
- Hive SerDe необходимо обновить для использования собственных кодеков файлов Azure Databricks. (Измените DDL с
STORED ASнаUSINGдля использования Azure Databricks SerDe.) - Определяемые пользователем функции Hive должны быть установлены в кластерах как библиотеки или отрефакторированы в нативный Spark. Так как определяемые пользователем функции Hive уже находятся в JVM, они могут обеспечивать достаточную производительность для многих рабочих нагрузок. См. раздел Вопросы производительности.
- Структура каталогов для таблиц должна быть изменена, так как Azure Databricks использует секции по-разному, чем Hive. См. раздел Когда секционировать таблицы в Azure Databricks.
Если вы решили обновить таблицы на Delta Lake во время первоначального этапа миграции, то некоторые инструкции DDL и DML не поддерживаются. Например:
ROWFORMATSERDEOUTPUTFORMATINPUTFORMATCOMPRESSIONSTORED ASANALYZE TABLE PARTITIONALTER TABLE [ADD|DROP] PARTITIONALTER TABLE RECOVER PARTITIONSALTER TABLE SET SERDEPROPERTIESCREATE TABLE LIKEINSERT OVERWRITE DIRECTORYLOAD DATA- Указание целевых секций с помощью
PARTITION (part_spec)вTRUNCATE TABLE
Можно ли запускать конвейеры ETL SQL в Azure Databricks?
Перенос рабочих нагрузок SQL из других систем в Azure Databricks обычно требует очень мало рефакторинга в зависимости от степени использования определенных системных протоколов в исходном коде. Azure Databricks использует Delta Lake в качестве формата таблицы по умолчанию, поэтому таблицы создаются с помощью гарантии транзакций по умолчанию.
Spark SQL в основном соответствует ANSI, но некоторые различия в поведении могут существовать. Узнайте , как платформа аналитики данных Databricks отличается от корпоративного хранилища данных?.
Поскольку системы данных, как правило, по-разному настраивают доступ к внешним данным, значительная часть работы по рефакторингу ETL-конвейеров на основе SQL может заключаться в настройке доступа к этим источникам данных, а затем в обновлении логики для использования этих новых подключений. Azure Databricks предоставляет возможности подключения ко многим источникам данных для приема.
Можно ли запустить конвейеры dbt ETL в Azure Databricks?
Azure Databricks обеспечивает встроенную интеграцию с dbt, что позволяет использовать существующие скрипты dbt с очень небольшим рефакторингом.
Декларативные конвейеры Lakeflow Spark предоставляют оптимизированный синтаксис декларативного SQL, нативного для Databricks, для создания, тестирования и развертывания конвейеров. Хотя вы можете использовать dbt в Azure Databricks, легкий рефакторинг кода с использованием Lakeflow Spark Declarative Pipelines может снизить общую стоимость эксплуатации ваших конвейеров в Azure Databricks. См. Lakeflow Spark декларативные конвейеры.
Можно ли перенести бессерверные облачные функции в Azure Databricks?
Расширяемость и гибкость пользовательских бессерверных облачных функций затрудняет предоставление общей рекомендации, но одним из наиболее распространенных вариантов использования этих функций является ожидание отображения файлов или данных в расположении или очереди сообщений, а затем выполнение некоторых действий в результате. Хотя Azure Databricks не поддерживает сложную логику для активации рабочих нагрузок в зависимости от облачных условий, вы можете использовать структурированную потоковую передачу в сочетании с заданиями для постепенной обработки данных.
Используйте автозагрузчик для оптимизированного приема данных из облачного хранилища объектов. Структурированная потоковая передача может обрабатывать данные из источников потоковой передачи практически в реальном времени.
Можно ли выполнять синтаксис из других систем данных в Azure Databricks?
Конвейеры ETL, определенные на языках, отличных от SQL, Apache Spark или Hive, могут быть сильно переработаны перед запуском в Azure Databricks. Azure Databricks имеет опыт, помогающей клиентам перенести данные из большинства используемых сегодня систем и, возможно, имеет ресурсы, которые могут ускорить ваши усилия по миграции.