Co to jest Delta Lake?
Delta Lake to zoptymalizowana warstwa przechowywania, która stanowi podstawę dla tabel w koncepcji lakehouse na platformie Databricks. Delta Lake to oprogramowanie typu open source, które rozszerza pliki danych Parquet za pomocą dziennika transakcji opartego na plikach na potrzeby transakcji ACID i skalowalnej obsługi metadanych. Usługa Delta Lake jest w pełni zgodna z interfejsami API platformy Apache Spark i została opracowana w celu ścisłej integracji ze strukturą przesyłania strumieniowego, co umożliwia łatwe używanie pojedynczej kopii danych zarówno dla operacji wsadowych, jak i przesyłania strumieniowego oraz zapewnianie przyrostowego przetwarzania na dużą skalę.
Usługa Delta Lake jest domyślnym formatem dla wszystkich operacji w usłudze Azure Databricks. Jeśli nie określono inaczej, wszystkie tabele w usłudze Azure Databricks to tabele Delta. Usługa Databricks pierwotnie opracowała protokół Delta Lake i nadal aktywnie współtworzy projekt open source. Wiele optymalizacji i produktów na platformie Databricks opiera się na gwarancjach oferowanych przez platformę Apache Spark i Delta Lake. Aby uzyskać informacje na temat optymalizacji w usłudze Azure Databricks, zobacz Zalecenia dotyczące optymalizacji w usłudze Azure Databricks.
Aby uzyskać informacje na temat poleceń usługi Delta Lake SQL, zobacz Instrukcje usługi Delta Lake.
Dziennik transakcji usługi Delta Lake ma dobrze zdefiniowany otwarty protokół, który może być używany przez dowolny system do odczytywania dziennika. Zobacz Protokół dziennika transakcji Delta.
Wprowadzenie do usługi Delta Lake
Wszystkie tabele w usłudze Azure Databricks są domyślnie tabelami delty. Niezależnie od tego, czy używasz DataFrame Apache Spark, czy SQL, możesz uzyskać wszystkie korzyści Delta Lake, zapisując dane w lakehouse przy użyciu ustawień domyślnych.
Aby zapoznać się z przykładami podstawowych operacji usługi Delta Lake, takich jak tworzenie tabel, odczytywanie, zapisywanie i aktualizowanie danych, zobacz Samouczek: usługa Delta Lake.
Usługa Databricks zawiera wiele zaleceń dotyczących najlepszych rozwiązań dotyczących usługi Delta Lake.
Konwertowanie i pozyskiwanie danych do Delta Lake
Usługa Azure Databricks udostępnia wiele produktów, które przyspieszają i upraszczają ładowanie danych do usługi LakeHouse.
DLT:
Przyrostowe konwertowanie danych Parquet lub Iceberg na usługę Delta Lake
Jednorazowa konwersja danych Parquet lub Iceberg na Delta Lake
Aby uzyskać pełną listę opcji pozyskiwania, zobacz Pozyskiwanie danych w Azure Databricks lakehouse.
Aktualizowanie i modyfikowanie tabel usługi Delta Lake
Transakcje atomowe w Delta Lake zapewniają wiele opcji aktualizowania danych i metadanych. Usługa Databricks zaleca unikanie bezpośredniej interakcji z plikami dziennika danych i transakcji w katalogach plików usługi Delta Lake, aby uniknąć uszkodzenia tabel.
- Usługa Delta Lake obsługuje operacje "upsert" przy użyciu operacji scalania. Zobacz scalanie do tabeli Delta Lake przy użyciu operacji Upsert.
- Usługa Delta Lake oferuje wiele opcji selektywnego nadpisywania na podstawie filtrów i partycji. Zobacz Selektywne zastępowanie danych za pomocą usługi Delta Lake.
- Schemat tabeli można aktualizować ręcznie lub automatycznie bez ponownego zapisywania danych. Zobacz Update Delta Lake table schema.
- Włącz mapowanie kolumn w celu zmiany nazwy lub usunięcia kolumn bez ponownego zapisywania danych. Zobacz Zmień nazwę i usuń kolumny za pomocą mapowania kolumn Delta Lake.
Obciążenia przyrostowe i strumieniowe w Delta Lake
Delta Lake jest zoptymalizowane pod kątem zorganizowanego strumieniowania na platformie Azure Databricks. DLT rozszerza możliwości natywne dzięki uproszczonemu wdrożeniu infrastruktury, ulepszonemu skalowaniu i zarządzanym zależnościom danych.
- Strumieniowy odczyt i zapis tabeli Delta
- Używanie zestawienia danych zmian usługi Delta Lake w usłudze Azure Databricks
Wykonywanie zapytań względem poprzednich wersji tabeli
Każdy zapis w tabeli Delta tworzy nową wersję tabeli. Możesz użyć dziennika transakcji, aby przejrzeć modyfikacje tabeli i zapytać o poprzednie wersje tabeli. Zobacz Praca z historią tabel Delta Lake.
Ulepszenia schematu usługi Delta Lake
Usługa Delta Lake weryfikuje schemat podczas zapisu, zapewniając, że wszystkie dane zapisane w tabeli spełniają określone wymagania.
- Wymuszanie schematu
- Ograniczenia usługi Azure Databricks
- kolumny generowane przez Delta Lake
- Wzbogacanie tabel usługi Delta Lake za pomocą niestandardowych metadanych
Zarządzanie plikami i indeksowaniem danych za pomocą usługi Delta Lake
Usługa Azure Databricks ustawia wiele domyślnych parametrów usługi Delta Lake, które mają wpływ na rozmiar plików danych i liczbę wersji tabel przechowywanych w historii. Usługa Delta Lake używa kombinacji analizowania metadanych i układu danych fizycznych, aby zmniejszyć liczbę skanowanych plików w celu spełnienia dowolnego zapytania.
- Używanie klastrowania płynnego dla tabel delty
- Pomijanie danych w Delta Lake
- Optymalizowanie układu pliku danych
- Usuwanie nieużywanych plików danych z próżnią
- Konfigurowanie usługi Delta Lake w celu kontrolowania rozmiaru pliku danych
Konfigurowanie i przeglądanie ustawień usługi Delta Lake
Usługa Azure Databricks przechowuje wszystkie dane i metadane tabel usługi Delta Lake w magazynie obiektów w chmurze. Wiele konfiguracji można ustawić na poziomie tabeli lub w sesji platformy Spark. Możesz przejrzeć szczegóły tabeli delty, aby dowiedzieć się, jakie opcje są skonfigurowane.
- Przeglądanie szczegółów tabeli Delta Lake za pomocą 'describe detail'
- Referencje właściwości tabeli Delta
Potoki danych wykorzystujące Delta Lake i DLT
Usługa Azure Databricks zachęca użytkowników do korzystania z architektury medaliowej do przetwarzania danych za pośrednictwem serii tabel w trakcie procesów czyszczenia i wzbogacania danych. DLT upraszcza obciążenia ETL dzięki zoptymalizowanemu wykonywaniu i zautomatyzowanemu wdrażaniu i skalowaniu infrastruktury.
Zgodność funkcji usługi Delta Lake
Nie wszystkie funkcje usługi Delta Lake są we wszystkich wersjach środowiska Databricks Runtime. Aby uzyskać informacje na temat przechowywania wersji usługi Delta Lake, zobacz Jak usługa Azure Databricks zarządza zgodnością funkcji usługi Delta Lake?.
Dokumentacja interfejsu API usługi Delta Lake
W przypadku większości operacji odczytu i zapisu w tabelach Delta można użyć interfejsów API Spark SQL lub Apache Spark DataFrame.
Instrukcje SQL specyficzne dla usługi Delta Lake można znaleźć w temacie Instrukcje usługi Delta Lake.
Usługa Azure Databricks zapewnia zgodność binarną z interfejsami API usługi Delta Lake w środowisku Databricks Runtime. Aby wyświetlić wersję interfejsu API usługi Delta Lake spakowana w każdej wersji środowiska Databricks Runtime, zobacz sekcję Środowisko systemowe w odpowiednim artykule w informacjach o wersji środowiska Databricks Runtime. Aby uzyskać dokumentację interfejsów API Delta Lake dla języków Python, Scala i Java, odnieś się do dokumentacji OSS Delta Lake.