Sdílet prostřednictvím


Použijte seskupování liquid pro tabulky

Liquid clustering je technika optimalizace rozložení dat, která nahrazuje partitionování tabulek a ZORDER. Zjednodušuje správu tabulek a optimalizuje výkon dotazů tím, že automaticky uspořádá data na základě klíčů clusteringu.

Na rozdíl od tradičního dělení můžete předefinovat klíče clusteringu bez přepsání existujících dat. Díky tomu se vaše rozložení dat bude vyvíjet společně s měnícími se analytickými potřebami. Clustering Liquid se vztahuje na streamované tabulky i materializovaná zobrazení.

Important

Liquid clustering je obecně dostupné pro tabulky Delta Lake a ve verzi Public Preview pro spravované tabulky Apache Iceberg. Pro tabulky Delta Lake je dostupná podpora GA pro Databricks Runtime 15.2 a vyšší. Databricks doporučuje používat nejnovější databricks Runtime pro zajištění nejlepšího výkonu. Pro tabulky Apache Iceberg se vyžaduje Databricks Runtime 16.4 LTS a vyšší.

Kdy použít seskupování kapalin

Databricks doporučuje liquidní clustering pro všechny nové tabulky, včetně streamingových tabulek a materiálovaných pohledů. Z clusteringu těží zejména následující scénáře:

  • Tabulky, které jsou často filtrované podle sloupců s vysokou kardinalitou
  • Tabulky, které mají nerovnoměrnou distribuci dat
  • Tabulky, které rychle rostou a vyžadují údržbu a optimalizaci.
  • Tabulky, které mají souběžné požadavky na zápis
  • Tabulky, které mají vzory přístupu, které se v průběhu času mění.
  • Tabulky, kde by typický klíč oddílu mohl způsobit, že tabulka má příliš mnoho nebo příliš málo oddílů.

Povolit clustering kapaliny

Můžete povolit liquid clustering na existující tabulce bez oddílů nebo během vytváření tabulky. Klastrování není kompatibilní s particionováním nebo ZORDER. Databricks doporučuje, aby platforma mohla spravovat všechna operace rozložení a optimalizace pro data v tabulce. Po aktivaci kontejnerového clusterování spusťte úlohy OPTIMIZE pro postupné shlukování dat. Viz Postup aktivace clusteringu.

Vytváření tabulek pomocí clusteringu

Pokud chcete povolit shlukování kapalin, přidejte CLUSTER BY frázi do příkazu pro vytvoření tabulky, jak je znázorněno v následujících příkladech. V Databricks Runtime 14.2 a novějších můžete pomocí rozhraní DataFrame API a rozhraní DeltaTable API v Pythonu nebo Scala povolit liquid clustering pro tabulky Delta Lake.

SQL

-- Create an empty Delta table with clustering on col0
CREATE TABLE table1(col0 INT, col1 string) CLUSTER BY (col0);

-- Create table from existing data with clustering
-- Note: CLUSTER BY must appear after table name, not in SELECT clause
CREATE TABLE table2 CLUSTER BY (col0)
AS SELECT * FROM table1;

-- Copy table structure including clustering configuration
CREATE TABLE table3 LIKE table1;

Python

# Create an empty Delta table with clustering on col0
(DeltaTable.create()
  .tableName("table1")
  .addColumn("col0", dataType = "INT")
  .addColumn("col1", dataType = "STRING")
  .clusterBy("col0")  # Single clustering key
  .execute())

# Create clustered table from existing DataFrame
df = spark.read.table("table1")
df.write.clusterBy("col0").saveAsTable("table2")

# Alternative: DataFrameWriterV2 API (DBR 14.2+)
df = spark.read.table("table1")
df.writeTo("table1").using("delta").clusterBy("col0").create()

Scala

// Create an empty Delta table with clustering on col0
DeltaTable.create()
  .tableName("table1")
  .addColumn("col0", dataType = "INT")
  .addColumn("col1", dataType = "STRING")
  .clusterBy("col0")
  .execute()

// Create clustered table from existing DataFrame
val df = spark.read.table("table1")
df.write.clusterBy("col0").saveAsTable("table2")

// Alternative: DataFrameWriterV2 API (DBR 14.2+)
val df = spark.read.table("table1")
df.writeTo("table1").using("delta").clusterBy("col0").create()

Important

Při použití rozhraní API datového rámce k nastavení klíčů clusteringu můžete během vytváření tabulky nebo při použití overwrite režimu (například s operacemi CREATE OR REPLACE TABLE ) zadat pouze sloupce clusteringu. Při použití append režimu nelze změnit klíče clusteringu.

