Udostępnij za pośrednictwem


Dokumentacja właściwości tabeli delty

Usługa Delta Lake rezerwuje właściwości tabeli usługi Delta rozpoczynające się od delta.. Te właściwości mogą mieć określone znaczenie i wpływać na zachowania po ustawieniu tych właściwości.

Uwaga

Wszystkie operacje ustawiające lub aktualizujące właściwości tabeli powodują konflikt z innymi współbieżnymi operacjami zapisu, co powoduje ich niepowodzenie. Usługa Databricks zaleca modyfikowanie właściwości tabeli tylko wtedy, gdy w tabeli nie ma żadnych operacji zapisu współbieżnego.

W jaki sposób właściwości tabeli i właściwości sparkSession współdziałają?

Właściwości tabeli delty są ustawiane na tabelę. Jeśli właściwość jest ustawiona w tabeli, jest to ustawienie, które następuje domyślnie.

Niektóre właściwości tabeli mają skojarzone konfiguracje sparkSession, które zawsze mają pierwszeństwo przed właściwościami tabeli. Niektóre przykłady obejmują spark.databricks.delta.autoCompact.enabled konfiguracje i spark.databricks.delta.optimizeWrite.enabled , które włączają automatyczne kompaktowanie i zoptymalizowane zapisy na poziomie SparkSession, a nie na poziomie tabeli. Usługa Databricks zaleca używanie konfiguracji o zakresie tabeli dla większości obciążeń.

Dla każdej właściwości tabeli delty można ustawić wartość domyślną dla nowych tabel przy użyciu konfiguracji SparkSession, przesłaniając wbudowaną wartość domyślną. To ustawienie dotyczy tylko nowych tabel i nie zastępuje właściwości ustawionych w istniejących tabelach. Prefiks używany w usłudze SparkSession różni się od konfiguracji używanych we właściwościach tabeli, jak pokazano w poniższej tabeli:

Delta Lake conf SparkSession conf
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Aby na przykład ustawić delta.appendOnly = true właściwość dla wszystkich nowych tabel usługi Delta Lake utworzonych w sesji, ustaw następujące ustawienia:

SET spark.databricks.delta.properties.defaults.appendOnly = true

Aby zmodyfikować właściwości tabeli istniejących tabel, użyj polecenia SET TBLPROPERTIES.

Właściwości tabeli delty

Dostępne właściwości tabeli delty obejmują następujące elementy:

Właściwości
delta.appendOnly

true dla tej tabeli delty, która ma być dołączana tylko do dołączania. W przypadku dołączania nie można usunąć istniejących rekordów i nie można zaktualizować istniejących wartości.

Zobacz Informacje o właściwościach tabeli delty.

Typ danych: Boolean

Domyślnie: false
delta.autoOptimize.autoCompact

auto usługa Delta Lake automatycznie optymalizuje układ plików dla tej tabeli delty.

Zobacz Automatyczne kompaktowanie usługi Delta Lake w usłudze Azure Databricks.

Typ danych: Boolean

Ustawienie domyślne: (brak)
delta.autoOptimize.optimizeWrite

true usługa Delta Lake automatycznie optymalizuje układ plików dla tej tabeli delty podczas zapisu.

Zobacz Zoptymalizowane zapisy dla usługi Delta Lake w usłudze Azure Databricks.

Typ danych: Boolean

Ustawienie domyślne: (brak)
delta.checkpoint.writeStatsAsJson

true usługa Delta Lake zapisuje statystyki plików w punktach kontrolnych w formacie JSON dla kolumny stats .

Zobacz Zarządzanie statystykami na poziomie kolumny w punktach kontrolnych.

Typ danych: Boolean

Domyślnie: true
delta.checkpoint.writeStatsAsStruct

true usługa Delta Lake do zapisywania statystyk plików w punktach kontrolnych w formacie struktury dla stats_parsed kolumny i zapisywania wartości partycji jako struktury dla partitionValues_parsedelementu .

Zobacz Zarządzanie statystykami na poziomie kolumny w punktach kontrolnych.

Typ danych: Boolean

Ustawienie domyślne: (brak)
delta.checkpointPolicy

classic dla klasycznych punktów kontrolnych usługi Delta Lake. v2 dla punktów kontrolnych w wersji 2.

Zobacz Zgodność tabel z klastrowaniem płynnym.

Typ danych: String

Domyślnie: classic
delta.columnMapping.mode

Określa, czy mapowanie kolumn jest włączone dla kolumn tabeli delty i odpowiadających im kolumn Parquet, które używają różnych nazw.

Zobacz Zmienianie nazwy i usuwanie kolumn za pomocą mapowania kolumn usługi Delta Lake.

Uwaga: włączanie automatycznego włączania delta.columnMapping.mode
delta.randomizeFilePrefixes.

Typ danych: DeltaColumnMappingMode

Domyślnie: none
delta.dataSkippingNumIndexedCols

Liczba kolumn dla usługi Delta Lake do zbierania statystyk dotyczących pomijania danych. Wartość metody zbierania -1 statystyk dla wszystkich kolumn.

Zobacz Pomijanie danych dla usługi Delta Lake.

Typ danych: Int

Domyślnie: 32
delta.dataSkippingStatsColumns

Rozdzielona przecinkami lista nazw kolumn, na których usługa Delta Lake zbiera statystyki w celu ulepszenia funkcji pomijania danych. Ta właściwość ma pierwszeństwo przed delta.dataSkippingNumIndexedCols.

Zobacz Pomijanie danych dla usługi Delta Lake.

Typ danych: String

Ustawienie domyślne: (brak)
delta.deletedFileRetentionDuration

