Логотип Zephyrnet

Посібник з міграції з Databricks Delta Lake на Apache Iceberg

Дата:

Вступ

У швидко мінливому світі великих обробка даних і аналітики, потенційне керування великими наборами даних є основою для прийняття обґрунтованих рішень компаніями. Це допомагає їм отримувати корисну інформацію зі своїх даних. За останні кілька років з’явилося багато рішень, наприклад Databricks Delta Lake та Apache Iceberg. Ці платформи були розроблені для керування озером даних і обидві пропонують надійні функції та функції. Але організаціям необхідно вловити нюанси в плані архітектури, технічних і функціональних аспектів для міграції існуючої платформи. У цій статті буде розглянуто складний процес переходу від Databricks Delta Lake до Apache Iceberg.

Мета навчання

  • Розуміння особливостей Databricks і Apache Iceberg.
  • Навчіться порівнювати архітектурні компоненти Databricks і Apache Iceberg.
  • Зрозумійте найкращі методи перенесення архітектури delta lake на платформу з відкритим кодом, як-от Iceberg.
  • Щоб використовувати сторонні інструменти як альтернативу платформі delta lake.

Ця стаття була опублікована як частина Blogathon Data Science.

Зміст

Розуміння Databricks Delta Lake

Databricks Delta Lake — це, по суті, складний шар зберігання, побудований на вершині Apache Spark рамка. Він пропонує деякі сучасні функції даних, розроблені для безперебійного керування даними. Озеро Дельта має різні особливості в своїй основі:

  • Операції ACID: Delta Lake гарантує основоположні принципи атомарності, узгодженості, ізоляції та довговічності для всіх модифікацій даних користувача, забезпечуючи таким чином надійні та дійсні операції з даними.
  • Еволюція схеми: Гнучкість приходить переважно з Озеро Дельта, оскільки він бездоганно підтримує еволюцію схем, що дозволяє промисловості вносити зміни в схеми, не порушуючи існуючі конвеєри даних у виробництві.
  • Час подорожі: Подібно до подорожей у часі в науково-фантастичних фільмах, озеро Дельта надає можливість запитувати знімки даних у певні моменти часу. Таким чином, він надає користувачам можливість глибоко зануритися у комплексний історичний аналіз даних і можливості керування версіями.
  • Оптимізоване керування файлами: Delta Lake підтримує надійні методи організації та керування файлами даних і метаданими. Це призводить до оптимізації продуктивності запитів і зменшення витрат на зберігання.

Особливості Apache Iceberg

Apache Iceberg є конкурентоспроможною альтернативою для компаній, які шукають покращене рішення для керування озером даних. Icebergs перевершує деякі традиційні формати, такі як Parquet або ORC. Відмітних переваг багато:

  • Еволюція схеми: користувач може використовувати функцію еволюції схеми, вносячи зміни в схему без дорогого перезапису таблиці.
  • Ізоляція знімка: Iceberg підтримує ізоляцію знімків, таким чином гарантуючи послідовне читання та запис. Це полегшує одночасні зміни в таблицях без шкоди для цілісності даних.
  • Управління метаданими: Ця функція фактично відокремлює метадані від файлів даних. І зберігайте його у спеціальному репо, яке відрізняється від самих файлів даних. Це робиться для підвищення продуктивності та розширення можливостей ефективних операцій із метаданими.
  • Обрізка перегородок: використовуючи вдосконалені методи скорочення, він оптимізує продуктивність запитів, зменшуючи скановані дані під час виконання запиту.

Порівняльний аналіз архітектур

Давайте заглибимося в порівняльний аналіз архітектур:

Databricks Delta Lake Architecture

  • Шар зберігання: Delta Lake використовує переваги хмарного сховища, наприклад Amazon S3, Лазурова крапка як базовий рівень зберігання, який складається як з файлів даних, так і з журналів транзакцій.
  • Управління метаданими: метадані залишаються в журналі транзакцій. Таким чином, це забезпечує ефективні операції з метаданими та гарантує узгодженість даних.
  • Методи оптимізації: Delta Lake використовує тонни методи оптимізації. Він включає пропуск даних і Z-впорядкування для радикального підвищення продуктивності запитів і зменшення накладних витрат під час сканування даних.
