Logo Zephyrnet

Przewodnik po migracji z jeziora Databricks Delta do Apache Iceberg

Data:

Wprowadzenie

W szybko zmieniającym się świecie wielkich analiza danych i analityki, potencjalne zarządzanie rozległymi zbiorami danych stanowi dla firm podstawowy filar umożliwiający podejmowanie świadomych decyzji. Pomaga im wyciągać przydatne wnioski z danych. W ciągu ostatnich kilku lat pojawiło się wiele rozwiązań, takich jak Databricks Delta Lake i Apache Iceberg. Platformy te zostały opracowane do zarządzania jeziorami danych i obie oferują solidne funkcje. Jednak dla organizacji konieczne jest zrozumienie niuansów pod względem architektury, aspektów technicznych i funkcjonalnych związanych z migracją istniejącej platformy. W tym artykule omówiony zostanie złożony proces przejścia z usługi Databricks Delta Lake do platformy Apache Iceberg.

Cele kształcenia

  • Zrozumienie funkcji Databricks i Apache Iceberg.
  • Dowiedz się, jak porównywać komponenty architektoniczne między Databricks i Apache Iceberg.
  • Poznaj najlepsze praktyki migracji architektury jeziora delta na platformę open source, taką jak Iceberg.
  • Aby wykorzystać narzędzia innych firm jako alternatywę dla platformy Delta Lake.

Ten artykuł został opublikowany jako część Blogathon nauki o danych.

Spis treści

Zrozumienie jeziora Delta kostki danych

Databricks Delta Lake to w zasadzie wyrafinowana warstwa pamięci masowej zbudowana na wierzchu Apache Spark struktura. Oferuje kilka nowoczesnych funkcji danych opracowanych w celu płynnego zarządzania danymi. Delta Lake ma różne funkcje:

  • Transakcje ACID: Delta Lake gwarantuje podstawowe zasady atomowości, spójności, izolacji i trwałości w przypadku wszystkich modyfikacji danych użytkownika, zapewniając w ten sposób niezawodne i prawidłowe operacje na danych.
  • Ewolucja schematu: Elastyczność jest przede wszystkim dostępna Jezioro Delta, ponieważ płynnie wspiera ewolucję schematów, umożliwiając w ten sposób branżom wprowadzanie zmian schematów bez zakłócania istniejących potoków danych w produkcji.
  • Podróż w czasie: Podobnie jak podróże w czasie w filmach science-fiction, jezioro delta umożliwia sprawdzanie migawek danych w określonych momentach. W ten sposób zapewnia użytkownikom głębokie zanurzenie się w kompleksowej analizie historycznej danych i możliwościach wersjonowania.
  • Zoptymalizowane zarządzanie plikami: Delta Lake obsługuje zaawansowane techniki organizowania plików danych i metadanych oraz zarządzania nimi. Powoduje to zoptymalizowaną wydajność zapytań i zmniejszenie kosztów przechowywania.

Funkcje Apache Iceberg

Apache Iceberg stanowi konkurencyjną alternatywę dla firm poszukujących ulepszonych rozwiązań do zarządzania jeziorami danych. Icebergs bije na głowę niektóre tradycyjne formaty, takie jak Parquet czy ORC. Istnieje wiele charakterystycznych zalet:

  • Ewolucja schematu: Użytkownik może wykorzystać funkcję ewolucji schematu podczas wprowadzania zmian w schemacie bez kosztownego przepisywania tabeli.
  • Izolacja migawki: Iceberg zapewnia obsługę izolacji migawek, gwarantując w ten sposób spójne odczyty i zapisy. Ułatwia równoczesne modyfikacje w tabelach bez naruszania integralności danych.
  • Zarządzanie metadanymi: Ta funkcja zasadniczo oddziela metadane od plików danych. I przechowuj je w dedykowanym repozytorium, które różni się od samych plików danych. Robi to, aby zwiększyć wydajność i umożliwić wydajne operacje na metadanych.
  • Przycinanie partycji: Wykorzystując zaawansowane techniki czyszczenia, optymalizuje wydajność zapytań, redukując dane skanowane podczas wykonywania zapytania.

Analiza porównawcza architektur

Zagłębmy się w analizę porównawczą architektur:

Architektura Delta Lake Databricks

  • Warstwa przechowywania: Delta Lake skorzystaj z przechowywania w chmurze, na przykład Amazon S3, Błękitny Blob jako podstawowa warstwa pamięci, która składa się zarówno z plików danych, jak i dzienników transakcji.
  • Zarządzanie metadanymi: Metadane pozostają w dzienniku transakcji. Prowadzi to tym samym do wydajnego działania na metadanych i gwarantuje spójność danych.
  • Techniki optymalizacji: Delta Lake wykorzystuje mnóstwo techniki optymalizacji. Obejmuje pomijanie danych i porządkowanie Z, aby radykalnie poprawić wydajność zapytań i zmniejszyć obciążenie podczas skanowania danych.