Pokud chcete změnit klíče clusteringu v existující tabulce při připojování dat, použijte příkazy SQL ALTER TABLE k úpravě konfigurace clusteringu odděleně od operací zápisu dat.

V Databricks Runtime 16.0 a novějších můžete vytvářet tabulky s povoleným clusteringem liquid pomocí zápisů strukturovaného streamování. Databricks doporučuje používat Databricks Runtime 16.4 a vyšší, aby byl nejlepší výkon, jak je znázorněno v následujících příkladech:

SQL

CREATE TABLE table1 (
  col0 STRING,
  col1 DATE,
  col2 BIGINT
)
CLUSTER BY (col0, col1);

Python

(spark.readStream.table("source_table")
  .writeStream
  .clusterBy("column_name")
  .option("checkpointLocation", checkpointPath)
  .toTable("target_table")
)

Scala

spark.readStream.table("source_table")
  .writeStream
  .clusterBy("column_name")
  .option("checkpointLocation", checkpointPath)
  .toTable("target_table")

Warning

Tabulky Delta s povoleným liquid clusteringem používají Delta writer verze 7 a verze čtečky 3. Klienti Delta, kteří tyto protokoly nepodporují, nemůžou tyto tabulky číst. Verze protokolu tabulky nelze downgradovat. Viz kompatibilita a protokoly funkcí Delta Lake.

Pokud chcete přepsat výchozí povolení funkcí (například vektory odstranění), přečtěte si téma Přepsání výchozího povolení funkcí (volitelné).

Povolit u existujících tabulek

Pomocí následující syntaxe povolte kapalné shlukování v existující, nepartitionované Delta tabulce.

-- Alter an existing table
ALTER TABLE <table_name>
CLUSTER BY (<clustering_columns>)

U Apache Icebergu musíte explicitně zakázat vektory odstranění a ID řádků při povolování likvidního clusterování v existující spravované tabulce Iceberg.

Note

Výchozí chování nepoužívá clustering na dříve zapsaná data. Chcete-li vynutit reklasifikaci pro všechny záznamy, je nutné použít OPTIMIZE FULL. Viz Vynucení přeclusterování pro všechny záznamy.

Odebrání klíčů clusteringu

Pokud chcete odebrat klíče clusteringu, použijte následující syntaxi:

ALTER TABLE table_name CLUSTER BY NONE;

Volba klíčů clusteringu

Návod

Databricks doporučuje používat automatické dynamické seskupování pro podporované tabulky, které inteligentně vybírající klíče seskupování na základě vzorů dotazů. Viz automatické shlukování kapalin.

Pokyny pro výběr klíčových parametrů

Při ručním zadávání klíčů clusteringu zvolte sloupce na základě sloupců, které se nejčastěji používají ve filtrech dotazů. Klíče clusteringu můžete definovat v libovolném pořadí. Pokud jsou dva sloupce vysoce korelované, stačí jeden z nich zahrnout jenom jako klíč clusteringu.

Můžete zadat až čtyři klíče clusteringu. U menších tabulek (pod 10 TB) může použití více klíčů clusteringu snížit výkon při filtrování v jednom sloupci. Například filtrování pomocí čtyř klíčů je horší než filtrování se dvěma klíči. S rostoucí velikostí tabulky se však tento rozdíl v výkonu u dotazů s jedním sloupcem stává zanedbatelný.

Klíče clusteringu musí být sloupce se shromážděnými statistikami. Ve výchozím nastavení se statistiky shromažďují pro prvních 32 sloupců v tabulce Delta. Viz Určení sloupců statistiky Delta.

Podporované datové typy

Clustering podporuje tyto datové typy pro klíče clusteringu:

  • Date
  • Timestamp
  • TimestampNTZ (Databricks Runtime 14.3 LTS a vyšší)
  • String
  • Celé číslo, Dlouhé, Krátké, Bajt
  • Float (float), Double (dvojitý), Decimal (desetinný)

Migrace z dělení nebo pořadí Z

Pokud převádíte existující tabulku, zvažte následující doporučení:

Aktuální technika optimalizace dat Doporučení pro klíče clusteringu
Dělení ve stylu Hive Používejte partiční sloupce jako klíče seskupení.
Indexování Z-order Použijte sloupce ZORDER BY jako klíče pro seskupování.
Particionování ve stylu Hive a „Z-order“ Používejte oddílové sloupce i sloupce ZORDER BY jako klíče clusteringu.
Vygenerované sloupce pro snížení kardinality (například datum časového razítka) Použijte původní sloupec jako klíč clusteringu a nevytvávejte vygenerovaný sloupec.