Databricks Delta Lake Architecture

Архітектура айсберга Apache

  • Розділення метаданих: Є різниця з порівнянням с Збір даних з точки зору відокремлення метаданих від файлів даних. Айсберг зберігає метадані в окремому від файлів даних сховищі.
  • Підтримка транзакцій: Для забезпечення цілісності та надійності даних Iceberg може похвалитися надійним протоколом транзакцій. Цей протокол гарантує атомарні та узгоджені операції з таблицею.
  • Сумісність: Такі двигуни, як Apache Spark, Flink і Presto, легко сумісні з Iceberg. Розробники мають гнучкість у використанні Iceberg із цими фреймворками в режимі реального часу та пакетної обробки.
Архітектура айсберга Apache

Навігація в міграційному ландшафті: міркування та найкращі практики

Щоб здійснити міграцію з Databricks Delta Lake на Apache Iceberg, потрібна величезна кількість планувань і виконання. Слід врахувати деякі міркування, а саме:

  • Еволюція схеми: гарантія бездоганної сумісності між функцією еволюції схеми Delta Lake і Iceberg для збереження узгодженості під час змін схеми.
  • Переміщення даних: стратегії мають бути розроблені та впроваджені з урахуванням таких факторів, як обсяг даних, вимоги до простою та узгодженість даних.
  • Сумісність запитів: Слід перевірити сумісність запитів між Delta Lake і Iceberg. Це призведе до плавного переходу, а наявні функції запитів також залишаться незмінними після міграції.
  • продуктивність Тестування: ініціювати розширені тести продуктивності та регресії, щоб перевірити ефективність запитів. Слід також перевірити використання ресурсів між Айсбергом і Дельта-Лейком. Таким чином можна визначити потенційні області для оптимізації.

Для міграції розробники можуть використовувати деякі попередньо визначені скелети коду з документації Iceberg і databricks і реалізувати їх. Кроки описані нижче, а тут використовується мова Scala:

Крок 1: Створіть таблицю Delta Lake

На початковому кроці переконайтеся, що сегмент S3 порожній і перевірений, перш ніж продовжити створення даних у ньому. Після завершення процесу створення даних виконайте наступну перевірку:

Крок 1: Створіть таблицю Delta Lake
val data=spark.range(0,5)
data.write.format("delta").save("s3://testing_bucket/delta-table")

spark.read.format("delta").load("s3://testing_bucket/delta-table")
Створіть таблицю Delta Lake
Створіть таблицю Delta Lake

Додавання додаткового вакуумного коду

#adding optional code for vaccum later
val data=spark.range(5,10)
data.write.format("delta").mode("overwrite").save("s3://testing_bucket/delta-table")

Крок 2: CTAS і таблиця Reading Delta Lake

#reading delta lake table
spark.read.format("delta").load("s3://testing_bucket/delta-table")

Крок 3: читання Delta Lake і запис до таблиці Iceberg