Architektura Delta Lake Databricks

Architektura góry lodowej Apache

  • Separacja metadanych: Istnieje różnica w porównaniu z Pamięci danych pod względem oddzielania metadanych od plików danych. Góra lodowa przechowuje metadane w osobnym repozytorium niż pliki danych.
  • Wsparcie transakcyjne: Aby zapewnić integralność i niezawodność danych, Iceberg może poszczycić się solidnym protokołem transakcyjnym. Protokół ten gwarantuje niepodzielne i spójne operacje na tabelach.
  • Kompatybilność: Silniki takie jak Apache Spark, Flink i Presto są łatwo kompatybilne z Iceberg. Programiści mają możliwość elastycznego wykorzystania Iceberg w ramach platform przetwarzania w czasie rzeczywistym i wsadowym.
Architektura góry lodowej Apache

Poruszanie się po krajobrazie migracji: rozważania i najlepsze praktyki

Aby wdrożyć migrację z Databricks Delta Lake do Apache Iceberg, potrzeba ogromnej ilości planowania i wykonania. Należy rozważyć kilka kwestii, którymi są:

  • Ewolucja schematu: Gwarancja doskonałej kompatybilności pomiędzy funkcją ewolucji schematu Delta Lake i Iceberg w celu zachowania spójności podczas zmian schematu.
  • Migracja danych: Strategie należy opracować i wdrożyć, uwzględniając takie czynniki, jak ilość danych, wymagania dotyczące przestojów i spójność danych.
  • Zgodność zapytań: Należy sprawdzić zgodność zapytań pomiędzy Delta Lake i Iceberg. Zapewni to płynne przejście, a istniejąca funkcjonalność zapytań pozostanie nienaruszona także po migracji.
  • Wydajność Testowanie: Rozpocznij szeroko zakrojone testy wydajności i regresji, aby sprawdzić wydajność zapytań. Należy również sprawdzić wykorzystanie zasobów pomiędzy górą lodową a jeziorem Delta. W ten sposób można rozpoznać potencjalne obszary wymagające optymalizacji.

W przypadku migracji programiści mogą wykorzystać niektóre predefiniowane szkielety kodu z dokumentacji Iceberg i databricks i zaimplementować je. Kroki są wymienione poniżej, a używanym tutaj językiem jest Scala:

Krok 1: Utwórz tabelę Delta Lake

W pierwszym kroku upewnij się, że zasobnik S3 jest pusty i zweryfikowany, zanim przystąpisz do tworzenia w nim danych. Po zakończeniu procesu tworzenia danych wykonaj następującą kontrolę:

Krok 1: Utwórz tabelę 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")
Utwórz tabelę Delta Lake
Utwórz tabelę Delta Lake

Dodanie opcjonalnego kodu próżniowego

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

Krok 2: CTAS i odczyt tabeli Delta Lake

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

Krok 3: Odczytywanie jeziora Delta i zapisywanie do tabeli góry lodowej

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)

Sprawdź dane zrzucone do tabel góry lodowej w S3

Odczytywanie jeziora Delta i zapisywanie do tabeli góry lodowej
Odczytywanie jeziora Delta i zapisywanie do tabeli góry lodowej

Porównanie narzędzi innych firm pod względem prostoty, wydajności, kompatybilności i wsparcia. Obydwa narzędzia, tj. AWS Glue DataBrew i Snowflake mają własny zestaw funkcjonalności.

DataBrew kleju AWS

Proces migracji:

  • Łatwość użycia: AWS Glue DataBrew to produkt w chmurze AWS, zapewniający przyjazną dla użytkownika obsługę zadań związanych z czyszczeniem i transformacją danych.
  • Integracja: Glue DataBrew można bezproblemowo zintegrować z innymi usługami chmurowymi Amazon . Organizacje współpracujące z AWS mogą skorzystać z tej usługi.

Zestaw funkcji:

  • Transformacja danych: Zawiera duży zestaw funkcji do transformacji danych (EDA). Może się przydać podczas migracji danych.
  • Automatyczne profilowanie: Podobnie jak inne narzędzia typu open source, DataBrew automatycznie profiluje dane. aby wykryć wszelkie niespójności, a także zalecić zadania transformacji.

Wydajność i kompatybilność:

  • Skalowalność: Do przetwarzania większych zbiorów danych, które można napotkać podczas procesu migracji, Glue DataBrew zapewnia skalowalność, aby również to obsłużyć.
  • zgodność: Zapewnia kompatybilność z szerszym zestawem formatów i źródeł danych, ułatwiając w ten sposób integrację z różnymi rozwiązaniami pamięci masowej.

