Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Protokoły tabel usługi Delta Lake określają funkcje, które klient musi obsługiwać do odczytu lub zapisu tabeli. Na tej stronie opisano wersje protokołów, funkcje tabeli, wymagania dotyczące zgodności oraz sposób, w jaki Azure Databricks zarządza uaktualnieniami protokołów. Zobacz również Przeglądanie szczegółów tabeli z opisem szczegółów.
Protokół tabeli i zgodność
Każda tabela usługi Delta Lake ma specyfikację protokołu, która wskazuje zestaw możliwości wymaganych do odczytu i zapisu w tabeli. Aplikacje używają specyfikacji protokołu, aby określić, czy mogą obsługiwać wszystkie funkcje używane w tabeli. Jeśli aplikacja nie może obsługiwać funkcji w bieżącym protokole tabeli, ta aplikacja nie może odczytać ani zapisać tej tabeli.
Większość nowych możliwości usługi Delta Lake wymaga uaktualnienia protokołu tabeli.
W poniższej tabeli wymieniono kluczowe terminy opisujące protokoły usługi Delta Lake:
| Termin | Description |
|---|---|
| Klient usługi Delta Lake | Każdy system, który odczytuje lub zapisuje w tabeli usługi Delta Lake. |
| Odczyt protokołu | Określa obsługę wymaganą dla klienta usługi Delta Lake do odczytania tabeli. |
| Protokół zapisu | Określa obsługę wymaganą dla klienta usługi Delta Lake do zapisu w tabeli. |
minReaderVersion |
Wartość całkowita protokołu czytnika. Prawidłowe wartości to 1, 2lub 3. |
minWriterVersion |
Wartość całkowita protokołu zapisywania. Prawidłowe wartości to liczby całkowite 2 za pośrednictwem 7. |
| Funkcja tabeli | Szczegółowa alternatywa dla wersji protokołu używanych, gdy minReaderVersion = 3 i minWriterVersion = 7. Funkcje tabeli są przypisywane do opcjonalnie włączanych funkcji Delta Lake. |
| Funkcja zapisywania | Funkcja tabeli, która wymaga obsługi klienta zapisu, ale nie blokuje dostępu tylko do odczytu. |
| Funkcja czytelnika | Funkcja tabeli, która wymaga obsługi klienta odczytu i zapisu. Zobacz Wersje protokołu i funkcje tabeli. |
Protokoły zapisu i funkcje zapisywania mają wpływ tylko na zgodność z klientami zapisywania, umożliwiając dostęp tylko do odczytu do tabeli ze starszych obciążeń.
Nie wszystkie funkcje usługi Delta Lake są ze sobą zgodne.
Niektórych funkcji tabeli nie można porzucić po włączeniu. Zobacz Upuszczanie funkcji tabeli Delta Lake i obniżanie poziomu protokołu tabeli.
Wersje protokołu i funkcje tabeli
Wszystkie tabele usługi Delta Lake zawierają wersję protokołu opartą na liczbą całkowitą reprezentowaną przez elementy minReaderVersion i minWriterVersion. Każda wersja łączy wiele funkcji, a funkcje są skumulowane w różnych wersjach. Aby zapewnić zgodność z protokołem Delta Lake, klienci muszą zaimplementować obsługę wszystkich funkcji w danej wersji, w tym wszystkich wcześniej wydanych funkcji.
W środowisku Databricks Runtime 12.2 LTS lub nowszym funkcje tabeli zastępują protokół oparty na liczbach całkowitych szczegółowymi flagami wskazującymi, które funkcje są używane w tabeli. Umożliwia to bardziej szczegółowe kontrole zgodności między klientami i tabelami.
Funkcje modułu zapisywania tabel wpływają na sposób zapisywania danych.
minWriterVersion=7 Wymagają one, ale nie blokują klientów czytelników.
Funkcje czytnika tabel wpływają na sposób odczytywania danych. Wszystkie funkcje czytelnika są również funkcjami zapisywania i wymagają minReaderVersion=3 i minWriterVersion=7. Klient nie może zapisać w tabeli, że nie może odczytać.
Po włączeniu funkcji tabeli są one wyświetlane w protokole jako readerFeatures lub writerFeatures. Usługa Delta Lake rozwiązuje protokół tabeli z najniższą wersją, która obsługuje wszystkie włączone funkcje. Zobacz Najniższy możliwy protokół.
Note
Azure Databricks obejmuje częściową obsługę funkcji tabeli we wszystkich obsługiwanych wersjach środowiska Databricks Runtime. Klienci usługi Delta Lake systemu operacyjnego wybierają sposób implementowania obsługi danych funkcji.
Zmiany protokołu
Protokół tabeli zmienia się w następujących warunkach:
- Jeśli włączono nową funkcję, protokół zostanie uaktualniony.
- Jeśli funkcja tabeli zostanie porzucona, protokół zostanie obniżony.
Wyłączenie funkcji tabeli nie powoduje obniżenia poziomu protokołu. Aby całkowicie usunąć tę funkcję z protokołu, należy ją usunąć. Nie wszystkie funkcje tabeli można porzucić. Zobacz Upuszczanie funkcji tabeli Delta Lake i obniżanie poziomu protokołu tabeli.
Wszystkie operacje zmiany protokołu powodują konflikt z zapisami współbieżnymi. Odczyty strumieniowe kończą się niepowodzeniem, gdy napotkają operację zatwierdzenia zmieniającą metadane tabeli. Aby kontynuować, uruchom ponownie objęte strumienie. Aby zapoznać się z zalecanymi metodami, zobacz Zagadnienia produkcji dla strukturalnego przesyłania strumieniowego.
Note
Usługa Databricks zaleca, aby nigdy nie zmieniać minReaderVersion właściwości tabeli i bezpośrednio minWriterVersion . Zmiana tych właściwości nie uniemożliwia uaktualniania protokołu i ustawienie ich na niższą wartość nie powoduje obniżenia poziomu tabeli. Zobacz Upuszczanie funkcji tabeli Delta Lake i obniżanie poziomu protokołu tabeli.
Co wyzwala uaktualnienie protokołu
Po włączeniu funkcji protokół tabeli zostanie automatycznie uaktualniony.
Uaktualnienia protokołu są wyzwalane w następujący sposób:
- Włącz automatycznie na podstawie składni używanej w
CREATEinstrukcjach lubALTER. Na przykładCLUSTER BYwCREATE TABLEinstrukcji automatycznie włącza klastrowanie cieczy iGENERATED ALWAYS ASwłącza wygenerowane kolumny. - Włącz jawnie za pomocą właściwości tabeli. Na przykład ustawienie
'delta.enableDeletionVectors' = trueumożliwia wektory usuwania. - Włączenie funkcji może automatycznie włączać wymagane funkcje. Na przykład włączenie odczytów Iceberg automatycznie umożliwia mapowanie kolumn, a włączenie grupowania cieczy automatycznie umożliwia punkt kontrolny V2. Zapoznaj się z odpowiednią dokumentacją Azure Databricks, aby określić, które funkcje tabeli są wymagane przez daną funkcję.
Funkcje czytnika uaktualniają zarówno protokoły odczytu, jak i zapisu. Na przykład mapowanie kolumn jest funkcją czytelnika i wymaga uaktualnienia obu protokołów, ponieważ dane są przechowywane inaczej w magazynie.
Funkcje zapisywania, takie jak CHECK ograniczenia, uaktualniają tylko protokół zapisu.
Warning
Większość uaktualnień wersji protokołu jest nieodwracalna i może spowodować przerwanie istniejących czytników tabel usługi Delta Lake, składników zapisywania lub obu tych typów. Uaktualnij określone tabele tylko w razie potrzeby i sprawdź, czy wszystkie bieżące i przyszłe narzędzia produkcyjne obsługują nową wersję protokołu.
Dla niektórych funkcji są dostępne obniżanie poziomu protokołu. Zobacz Upuszczanie funkcji tabeli Delta Lake i obniżanie poziomu protokołu tabeli.
Protokół o najniższym możliwym poziomie
Usługa Delta Lake rozwiązuje protokół tabeli z najniższą wersją, która obsługuje wszystkie włączone funkcje. Może to być tylko niższe minReaderVersion lub minWriterVersion, nigdy ich nie podnieść. Funkcje tabel nigdy nie są usuwane automatycznie. Użyj DROP FEATURE polecenia , aby usunąć funkcję tabeli z protokołu.
Jeśli wszystkie włączone funkcje są w pełni obsługiwane w niższej wersji protokołu opartej na liczbą całkowitą, tabela może przywrócić tę wersję i usunąć readerFeatures lub writerFeatures z protokołu. Nie powoduje to wyłączenia żadnych funkcji. Niższe wersje protokołu zwiększają zgodność, ponieważ wszyscy klienci muszą je przestrzegać.
zgodność środowiska Azure Databricks i środowiska Databricks Runtime
Azure Databricks wprowadzono obsługę nowych funkcji usługi Delta Lake w wersjach środowiska Databricks Runtime:
- Tabele napisane przez niższą wersję środowiska Databricks Runtime mają pełną obsługę odczytu i zapisu w wyższych wersjach środowiska Databricks Runtime.
- Tabele napisane przez wyższą wersję środowiska Databricks Runtime mogą używać funkcji tabeli, które nie są obsługiwane w niższych wersjach środowiska Databricks Runtime.
- Niektóre funkcje umożliwiają zapisywanie z niższych wersji środowiska Databricks Runtime bez pełnego zastosowania wszystkich optymalizacji dla włączonej funkcji.
Jeśli używasz tylko tabel usługi Delta Lake za pośrednictwem Azure Databricks, wystarczy śledzić obsługę funkcji przy użyciu minimalnych wymagań środowiska Databricks Runtime. Jeśli odczytujesz lub zapisujesz tabele z systemów zewnętrznych, musisz sprawdzić, czy ci klienci obsługują funkcje tabeli włączone w tabelach.
Obsługa funkcji tabeli z powrotem
W środowisku Databricks Runtime 12.2 LTS lub nowszym funkcje tabeli zastąpiły protokół oparty na liczbach całkowitych szczegółowymi flagami wskazującymi, które funkcje są używane w tabeli.
Azure Databricks obsługuje funkcję tabeli backported w środowisku Databricks Runtime 11.3 LTS i poniżej, zamiast obsługiwać tylko wersje protokołu całkowitego, ale tylko w przypadku funkcji już obsługiwanych w tej wersji.
Na przykład można odczytywać dane z tabeli i zapisywać je w tabeli z włączonymi wygenerowanymi kolumnami przy użyciu funkcji tabeli w środowisku Databricks Runtime 9.1 LTS. Nie można jednak używać środowiska Databricks Runtime 9.1 LTS do odczytywania i zapisywania w tabeli z włączonymi kolumnami tożsamości przy użyciu funkcji tabeli, ponieważ kolumny tożsamości wymagają środowiska Databricks Runtime 10.4 LTS i nowszych.
W przypadku korzystania z funkcji tabeli z obsługą wsteczną niektóre operacje dostępne w danej wersji środowiska Databricks Runtime mogą nie być dostępne w odpowiedniej wersji usługi Delta Lake systemu operacyjnego. Jeśli architektura obejmuje klientów usługi Delta Lake systemu operacyjnego, przetestuj zgodność przed włączeniem funkcji tabeli w tabelach produkcyjnych.
Funkcje usługi Delta Lake i wymagane wersje środowiska Databricks Runtime
W poniższej tabeli wymieniono najniższą wersję środowiska Databricks Runtime z pełną obsługą każdej funkcji, dzięki czemu obsługiwane są wszystkie ogólnie dostępne funkcje odczytu i zapisu.
| Feature | Wymaga wersji środowiska Databricks Runtime lub nowszej | Documentation |
|---|---|---|
CHECK ograniczenia |
Wszystkie obsługiwane wersje środowiska Databricks Runtime |
CHECK Ograniczenie |
| Zmienianie źródła danych | Wszystkie obsługiwane wersje środowiska Databricks Runtime | Używanie zestawienia zmian danych w Azure Databricks |
| Wygenerowane kolumny | Wszystkie obsługiwane wersje środowiska Databricks Runtime | kolumny generowane przez Delta Lake |
| Mapowanie kolumn | Wszystkie obsługiwane wersje środowiska Databricks Runtime | Zmiana nazw i usuwanie kolumn z użyciem mapowania kolumn Delta Lake |
| Kolumny identyfikacyjne | Wszystkie obsługiwane wersje środowiska Databricks Runtime | Kolumny tożsamości |
| Funkcje tabeli | Wszystkie obsługiwane wersje środowiska Databricks Runtime | Wersje protokołu i funkcje tabeli |
| Wektory usuwania | Wszystkie obsługiwane wersje środowiska Databricks Runtime | Wektory usuwania w usłudze Databricks |
| TimestampNTZ | Środowisko wykonawcze Databricks w wersji 13.3 LTS |
TIMESTAMP_NTZ typ |
| Góra lodowa czyta | Środowisko wykonawcze Databricks w wersji 13.3 LTS | Odczytywanie tabel usługi Delta Lake z klientami góry lodowej |
| Klastrowanie cieczy | Środowisko wykonawcze Databricks w wersji 13.3 LTS | Użyj klastrowania płynnego w tabelach |
| Śledzenie rzędów | Databricks Runtime 14.3 LTS | Śledzenie wierszy w Azure Databricks |
| Rozszerzanie typu | Databricks Runtime 15.4 LTS | Rozszerzanie typu |
| Variant | Databricks Runtime 15.4 LTS | Obsługa typów wariantów dla platform Apache Iceberg i Delta Lake |
| Sortowania | Databricks Runtime 16.1 | Obsługa sortowania w Delta Lake |
| Chronione punkty kontrolne | Databricks Runtime 16.3 | Usunąć funkcję tabeli Delta Lake i przywrócić starszy protokół tabeli |
| Zatwierdzenia katalogu | Databricks Runtime 16.4 LTS | Zatwierdzenia wykazu |
Zobacz notatki o wersjach i zgodności środowiska Databricks Runtime.
Note
Potoki lakeflow i usługa Databricks SQL automatycznie uaktualniają środowiska uruchomieniowe z regularnymi wersjami, aby obsługiwać nowe funkcje. Zobacz Informacje o wersji potoków usługi Lakeflow oraz informacje o wersji iInformacje o wersji usługi Databricks SQL.
Funkcje według wersji protokołu
Note
Aby uzyskać informacje o zgodności środowiska Databricks Runtime, zobacz Azure Databricks i zgodność środowiska Databricks Runtime.
Delta Lake używa oddzielnych wartości minReaderVersion i minWriterVersion do określania możliwości protokołu. Protokół Delta Lake typu open source ustandaryzował funkcje tabel, ale niektórzy klienci nadal używają starszej wersji protokołu. Ponieważ niektórzy klienci mogą nie obsługiwać wszystkich funkcji, usługa Databricks zaleca zweryfikowanie dokumentacji klienta i zgodności testów przed włączeniem nowych funkcji w tabelach produkcyjnych.
Apache Iceberg używa pojedynczego format-version zamiast oddzielnych wersji czytania i pisania. Wersja formatu Góry Lodowej wskazuje, które funkcje są dostępne, ale nie nakazuje ich użycia. Funkcje są włączane na życzenie, z wyjątkiem śledzenia wierszy, które jest obowiązkowe w wersji formatu 3. Gdy funkcja wyświetla N/A w kolumnie Góry Lodowej, jest to funkcja specyficzna dla delty bez bezpośredniego odpowiednika Góry Lodowej.
W poniższej tabeli wymieniono wymagania dotyczące wersji protokołu dla funkcji tabel Delta Lake i Apache Iceberg. Typ funkcji wskazuje, czy funkcja musi być przestrzegana tylko dla zapisów, czy zarówno dla operacji odczytu, jak i zapisu.
| Feature | Delta minWriterVersion |
Delta minReaderVersion |
Góra lodowa format-version |
Typ funkcji |
|---|---|---|---|---|
| Podstawowe funkcje | 2 | 1 | 1 | Pisarz |
CHECK ograniczenia |
3 | 1 | N/A | Pisarz |
| Zmienianie źródła danych | 4 | 1 | N/A | Pisarz |
| Wygenerowane kolumny | 4 | 1 | N/A | Pisarz |
| Mapowanie kolumn | 5 | 2 | N/A | Czytelnik i pisarz |
| Kolumny tożsamości | 6 | 1 | N/A | Pisarz |
| Śledzenie wierszy | 7 | 1 | 3 | Pisarz |
| Wektory usuwania | 7 | 3 | 3 | Czytelnik i pisarz |
| TimestampNTZ | 7 | 3 | 1 | Czytelnik i pisarz |
| Klastrowanie cieczy | 7 | 3 | 1 | Czytelnik i zapis (1) |
| Góra lodowa czyta | 7 | 2 | N/A | Zapis (2) |
| Rozszerzanie typu | 7 | 3 | N/A | Czytelnik i pisarz |
| Wariant | 7 | 3 | 3 | Czytelnik i pisarz |
| Niszczanie wariantów | 7 | 3 | 3 | Czytelnik i pisarz |
| Porządkowania | 7 | 3 | N/A | Czytelnik i pisarz |
| Chronione punkty kontrolne | 7 | 1 | N/A | Pisarz |
| Zatwierdzenia wykazu | 7 | 3 | N/A | Czytelnik i pisarz |