Najkrótszy czas trwania usługi Delta Lake w celu zachowania logicznie usuniętych plików danych przed ich fizycznym usunięciem. Zapobiega to awariom w nieaktualnych czytnikach po zagęszczaniu lub zastępowaniu partycji.

Ta wartość powinna być wystarczająco duża, aby upewnić się, że:

— Jest on większy niż najdłuższy możliwy czas trwania zadania, jeśli uruchamiasz VACUUM je, gdy istnieją współbieżni czytelnicy lub autorzy, którzy uzyskują dostęp do tabeli delty.
— Jeśli uruchamiasz zapytanie przesyłane strumieniowo, które odczytuje z tabeli, to zapytanie nie zatrzymuje się dłużej niż ta wartość. W przeciwnym razie zapytanie może nie być w stanie ponownie uruchomić, ponieważ nadal musi odczytywać stare pliki.

Zobacz Konfigurowanie przechowywania danych dla zapytań dotyczących podróży w czasie.

Typ danych: CalendarInterval

Domyślnie: interval 1 week
delta.enableChangeDataFeed

true aby włączyć zestawienie danych zmian.

Zobacz Włączanie zestawienia danych zmian.

Typ danych: Boolean

Domyślnie: false
delta.enableDeletionVectors

true aby włączyć wektory usuwania i predykcyjne operacje we/wy na potrzeby aktualizacji.

Zobacz Co to są wektory usuwania?.

Typ danych: Boolean

Ustawienie domyślne: zależy od ustawień administratora obszaru roboczego i wersji środowiska Databricks Runtime. Zobacz Automatyczne włączanie wektorów usuwania
delta.isolationLevel

Stopień, w jakim transakcja musi być odizolowana od modyfikacji wprowadzonych przez transakcje współbieżne.

Prawidłowe wartości to Serializable i WriteSerializable.

Zobacz Poziomy izolacji i konflikty zapisu w usłudze Azure Databricks.

Typ danych: String

Domyślnie: WriteSerializable
delta.logRetentionDuration

Jak długo jest przechowywana historia tabeli delty. VACUUM operacje zastępują ten próg przechowywania.

Za każdym razem, gdy punkt kontrolny jest zapisywany, usługa Delta Lake automatycznie czyści wpisy dziennika starsze niż interwał przechowywania. Jeśli ustawisz tę właściwość na wystarczająco dużą wartość, wiele wpisów dziennika zostanie zachowanych. Nie powinno to mieć wpływu na wydajność, ponieważ operacje względem dziennika są stałym czasem. Operacje na historii są równoległe, ale w miarę wzrostu rozmiaru dziennika staną się droższe.

Zobacz Konfigurowanie przechowywania danych dla zapytań dotyczących podróży w czasie.

Typ danych: CalendarInterval

Domyślnie: interval 30 days
delta.minReaderVersion

Minimalna wymagana wersja czytnika protokołów dla czytnika, który umożliwia odczytywanie z tej tabeli delty.

Usługa Databricks zaleca ręczne skonfigurowanie tej właściwości.

Zobacz artykuł Jak usługa Azure Databricks zarządza zgodnością funkcji usługi Delta Lake?.

Typ danych: Int

Domyślnie: 1
delta.minWriterVersion

Minimalna wymagana wersja składnika zapisywania protokołu dla modułu zapisywania, która umożliwia zapisywanie w tej tabeli delty.

Usługa Databricks zaleca ręczne skonfigurowanie tej właściwości.

Zobacz artykuł Jak usługa Azure Databricks zarządza zgodnością funkcji usługi Delta Lake?.

Typ danych: Int

Domyślnie: 2
delta.randomizeFilePrefixes

true usługa Delta Lake w celu wygenerowania losowego prefiksu dla ścieżki pliku zamiast informacji o partycji.

Typ danych: Boolean

Domyślnie: false
delta.randomPrefixLength

Gdy delta.randomizeFilePrefixes jest ustawiona wartość true, liczba znaków generowanych przez usługę Delta Lake dla losowych prefiksów.

Typ danych: Int

Domyślnie: 2
delta.setTransactionRetentionDuration

Najkrótszy czas trwania, w którym nowe migawki zachowają identyfikatory transakcji (na przykład SetTransactions). Gdy nowa migawka widzi identyfikator transakcji starszy lub równy czasowi trwania określonemu przez tę właściwość, migawka uważa, że wygasła i ignoruje ją. Identyfikator SetTransaction jest używany podczas tworzenia idempotentnego zapisu. Aby uzyskać szczegółowe informacje, zobacz Artykuł Idempotent table writes in foreachBatch (Zapisy w tabeli Idempotent w foreachBatch ).

Typ danych: CalendarInterval

Ustawienie domyślne: (brak)
delta.targetFileSize

Rozmiar pliku docelowego w bajtach lub wyższej jednostki do dostrajania plików. Na przykład:
104857600 (bajty) lub 100mb.

Zobacz Konfigurowanie usługi Delta Lake w celu kontrolowania rozmiaru pliku danych.

Typ danych: String

Ustawienie domyślne: (brak)
delta.tuneFileSizesForRewrites

true aby zawsze używać mniejszych rozmiarów plików dla wszystkich operacji optymalizacji układu danych w tabeli delty.

false aby nigdy nie dostroić się do mniejszych rozmiarów plików, czyli zapobiec aktywowaniu automatycznego wykrywania.

Zobacz Konfigurowanie usługi Delta Lake w celu kontrolowania rozmiaru pliku danych.

Typ danych: Boolean

Ustawienie domyślne: (brak)