Optymalizowanie wydajności przy użyciu rozdrabniania wariantów

Fragmentacja wariantów poprawia wydajność zapytań dla kolumn VARIANT, poprzez przechowywanie często występujących pól jako oddzielnych kolumn w bazowych plikach Parquet. Rozbijanie danych zmniejsza liczbę operacji wejścia/wyjścia wymaganych do odczytu pól i poprawia kompresję dzięki zastosowaniu formatu kolumnowego zamiast binarnego obiektu BLOB.

Zobacz VARIANT typ, obsługa typu Variant dla Apache Iceberg i Delta Lake oraz wykonywanie zapytań na danych typu Variant.

Requirements

Środowisko Databricks Runtime w wersji 17.3 lub nowszej jest wymagane do odczytu i zapisu rozdrobnionych tabel VARIANT. Aby uzyskać optymalną wydajność zapytań przy użyciu zbierania statystyk wariantów i pomijania danych, usługa Databricks Zaleca użycie środowiska Databricks Runtime w wersji 18.1 lub nowszej.

Włączanie rozdrabniania

Począwszy od środowiska Databricks Runtime 17.3, niszczanie jest automatycznie włączane podczas tworzenia nowej tabeli z co najmniej jedną VARIANT kolumną przy użyciu polecenia CREATE TABLE.

CREATE OR REPLACE TABLE i ALTER TABLE nie włączaj automatycznie rozdrabniania. Pozwala to uniknąć zmiany zachowania rozdrabniania istniejących tabel i obciążeń.

W przypadku istniejących tabel możesz ręcznie włączyć dzielenie, ustawiając właściwość tabeli enableVariantShredding na wartość TRUE, a wyłączyć je, ustawiając tę właściwość na FALSE:

Jezioro Delta

ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');

Tabela Iceberg

ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'true');

Sprawdź, czy niszczenie jest włączone, sprawdzając, czy właściwość enableVariantShredding tabeli jest ustawiona na true.

Wyłącz fragmentację dla określonej tabeli

Aby wykluczyć określoną tabelę z dzielenia podczas przyszłych zapisów, ustaw właściwość tabeli enableVariantShredding na FALSE:

Jezioro Delta

ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');

Tabela Iceberg

ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');

Usuń partycjonowanie z istniejącej tabeli

Aby usunąć rozdrabnianie istniejącej tabeli, wyłącz tę funkcję za pomocą polecenia ALTER TABLE. Ta operacja ponownie zapisuje rozdrobnione dane VARIANT w miejscu na format nierozdrobniony VARIANT i ustawia właściwość tabeli enableVariantShredding na fałsz.

ALTER TABLE my_table DROP FEATURE "variantShredding";

Limitations

  • Niszczanie danych wprowadza pewne obciążenie związane z zapisami.
  • Włączenie rozdrabniania nie powoduje automatycznej konwersji istniejących VARIANT danych w tabeli. Dotyczy tylko danych zapisanych po włączeniu funkcji. Aby ponownie napisać istniejące VARIANT dane, użyj polecenia REORG TABLE my_table APPLY (SHRED VARIANT).
  • Niszczanie ma zastosowanie do kolumn lub pól na najwyższym poziomie w strukturach, z wyłączeniem danych przechowywanych wewnątrz tablic lub map.