Udostępnij za pośrednictwem


Referencja właściwości tabeli Delta

Delta Lake rezerwuje właściwości tabeli Delta zaczynają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 Delta są ustawiane dla każdej tabeli. 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ą konfiguracje spark.databricks.delta.autoCompact.enabled 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 w zakresie tabeli dla większości obciążeń.

Dla każdej właściwości tabeli Delta można ustawić domyślną wartość dla nowych tabel, wykorzystując konfigurację SparkSession, co pozwala zastąpić wbudowaną domyślną wartość. 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 konferencja SparkSession conf
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Aby na przykład ustawić właściwość delta.appendOnly = true 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 SET TBLPROPERTIES.

Właściwości tabeli delty

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

Nieruchomość
delta.appendOnly
true, aby ta tabela Delty była tylko do dopisywania. W przypadku dołączania nie można usunąć istniejących rekordów i nie można zaktualizować istniejących wartości.
Zobacz właściwości Tabeli Delty.
Typ danych: Boolean
Domyślnie: false
delta.autoOptimize.autoCompact
auto dla Delta Lake, aby automatycznie zoptymalizować układ plików w tej tabeli Delta.
Zobacz Automatyczne kompaktowanie Delta Lake w usłudze Azure Databricks.
Typ danych: Boolean
Ustawienie domyślne: (brak)
delta.autoOptimize.optimizeWrite
true dla Delta Lake, aby automatycznie zoptymalizować układ plików dla tej tabeli Delta podczas zapisu.
Zobacz Zoptymalizowane zapisy dla Delta Lake na Azure Databricks.
Typ danych: Boolean
Ustawienie domyślne: (brak)
delta.checkpoint.writeStatsAsJson
true, aby usługa Delta Lake zapisywała 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 umożliwia Delta Lake zapisywanie statystyk plików w formacie struktury w punktach kontrolnych dla kolumny stats_parsed oraz zapisywanie wartości partycji jako struktury dla partitionValues_parsed.
Zobacz Zarządzanie statystykami na poziomie kolumny w punktach kontrolnych.
Typ danych: Boolean
Ustawienie domyślne: (brak)
delta.checkpointPolicy
classic dla punktów kontrolnych klasycznego 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 Zmień nazwy i usuń kolumny poprzez mapowanie kolumn w Delta Lake.
Uwaga: Włączenie delta.columnMapping.mode automatycznie włącza
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ść -1 oznacza zbieranie statystyk dla wszystkich kolumn.
Zobacz Pomijanie danych w 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 w Delta Lake.
Typ danych: String
Ustawienie domyślne: (brak)
delta.deletedFileRetentionDuration
Najkrótszy czas, przez jaki Delta Lake przechowuje logicznie usunięte pliki danych przed ich fizycznym usunięciem. To zapobiega awariom w przestarzałych czytnikach po kompaktacjach lub nadpisywaniu 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, 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ć strumień danych o zmianach.
Zobacz Włącz przepływ danych zmian.
Typ danych: Boolean
Domyślnie: false
delta.enableDeletionVectors
true aby włączyć wektory usuwania i predykcyjne operacje wejścia/wyjścia 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 ustalony 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 na logu odbywają się w czasie stałym. Operacje na danych historii są równoległe, ale w miarę wzrostu rozmiaru logu 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 nie zaleca ręcznego konfigurowania 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 zapisu protokołu dla modułu, który pozwala na zapis do tej Tabeli Delta.
Usługa Databricks zaleca, aby nie konfigurować tej właściwości ręcznie.
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 dla usługi 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 na 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, przez jaki nowe migawki będą zachowywać 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 do zapewnienia, że zapisy są idempotentne. Aby uzyskać szczegółowe informacje, sprawdź zapisy w tabeli idempotentnej w foreachBatch.
Typ danych: CalendarInterval
Ustawienie domyślne: (brak)
delta.targetFileSize
Rozmiar pliku docelowego w bajtach lub wyższej jednostce do optymalizacji 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 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)