Snowflake

Proces migracji:

  • Łatwość migracji: Dla uproszczenia Snowflake oferuje usługi migracji, które pomagają użytkownikom końcowym przenieść się z istniejących hurtowni danych na platformę Snowflake.
  • Kompleksowa dokumentacja: Snowflake zapewnia obszerną dokumentację i wystarczającą ilość zasobów potrzebnych do rozpoczęcia procesu migracji.

Zestaw funkcji:

  • Możliwości hurtowni danych: Zapewnia szerszy zestaw funkcji magazynowania i obsługuje dane częściowo ustrukturyzowane, udostępnianie danych i zarządzanie danymi.
  • Konkurencja: Architektura umożliwia wysoką współbieżność, co jest odpowiednie dla organizacji o wysokich wymaganiach w zakresie przetwarzania danych.

Wydajność i kompatybilność:

  • Wydajność: Snowflake jest również wydajny pod względem skalowalności, co umożliwia użytkownikom końcowym z łatwością przetwarzać ogromne ilości danych.
  • zgodność: Snowflake zapewnia także różne złącza dla różnych źródeł danych, gwarantując w ten sposób kompatybilność krzyżową z różnymi ekosystemami danych.
"

Wnioski

Aby zoptymalizować przepływy pracy związane z zarządzaniem jeziorami danych i magazynami oraz uzyskać wyniki biznesowe, przejście ma kluczowe znaczenie dla organizacji. Branże mogą wykorzystać obie platformy pod względem możliwości oraz różnic architektonicznych i technicznych i zdecydować, którą wybrać, aby maksymalnie wykorzystać potencjał swoich zbiorów danych. Pomaga także organizacjom w dłuższej perspektywie. Dzięki dynamicznie i szybko zmieniającemu się krajobrazowi danych innowacyjne rozwiązania mogą utrzymać organizacje na krawędzi.

Na wynos

  • Apache Iceberg zapewnia fantastyczne funkcje, takie jak izolacja migawek, wydajne zarządzanie metadanymi, czyszczenie partycji, co prowadzi do poprawy możliwości zarządzania jeziorem danych.
  • Migracja do Apache Iceberg wiąże się z ostrożnym planowaniem i realizacją. Organizacje powinny wziąć pod uwagę takie czynniki, jak ewolucja schematu, strategie migracji danych i zgodność zapytań.
  • Databricks Delta Lake wykorzystuje pamięć w chmurze jako podstawową warstwę przechowywania, przechowującą pliki danych i dzienniki transakcji, podczas gdy Iceberg oddziela metadane od plików danych, zwiększając wydajność i skalowalność.
  • Organizacje powinny również wziąć pod uwagę konsekwencje finansowe, takie jak koszty przechowywania, opłaty obliczeniowe, opłaty licencyjne i wszelkie zasoby ad hoc potrzebne do migracji.

Często Zadawane Pytania

Pytanie 1. Jak przebiega proces migracji z Databricks Delta Lake do Apache Iceberg?

O. Polega na wyeksportowaniu danych z Databricks Delta Lake, wyczyszczeniu ich w razie potrzeby, a następnie zaimportowaniu do tabel Apache Iceberg.

Pytanie 2. Czy dostępne są jakieś zautomatyzowane narzędzia pomagające w migracji bez ręcznej interwencji?

O. Organizacje zazwyczaj wykorzystują niestandardowe skrypty Pythona/Scala i narzędzia ETL do tworzenia tego przepływu pracy.

Pytanie 3. Jakie są najczęstsze wyzwania, jakie napotykają organizacje podczas procesu migracji?

O. Wyzwania, które są bardzo prawdopodobne, to spójność danych, radzenie sobie z różnicami w ewolucji schematów i optymalizacja wydajności po migracji.

Pytanie 4. Jaka jest różnica między Apache Iceberg a innymi formatami stołów, takimi jak Parquet lub ORC?

O. Apache Iceberg zapewnia funkcje takie jak ewolucja schematu, izolacja migawek i wydajne zarządzanie metadanymi, co różni się od Parquet i ORC.

Pytanie 5. Czy możemy używać Apache Iceberg z rozwiązaniami pamięci masowej w chmurze?

Odpowiedź: Zdecydowanie Apache Iceberg jest kompatybilny z powszechnie używanymi rozwiązaniami do przechowywania danych w chmurze, takimi jak AWS S3, Azure Blob Storage i Google Cloud Storage.

Media pokazane w tym artykule nie są własnością Analytics Vidhya i są wykorzystywane według uznania Autora.

spot_img

Najnowsza inteligencja

spot_img