automatické shlukování kapalin

Ve verzi Databricks Runtime 15.4 LTS a vyšších můžete aktivovat automatický liquidní clustering pro tabulky Delta spravované službou Unity Catalog. Automatické shlukování liquid umožňuje službě Azure Databricks inteligentní výběr klíčů shlukování pro optimalizaci výkonu dotazů za použití klauzule CLUSTER BY AUTO.

Jak funguje automatické shlukování kapalin

Automatické shlukování kapalin poskytuje inteligentní optimalizaci na základě vašich vzorů využití:

  • Vyžaduje prediktivní optimalizaci: Automatické výběry klíčů a operace clusteringu běží asynchronně jako operace údržby. Viz Prediktivní optimalizace spravovaných tabulek v katalogu Unity.
  • Analyzuje úlohy dotazů: Azure Databricks analyzuje historickou úlohu dotazu v tabulce a identifikuje nejlepší kandidátské sloupce pro clustering.
  • Přizpůsobí se změnám: Pokud se vzory dotazů nebo distribuce dat v průběhu času změní, automatické clusterování liquid vybere nové klíče pro optimalizaci výkonu.
  • Nákladově uvědomělý výběr: Azure Databricks mění klíče clusteringu pouze tehdy, když předpokládané úspory nákladů z vylepšení přeskočení dat převýší náklady na clustering dat.

Automatické shlukování kapalin nemusí vybrat klíče z následujících důvodů:

  • Tabulka je příliš malá, aby byla přínosná pro shlukování kapalin.
  • Tabulka již má efektivní schéma clusteringu, a to buď z předchozích ručních klíčů, nebo přirozené pořadí vložení, které odpovídá vzorům dotazu.
  • Tabulka neobsahuje časté dotazy.
  • Nepoužíváte Databricks Runtime 15.4 LTS nebo novější.

Můžete použít automatické seskupování dat pro všechny tabulky spravované pomocí Katalogu Unity, bez ohledu na data a vlastnosti dotazů. Heuristika rozhoduje, jestli je cenově výhodné vybrat klíče clusteringu.

Kompatibilita verzí DBR

Tabulky můžete číst nebo zapisovat s povoleným automatickým clusteringem ve všech verzích Databricks Runtime, které podporují tekuté clustering. Výběr inteligentního klíče ale závisí na metadatech zavedených v Databricks Runtime 15.4 LTS.

Pomocí databricks Runtime 15.4 LTS nebo vyšší zajistěte, aby automaticky vybrané klíče využívaly všechny vaše úlohy a aby se tyto úlohy při výběru nových klíčů zvažují.

Povolení nebo zakázání automatického seskupení kapalin

Pokud chcete povolit nebo zakázat automatické shlukování kapalin v nové nebo existující tabulce, použijte následující syntaxi:

SQL

-- Create an empty table.
CREATE OR REPLACE TABLE table1(column01 int, column02 string) CLUSTER BY AUTO;

-- Enable automatic liquid clustering on an existing table,
-- including tables that previously had manually specified keys.
ALTER TABLE table1 CLUSTER BY AUTO;

-- Disable automatic liquid clustering on an existing table.
ALTER TABLE table1 CLUSTER BY NONE;

-- Disable automatic liquid clustering by setting the clustering keys
-- to chosen clustering columns or new columns.
ALTER TABLE table1 CLUSTER BY (column01, column02);

Pokud spustíte CREATE OR REPLACE table_name bez zadání CLUSTER BY AUTO a tabulka už existuje a má povoleno automatické tekuté clustering, nastavení AUTO je vypnuto a sloupce pro clustering nebudou zachovány. Chcete-li zachovat automatické shlukování kapalin a všechny dříve vybrané sloupce clusteringu, zahrňte CLUSTER BY AUTO do příkazu replace. Při zachování prediktivní optimalizace se udržuje historické zatížení dotazů pro tabulku, aby se identifikovaly nejlepší shlukovací klíče.

Python

df = spark.read.table("table1")
df.write
  .format("delta")
  .option(“clusterByAuto”, “true”)
  .saveAsTable(...)

# Set clustering columns and auto to provide a hint for initial selection
df.write
  .format("delta")
  .clusterBy("clusteringColumn1", "clusteringColumn2")
  .option("clusterByAuto", "true")
  .saveAsTable(...)

