Udostępnij za pośrednictwem


Migrowanie potoków ETL do usługi Azure Databricks

Ten artykuł zawiera omówienie opcji migrowania potoków wyodrębniania, przekształcania, ładowania (ETL) działających w innych systemach danych do usługi Azure Databricks. Jeśli migrujesz kod platformy Apache Spark, zobacz Dostosowywanie kodu platformy Apache Spark dla usługi Azure Databricks.

Aby uzyskać ogólne informacje na temat przenoszenia z magazynu danych przedsiębiorstwa do magazynu lakehouse, zobacz Migrowanie magazynu danych do usługi Databricks Lakehouse. Aby uzyskać informacje o przejściu z parquet do usługi Delta Lake, zobacz Migrowanie magazynu danych Parquet do usługi Delta Lake.

Czy można uruchamiać potoki hive w usłudze Azure Databricks?

Większość obciążeń hive może działać w usłudze Azure Databricks z minimalną refaktoryzację. Wersja platformy Spark SQL obsługiwana przez środowisko Databricks Runtime umożliwia korzystanie z wielu konstrukcji HiveQL. Zobacz Zgodność z usługą Apache Hive. Usługa Azure Databricks domyślnie zawiera magazyn metadanych Hive. Większość migracji hive musi rozwiązać kilka podstawowych problemów:

  • Aby można było używać koderów plików natywnych dla usługi Azure Databricks, należy zaktualizować usługę Hive SerDe. (Zmień DDL z STORED AS na, USING aby używać usługi Azure Databricks SerDe).
  • Funkcje zdefiniowane przez użytkownika programu Hive muszą być zainstalowane w klastrach jako biblioteki lub refaktoryzowane do natywnej platformy Spark. Ponieważ funkcje zdefiniowane przez użytkownika programu Hive znajdują się już w maszynie JVM, mogą zapewnić wystarczającą wydajność dla wielu obciążeń. Zobacz Jakie funkcje zdefiniowane przez użytkownika są najbardziej wydajne?.
  • Struktura katalogów tabel powinna zostać zmieniona, ponieważ usługa Azure Databricks używa partycji inaczej niż hive. Zobacz Kiedy partycjonować tabele w usłudze Azure Databricks.

Jeśli zdecydujesz się zaktualizować tabele do usługi Delta Lake podczas migracji początkowej, wiele instrukcji DDL i DML nie jest obsługiwanych. Są to:

  • ROWFORMAT
  • SERDE
  • OUTPUTFORMAT
  • INPUTFORMAT
  • COMPRESSION
  • STORED AS
  • ANALYZE TABLE PARTITION
  • ALTER TABLE [ADD|DROP] PARTITION
  • ALTER TABLE RECOVER PARTITIONS
  • ALTER TABLE SET SERDEPROPERTIES
  • CREATE TABLE LIKE
  • INSERT OVERWRITE DIRECTORY
  • LOAD DATA
  • Określanie partycji docelowych przy użyciu polecenia PARTITION (part_spec) w programie TRUNCATE TABLE

Czy można uruchamiać potoki ETL SQL w usłudze Azure Databricks?

Migrowanie obciążeń SQL z innych systemów do usługi Azure Databricks zwykle wymaga bardzo małej refaktoryzacji, w zależności od zakresu, w jakim określone protokoły systemowe były używane w kodzie źródłowym. Usługa Azure Databricks używa usługi Delta Lake jako domyślnego formatu tabeli, dlatego tabele są domyślnie tworzone z gwarancjami transakcyjnymi.

Język Spark SQL jest w większości zgodny ze standardem ANSI, ale mogą istnieć pewne różnice w zachowaniu. Zobacz Jak platforma analizy danych usługi Databricks różni się od magazynu danych przedsiębiorstwa?.

Ponieważ systemy danych zwykle konfigurują dostęp do danych zewnętrznych inaczej, większość prac refaktoryzacji potoków ETL SQL może konfigurować dostęp do tych źródeł danych, a następnie aktualizować logikę tak, aby korzystała z tych nowych połączeń. Usługa Azure Databricks udostępnia opcje łączenia się z wieloma źródłami danych na potrzeby pozyskiwania danych.

Czy można uruchamiać potoki ETL dbt w usłudze Azure Databricks?

Usługa Azure Databricks zapewnia natywną integrację z bazą danych dbt, umożliwiając korzystanie z istniejących skryptów dbt z bardzo małą refaktoryzacją.

Funkcja Delta Live Tables udostępnia zoptymalizowaną natywną składnię sql usługi Databricks do tworzenia, testowania i wdrażania potoków. Chociaż możesz wykorzystać bazę danych w usłudze Azure Databricks, lekki refaktoryzator kodu do tabel delta Live Tables może obniżyć całkowity koszt obsługi potoków w usłudze Azure Databricks. Zobacz Co to jest delta live tables?.

Czy można migrować funkcje chmury bezserwerowej do usługi Azure Databricks?

Rozszerzalność i wszechstronność niestandardowych funkcji chmury bezserwerowej utrudnia udostępnienie typowych zaleceń, ale jednym z najczęstszych przypadków użycia tych funkcji jest oczekiwanie na pojawienie się plików lub danych w lokalizacji lub kolejce komunikatów, a następnie wykonanie jakiejś akcji w wyniku. Chociaż usługa Azure Databricks nie obsługuje złożonej logiki wyzwalania obciążeń na podstawie warunków w chmurze, można używać przesyłania strumieniowego ze strukturą w połączeniu z zadaniami do przetwarzania danych przyrostowo.

Użyj automatycznego modułu ładującego do zoptymalizowanego pozyskiwania danych z magazynu obiektów w chmurze. Przesyłanie strumieniowe ze strukturą może przetwarzać dane ze źródeł przesyłania strumieniowego niemal w czasie rzeczywistym.

Czy można uruchamiać składnię z innych systemów danych w usłudze Azure Databricks?

Potoki ETL zdefiniowane w językach innych niż SQL, Apache Spark lub Hive mogą wymagać znacznej refaktoryzacji przed uruchomieniem w usłudze Azure Databricks. Usługa Azure Databricks ma doświadczenie w ułatwianiu klientom migrowania z większości używanych obecnie systemów danych i może mieć dostępne zasoby umożliwiające szybkie rozpoczęcie prac związanych z migracją.