val df_delta=spark.read.format("delta").load("s3://testing_bucket/delta-table")
df_delta.writeTo("test.db.iceberg_ctas").create()
spark.read.format("iceberg").load("test.db.iceberg.ctas)

Перевірте дані, скинуті в таблиці айсберга під S3

Читання Delta Lake і запис до таблиці Iceberg
Читання Delta Lake і запис до таблиці Iceberg

Порівняння сторонніх інструментів з точки зору простоти, продуктивності, сумісності та підтримки. Два інструменти, тобто. AWS Glue DataBrew і Snowflake мають власний набір функцій.

AWS Клей DataBrew

Процес міграції:

  • Простота у використанні: AWS Glue DataBrew — це продукт у хмарі AWS, який забезпечує зручний інтерфейс для очищення та трансформації даних.
  • інтеграцією: Glue DataBrew можна легко інтегрувати з іншими хмарними сервісами Amazon. Організації, які працюють з AWS, можуть скористатися цим сервісом.

Набір функцій:

  • Перетворення даних: Він поставляється з великим набором функцій для перетворення даних (EDA). Це може стати в нагоді під час міграції даних.
  • Автоматичне профілювання: Як і інші інструменти з відкритим кодом, DataBrew автоматично профілює дані. щоб виявити будь-яку невідповідність, а також рекомендувати завдання на перетворення.

Продуктивність і сумісність:

  • масштабованість: Для обробки більших наборів даних, які можуть виникнути під час процесу міграції, Glue DataBrew також забезпечує масштабованість для обробки цього.
  • Сумісність: забезпечує сумісність із більш широким набором форматів і джерел даних, що полегшує інтеграцію з різними рішеннями для зберігання.

Сніжинка

Процес міграції:

  • Легкість міграції: Для простоти Snowflake має служби міграції, які допомагають кінцевим користувачам переходити з існуючих сховищ даних на платформу Snowflake.
  • Всебічна документація: Snowflake пропонує велику кількість документації та достатньо ресурсів для початку процесу міграції.

Набір функцій:

  • Можливості сховища даних: він надає ширший набір функцій зберігання та підтримує напівструктуровані дані, обмін даними та керування ними.
  • Паралелізм: Архітектура забезпечує високий рівень паралелізму, що підходить для організацій із високими вимогами до обробки даних.

Продуктивність і сумісність:

  • продуктивність: Snowflake також є ефективним з точки зору масштабованості, що дозволяє кінцевим користувачам легко обробляти величезні обсяги даних.
  • Сумісність: Snowflake також надає різні з’єднувачі для різних джерел даних, таким чином гарантуючи перехресну сумісність із різноманітними екосистемами даних.
"

Висновок

Для оптимізації робочих процесів керування озером даних і сховищами та отримання бізнес-результатів перехід є життєво важливим для організацій. Галузі можуть використовувати як платформи з точки зору можливостей, так і архітектурних і технічних відмінностей, і вирішити, яку вибрати, щоб використовувати максимальний потенціал своїх наборів даних. Це також допомагає організаціям у довгостроковій перспективі. З огляду на динамічно та швидко мінливий ландшафт даних, інноваційні рішення можуть тримати організації на межі.

Ключові винесення

  • Apache Iceberg надає такі фантастичні функції, як ізоляція знімків, ефективне керування метаданими, скорочення розділів, що веде до покращення можливостей керування озером даних.
  • Перехід на Apache Iceberg передбачає обережне планування та виконання. Організації повинні враховувати такі фактори, як еволюція схеми, стратегії міграції даних і сумісність запитів.
  • Databricks Delta Lake використовує хмарне сховище як базовий рівень зберігання, зберігаючи файли даних і журнали транзакцій, тоді як Iceberg відокремлює метадані від файлів даних, підвищуючи продуктивність і масштабованість.
  • Організації також повинні враховувати фінансові наслідки, такі як витрати на зберігання, витрати на обчислення, ліцензійні збори та будь-які спеціальні ресурси, необхідні для міграції.

ЧАСТІ ЗАПИТАННЯ

Q1. Як виконується процес міграції з Databricks Delta Lake до Apache Iceberg?

A. Це передбачає експорт даних із Databricks Delta Lake, очищення їх, якщо необхідно, а потім імпортування в таблиці Apache Iceberg.

Q2. Чи існують якісь автоматичні інструменти, які допоможуть у міграції без ручного втручання?

В. Організації зазвичай використовують спеціальні сценарії python/Scala та інструменти ETL для створення цього робочого процесу.

Q3. З якими загальними проблемами стикаються організації під час процесу міграції?

A. Деякі виклики, які дуже ймовірно виникнуть, це: узгодженість даних, обробка відмінностей у еволюції схем та оптимізація продуктивності після міграції.

Q4. Яка різниця між Apache Iceberg та іншими форматами таблиць, такими як Parquet або ORC?

A. Apache Iceberg надає такі функції, як еволюція схеми, ізоляція знімків і ефективне керування метаданими, які відрізняються від Parquet і ORC.

Q5. Чи можемо ми використовувати Apache Iceberg із хмарними рішеннями для зберігання?

В. Однозначно, Apache Iceberg сумісний із широко використовуваними хмарними рішеннями для зберігання, такими як AWS S3, Azure Blob Storage та Google Cloud Storage.

Медіафайли, показані в цій статті, не належать Analytics Vidhya та використовуються на розсуд Автора.

spot_img

Остання розвідка

spot_img