# Using DataFrameWriterV2
df.writeTo(...).using("delta")
  .option("clusterByAuto", "true")
  .create()

# Set clustering columns and auto to provide a hint for initial selection
df.writeTo(...).using("delta")
  .clusterBy("clusteringColumn1", "clusteringColumn2")
  .option("clusterByAuto", "true")
  .create()

# Set clusterByAuto for streaming tables
spark.readStream.table("source_table")
  .writeStream
  .option("clusterByAuto", "true")
  .option("checkpointLocation", checkpointPath)
  .toTable("target_table")

# Specify a hint for clustering columns with both auto and columns
spark.readStream.table("source_table")
  .writeStream
 .clusterBy("column1", "column2")
  .option("clusterByAuto", "true")
  .option("checkpointLocation", checkpointPath)
  .toTable("target_table")

Rozhraní Python API je k dispozici v Databricks Runtime 16.4 a novějších. Při použití .clusterBy společně s .option('clusterByAuto', 'true) je chování následující:

  • Pokud tato funkce nastaví automatické shlukování kapalin poprvé, vždy se respektuje ruční vstup a sloupce pro shlukování v .clusterBy jsou nastaveny.
  • Pokud už se jedná o tabulku s automatickým shlukováním dat kapalin, lze jednou přijmout nápovědu pomocí .clusterBy. Například sloupce určené podle .clusterBy jsou nastaveny pouze v případě, že tabulka ještě nemá žádné clusteringové sloupce.

Python můžete použít jenom při vytváření nebo nahrazování tabulky. Pomocí SQL můžete změnit clusterByAuto stav existující tabulky.

Important

Při použití rozhraní API clusterByAuto datového rámce lze tuto možnost nastavit pouze při použití overwrite režimu. Při použití clusterByAuto režimu nelze nastavitappend. Toto omezení je stejné jako při ručním nastavování sloupců clusteringu – nastavení clusteringu je možné nakonfigurovat pouze při vytváření nebo nahrazování tabulek pomocí overwrite režimu.

Alternativním řešením je změnit clusterByAuto stav existující tabulky při připojování dat pomocí příkazů SQL ALTER TABLE k úpravě konfigurace clusteringu odděleně od operací zápisu dat.

Kontrola povolení automatického clusteringu

Pokud chcete zkontrolovat, jestli je v tabulce zapnuté automatické shlukování kapalin, použijte DESCRIBE TABLE nebo SHOW TBLPROPERTIES.

Pokud je zapnuté automatické shlukování kapalin, je vlastnost clusterByAuto nastavena na hodnotu true. Tato clusteringColumns vlastnost zobrazuje aktuální sloupce clusteringu, které byly automaticky nebo ručně vybrány.

Limitations

Automatické shlukování kapalin není k dispozici pro Apache Iceberg.

Zápis dat do clusterované tabulky

Pokud chcete zapisovat do clusterované tabulky Delta, musíte použít klienta Delta Writer, který podporuje všechny funkce tabulek protokolu zápisu Delta používané clusteringem liquid. K zápisu do clusterované tabulky Iceberg můžete použít rozhraní REST Catalog API katalogu Unity. V Azure Databricks musíte použít Databricks Runtime 13.3 LTS a vyšší.

Operace, které podporují clustrování při zápisu

Mezi operace, které se skupinově zapisují, patří:

  • INSERT INTO operací
  • CTAS a RTAS příkazy
  • COPY INTO z formátu Parquet
  • spark.write.mode("append")

Prahové hodnoty velikosti pro clustering

Clustering při zápisu se aktivuje pouze v případech, kdy data v transakci splňují prahovou hodnotu velikosti. Tyto prahové hodnoty se liší podle počtu sloupců clusteringu a jsou nižší pro spravované tabulky Katalogu Unity než u jiných tabulek Delta.

Počet klastrovacích sloupců Prahová velikost spravovaných tabulek v katalogu Unity Velikost prahové hodnoty pro ostatní tabulky Delta
1 64 MB 256 MB
2 256 MB 1 GB
3 512 MB 2 GB
4 1 GB 4 GB

Vzhledem k tomu, že ne všechny operace aplikují "liquid clustering," Databricks doporučuje časté spuštění OPTIMIZE k zajištění efektivního vytváření clusterů pro všechna data.

Streamování úloh

Úlohy strukturovaného streamování podporují clustering při zápisu, když nastavíte Spark konfiguraci spark.databricks.delta.liquid.eagerClustering.streaming.enabled na true. Clustering pro tyto úlohy se aktivuje jenom v případě, že alespoň jedna z posledních pěti aktualizací streamování překročí prahovou hodnotu velikosti z výše uvedené tabulky.

Jak spustit shlukování

Prediktivní optimalizace automaticky spouští OPTIMIZE příkazy pro povolené tabulky. Viz Prediktivní optimalizace spravovaných tabulek v katalogu Unity. Při použití prediktivní optimalizace doporučuje Databricks zakázat všechny naplánované OPTIMIZE úlohy.

K aktivaci clusteringu musíte použít Databricks Runtime 13.3 LTS nebo vyšší. Pro zrychlení výkonu u velkých tabulek Databricks doporučuje používat Databricks Runtime 17.2 a novější. Na vaší tabulce použijte příkaz OPTIMIZE.

OPTIMIZE table_name;

Clustering u Liquid je inkrementální, což znamená, že data se přepíší pouze podle potřeby, aby vyhovovala datům, která je třeba seskupit. OPTIMIZE nepřepisuje datové soubory pomocí klíčů clusteringu, které neodpovídají datům, která jsou v clusteru.

Pokud nepoužíváte prediktivní optimalizaci, Databricks doporučuje naplánovat pravidelné úlohy k seskupení dat. U tabulek, u kterých dochází k mnoha aktualizacím nebo vkládáním, databricks doporučuje naplánovat OPTIMIZE úlohu každých jednu nebo dvě hodiny. Vzhledem k tomu, že kapalinové seskupování je přírůstkové, většina OPTIMIZE úloh pro seskupené tabulky je zpracována rychle.

Vynutit rekategorizaci pro všechny záznamy

V Databricks Runtime 16.0 a novějších můžete vynutit přeskupení všech záznamů v tabulce pomocí následující syntaxe:

OPTIMIZE table_name FULL;

Important

Příkaz OPTIMIZE FULL podle potřeby přeskupuje všechna existující data. U velkých tabulek, které nebyly dříve clusterovány na zadaných klíčích, může tato operace trvat hodiny.

Spusťte OPTIMIZE FULL při prvním povolení clusteringu nebo změně klíčů clusteringu. Pokud jste dříve spustili OPTIMIZE FULL a nedošlo k žádné změně klíčů clusteringu, OPTIMIZE FULL se spustí stejně jako OPTIMIZE. V tomto scénáři OPTIMIZE se používá přírůstkový přístup a pouze přepisuje soubory, které nebyly dříve komprimovány. Vždy používejte OPTIMIZE FULL k zajištění toho, aby rozložení dat odráželo aktuální klíče clusteringu.

Čtení dat z clusterované tabulky

Data v clusterované tabulce Delta můžete číst pomocí libovolného klienta Delta Lake, který podporuje čtení vektorů odstranění. Pomocí rozhraní API katalogu Iceberg můžete číst data v clusterované tabulce Iceberg. Clustering Liquid zlepšuje výkon dotazů prostřednictvím automatického přeskočení dat při filtrování klíčů clusteringu.

SELECT * FROM table_name WHERE cluster_key_column_name = "some_value";

Správa klíčů clusteringu

Podívejte se, jak je tabulka clusterovaná.

Pomocí DESCRIBE příkazů můžete zobrazit klíče clusteringu pro tabulku, jak je znázorněno v následujících příkladech:

DESCRIBE TABLE table_name;

DESCRIBE DETAIL table_name;

Změna klíčů clusteringu

Klíče clusteringu pro tabulku můžete kdykoli změnit spuštěním ALTER TABLE příkazu, jak je znázorněno v následujícím příkladu:

ALTER TABLE table_name CLUSTER BY (new_column1, new_column2);

Když změníte klíče clusteringu, následné OPTIMIZE operace zápisu používají nový přístup ke clusteringu, ale stávající data se nepřepíší.

Clustering můžete také vypnout nastavením klíčů na NONE, jako v následujícím příkladu:

ALTER TABLE table_name CLUSTER BY NONE;

Nastavení klíčů clusteru na NONE nepřepíše clusterovaná data, ale zabrání budoucím OPTIMIZE operacím v používání klíčů clusteringu.

Použití liquidního clusteringu z externího enginu

Na spravovaných tabulkách Icebergu můžete povolit shlukování kapalin z externích ledových motorů. Pokud chcete povolit liquid shlukování, určete sloupce oddílů při vytváření tabulky. Katalog Unity interpretuje oddíly jako klíče clusteringu. Spusťte například následující příkaz v OSS Sparku:

CREATE OR REPLACE TABLE main.schema.icebergTable
PARTITIONED BY c1;

Můžete zakázat seskupování kapalin.

ALTER TABLE main.schema.icebergTable DROP PARTITION FIELD c2;

Klíče clusteringu můžete změnit pomocí vývoje oddílů Iceberg:

ALTER TABLE main.schema.icebergTable ADD PARTITION FIELD c2;

Pokud specifikujete oddíl prostřednictvím transformace pomocí bucketů, Unity Catalog zahodí tento výraz a použije sloupec jako klíč pro seskupování.

CREATE OR REPLACE TABLE main.schema.icebergTable
PARTITIONED BY (bucket(c1, 10));

Kompatibilita tabulek s clusteringem liquid

Clustering Liquid používá funkce tabulek Delta, které pro čtení a zápis vyžadují konkrétní verze modulu Databricks Runtime. Tabulky vytvořené pomocí clusteringu liquid v Databricks Runtime 14.1 a vyšší používají ve výchozím nastavení kontrolní body v2. S kontrolními body v2 můžete číst a zapisovat tabulky v Databricks Runtime 13.3 LTS a novějších verzích.

Můžete zakázat kontrolní body verze 2 a snížit verzi protokolu tabulky, abyste mohli číst tabulky s liquid clusteringem v Databricks Runtime 12.2 LTS a vyšších. Viz Funkce odstranění tabulky Delta Lake a snížení verze protokolu tabulky.

Přepsat výchozí povolení funkce (volitelné)

Během povolování clusteringu liquid můžete přepsat výchozí funkci tabulky Delta. Zabráníte tak upgradu protokolů čtenáře a zapisovače přidružených k těmto funkcím tabulek. Abyste mohli provést následující kroky, musíte mít existující tabulku:

  1. Slouží ALTER TABLE k nastavení vlastnosti tabulky, která zakazuje jednu nebo více funkcí. Pokud chcete například zakázat vektory odstranění, spusťte následující příkaz:

    ALTER TABLE table_name SET TBLPROPERTIES ('delta.enableDeletionVectors' = false);
    
  2. Povolte liquid clustering v tabulce spuštěním následujícího příkazu:

    ALTER TABLE <table_name>
    CLUSTER BY (<clustering_columns>)
    

Následující tabulka obsahuje informace o funkcích Delta, které můžete přepsat a jak povolení ovlivňuje kompatibilitu s verzemi Databricks Runtime.

Funkce Delta Kompatibilita modulu runtime Vlastnost pro překonání aktivace Dopad zneschopnění na seskupování kapalin
Vektory odstranění Čtení a zápisy vyžadují Databricks Runtime 12.2 LTS a vyšší. 'delta.enableDeletionVectors' = false Zakázání vektorů odstranění zakáže souběžnost na úrovni řádků, což zvyšuje pravděpodobnost konfliktu transakcí a operací souvisejících se seskupováním. Vizte Konflikty zápisu na úrovni řádkové souběžnosti.
DELETE, MERGEa UPDATE příkazy můžou běžet pomaleji.
Sledování řad Operace zápisu vyžadují Databricks Runtime 13.3 LTS nebo vyšší. Je možné číst z jakékoli verze Databricks Runtime. 'delta.enableRowTracking' = false Zakázání sledování řádků zakáže souběžnost na úrovni řádků, což zvyšuje pravděpodobnost konfliktu transakcí a operací shlukování. Vizte Konflikty zápisu na úrovni řádkové souběžnosti.
Kontrolní body V2 Čtení a zápisy vyžadují Databricks Runtime 13.3 LTS a vyšší. 'delta.checkpointPolicy' = 'classic' Žádný vliv na chování clustrování kapalin.

Limitations

  • DBR 15.1 a níže: Clustering při zápisu nepodporuje zdrojové dotazy, které zahrnují filtry, spojení nebo agregace.
  • DBR 15.4 LTS a níže: Pomocí strukturovaného streamovacího zápisu nelze vytvořit tabulku s povoleným liquid clusteringem. Pro psaní dat do existující tabulky s povoleným liquid clusteringem můžete použít strukturované streamování.
  • Apache Iceberg v2: Souběžnost na úrovni řádků není podporována u spravovaných tabulek Iceberg s Apache Iceberg v2, protože vektory odstranění a sledování řádků nejsou podporovány v tabulkách Iceberg.