Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Liquid Clustering vervangt tabelpartitionering en vereenvoudigt beslissingen over de gegevensindeling en ZORDER
optimaliseert de queryprestaties. Het biedt de flexibiliteit om clustersleutels opnieuw te definiëren zonder bestaande gegevens te herschrijven, zodat de gegevensindeling in de loop van de tijd kan worden aangepast aan analytische behoeften. Liquide clustering is van toepassing op zowel streamingtabellen als gerealiseerde weergaven.
Belangrijk
Liquid clustering is algemeen beschikbaar voor Delta Lake-tabellen en in openbare preview voor beheerde Apache Iceberg-tabellen.
Voor alle Delta Lake-tabellen waarvoor liquide clustering is ingeschakeld, raadt Databricks aan om Databricks Runtime 15.2 en hoger te gebruiken. Openbare preview-ondersteuning met beperkingen is beschikbaar in Databricks Runtime 13.3 LTS en hoger. Gelijktijdigheid op rijniveau wordt ondersteund in Databricks Runtime 13.3 LTS en hoger en is algemeen beschikbaar in Databricks Runtime 14.2 en hoger voor alle tabellen waarvoor verwijderingsvectoren zijn ingeschakeld. Bekijk isolatieniveaus en schrijfconflicten in Azure Databricks.
Voor alle Apache Iceberg-tabellen waarvoor liquide clustering is ingeschakeld, is Databricks Runtime 16.4 LTS en hoger vereist.
Waarvoor wordt vloeistofclustering gebruikt?
Databricks raadt vloeibare clustering aan voor alle nieuwe tabellen, waaronder zowel streamingtabellen (ST's) als gerealiseerde weergaven (MV's). Hier volgen enkele voorbeelden van scenario's die profiteren van clustering:
- Tabellen die vaak worden gefilterd op kolommen met hoge kardinaliteit.
- Tabellen met aanzienlijke asymmetrie in gegevensdistributie.
- Tabellen die snel groeien en onderhoud en afstemming vereisen.
- Tabellen met gelijktijdige schrijfvereisten.
- Tabellen met toegangspatronen die na verloop van tijd veranderen.
- Tabellen waarbij een typische partitiesleutel ertoe kan leiden dat de tabel te veel of te weinig partities bevat.
Liquid clustering inschakelen
U kunt vloeistofclustering inschakelen voor een bestaande tabel of tijdens het maken van een tabel. Clustering is niet compatibel met partitionering of ZORDER
en vereist dat u Azure Databricks gebruikt om alle indelings- en optimalisatiebewerkingen voor gegevens in uw tabel te beheren. Nadat vloeistofclustering is ingeschakeld, voert u taken zoals gewoonlijk uit OPTIMIZE
om gegevens incrementeel te clusteren. Zie Hoe clustering te activeren.
Als u liquide clustering wilt inschakelen, voegt u de CLUSTER BY
woordgroep toe aan een instructie voor het maken van tabellen, zoals in de onderstaande voorbeelden:
Notitie
In Databricks Runtime 14.2 en hoger kunt u DataFrame-API's en DeltaTable-API's in Python of Scala gebruiken om liquide clustering in te schakelen voor Delta Lake-tabellen.
SQL
-- Create an empty Delta table
CREATE TABLE table1(col0 INT, col1 string) CLUSTER BY (col0);
-- Using a CTAS statement
CREATE EXTERNAL TABLE table2 CLUSTER BY (col0) -- specify clustering after table name, not in subquery
LOCATION 'table_location'
AS SELECT * FROM table1;
-- Using a LIKE statement to copy configurations
CREATE TABLE table3 LIKE table1;
Voor Apache Iceberg moet u verwijderingsvectoren en rij-id's expliciet uitschakelen bij het inschakelen van Liquid Clustering op een beheerde Iceberg-tabel.
Python
# Create an empty Delta table
(DeltaTable.create()
.tableName("table1")
.addColumn("col0", dataType = "INT")
.addColumn("col1", dataType = "STRING")
.clusterBy("col0")
.execute())
# Using a CTAS statement
df = spark.read.table("table1")
df.write.clusterBy("col0").saveAsTable("table2")
# CTAS using DataFrameWriterV2
df = spark.read.table("table1")
df.writeTo("table1").using("delta").clusterBy("col0").create()
Scala
// Create an empty Delta table
DeltaTable.create()
.tableName("table1")
.addColumn("col0", dataType = "INT")
.addColumn("col1", dataType = "STRING")
.clusterBy("col0")
.execute()
// Using a CTAS statement
val df = spark.read.table("table1")
df.write.clusterBy("col0").saveAsTable("table2")
// CTAS using DataFrameWriterV2
val df = spark.read.table("table1")
df.writeTo("table1").using("delta").clusterBy("col0").create()
In Databricks Runtime 16.0 en hoger kunt u tabellen maken waarvoor liquide clustering is ingeschakeld met behulp van Structured Streaming-schrijfbewerkingen, zoals in de volgende voorbeelden:
:::
SQL
CREATE TABLE table1 (
col0 STRING,
col1 DATE,
col2 BIGINT
)
CLUSTER BY (col0, col1)
TBLPROPERTIES (
'clusterByAuto' = 'true'
);
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")
Waarschuwing
Delta-tabellen die zijn gemaakt met vloeibare clustering hebben bij het aanmaken diverse Delta-tabelfuncties ingeschakeld en maken gebruik van Delta Writer versie 7 en Delta Reader versie 3. U kunt de activering van sommige van deze functies overschrijven. Zie Standaardfunctie-inschakeling overschrijven (optioneel).
Tabelprotocolversies kunnen niet worden gedowngraded en tabellen waarvoor clustering is ingeschakeld, kunnen niet worden gelezen door Delta Lake-clients die niet alle ingeschakelde protocoltabelfuncties van Delta Reader ondersteunen. Bekijk de compatibiliteit en protocollen van Delta Lake-functies.
Schakel liquid clustering in op een bestaande niet-gepartitioneerde Delta-tabel met behulp van de volgende syntaxis:
-- Alter an existing table
ALTER TABLE <table_name>
CLUSTER BY (<clustering_columns>)
Voor Apache Iceberg moet u verwijderingsvectoren en rij-id's expliciet uitschakelen bij het inschakelen van vloeistofclustering op een bestaande beheerde Iceberg-tabel.
Belangrijk
Het standaardgedrag past clustering niet toe op eerder geschreven gegevens. Om alle records opnieuw te clusteren, moet u OPTIMIZE FULL
gebruiken. Zie Force herclustering voor alle records.
Gebruik de volgende syntaxis om clustersleutels te verwijderen:
ALTER TABLE table_name CLUSTER BY NONE;
Automatische vloeistofclustering
In Databricks Runtime 15.4 LTS en hoger kunt u automatische liquide clustering inschakelen voor door Unity Catalog beheerde Delta-tabellen. Als automatische vloeibare clustering is ingeschakeld, kiest Azure Databricks intelligent clusteringsleutels om de queryprestaties te optimaliseren. U schakelt automatische vloeistofclustering in met behulp van de CLUSTER BY AUTO
component.
Wanneer deze functie is ingeschakeld, worden automatische sleutelselectie- en clusterbewerkingen asynchroon uitgevoerd als onderhoudsbewerking en moeten voorspellende optimalisatie voor de tabel worden ingeschakeld. Zie Voorspellende optimalisatie voor beheerde tabellen in Unity Catalog.
Voor het identificeren van clustersleutels analyseert Azure Databricks de historische queryworkload van de tabel en identificeert de beste kandidaatkolommen. Clusteringsleutels worden gewijzigd wanneer de voorspelde kostenbesparingen door gegevensoverslaan opwegen tegen de kosten van gegevensclustering.
Als de manier waarop u gegevens opvraagt in de loop van de tijd verandert of als de queryprestaties veranderingen in uw gegevensdistributies aangeven, selecteert automatische dynamische clustering nieuwe sleutels om de prestaties te optimaliseren.
Als een sleutel niet is geselecteerd door automatische vloeistofclustering, kan dit de volgende reden zijn:
- De tabel is te klein om te profiteren van vloeistofclustering.
- De tabel heeft al een goed clusteringschema. Het heeft bijvoorbeeld goede sleutels die eenmaal eerder zijn toegepast, of de invoegvolgorde presteert al goed voor het opgegeven querypatroon, zoals gegevens die in chronologische volgorde zijn ingevoegd en op tijdstempel worden opgevraagd.
- De tabel heeft geen frequente zoekopdrachten.
- U gebruikt Databricks Runtime 15.4 LTS of hoger niet.
U kunt automatische liquide clustering toepassen voor alle beheerde Unity Catalog-tabellen, ongeacht de gegevens- en querykenmerken. Deze functies bieden intelligente optimalisatie van de gegevensindeling op basis van uw gegevensgebruikspatronen en de heuristiek bepaalt of het voordelig is om clusteringsleutels te selecteren.
Notitie
U kunt tabellen lezen of schrijven waarvoor automatische clustering is ingeschakeld vanuit alle Databricks Runtime-versies die ondersteuning bieden voor liquide clustering. Intelligente sleutelselectie is echter afhankelijk van metagegevens die zijn geïntroduceerd in Databricks Runtime 15.4 LTS. Gebruik Databricks Runtime 15.4 LTS of hoger om ervoor te zorgen dat automatisch geselecteerde sleutels profiteren van al uw workloads en dat deze workloads worden overwogen bij het selecteren van nieuwe sleutels.
Automatische vloeistofclustering in- of uitschakelen
Als u automatische vloeistofclustering wilt in- of uitschakelen voor een nieuwe of bestaande tabel, gebruikt u de volgende syntaxis:
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);
Notitie
Als u CREATE OR REPLACE table_name
uitvoert zonder CLUSTER BY AUTO
op te geven en de tabel al bestaat en automatische vloeistofclustering ingeschakeld is, worden de AUTO
instelling en de clusterkolommen voor de tabel (indien van toepassing) behouden wanneer de tabel wordt vervangen. Voorspellende optimalisatie onderhoudt ook de historische queryworkload voor deze tabel om de beste clusteringsleutels te identificeren.
Python
df = spark.read.table("table1")
df.write
.format("delta")
.option(“clusterByAuto”, “true”)
.saveAsTable(...)
# To set clustering columns and auto, which serves as a way to give a hint
# for the initial selection.
df.write
.format("delta")
.clusterBy("clusteringColumn1", "clusteringColumn2")
.option(“clusterByAuto”, “true”)
.saveAsTable(...)
# Using DataFrameWriterV2
df.writeTo(...).using("delta")
.option(“clusterByAuto”, “true”)
.create()
# To set clustering columns and auto, which serves as a way to give a hint
# for the initial selection.
df.writeTo(...).using("delta")
.clusterBy("clusteringColumn1", "clusteringColumn2")
.option(“clusterByAuto”, “true”)
.create()
# Similar syntax can also be used to set clusterByAuto for streaming tables.
spark.readStream.table("source_table")
.writeStream
.option("clusterByAuto", "true")
.option("checkpointLocation", checkpointPath)
.toTable("target_table")
# Or to specify a hint for the clustering columns by specifying both auto and columns together
spark.readStream.table("source_table")
.writeStream
.clusterBy("column1", "column2")
.option("clusterByAuto", "true")
.option("checkpointLocation", checkpointPath)
.toTable("target_table")
Notitie
De Python-API is beschikbaar in Databricks Runtime 16.4 en hoger.
Wanneer .clusterBy
wordt gebruikt in combinatie met .option('clusterByAuto', 'true)
, dan:
- Als hiermee automatische vloeistofclustering voor de eerste keer wordt ingesteld, zal deze altijd de handmatige invoer respecteren en de clusterkolommen instellen in
.clusterBy
. - Als dit al een tabel is met automatische vloeistofclustering, kan een hint
.clusterBy
eenmaal worden geaccepteerd. De kolommen die zijn opgegeven door.clusterBy
, worden bijvoorbeeld alleen ingesteld als de tabel al geen clusterkolommen heeft ingesteld, hetzij door u of door automatische vloeistofclustering.
U kunt Python alleen gebruiken bij het maken of vervangen van een tabel. Gebruik SQL om de clusterByAuto
status van een bestaande tabel te wijzigen.
Controleren of automatische clustering ingeschakeld is
Om te controleren of een tabel automatische liquid clustering heeft ingeschakeld, gebruikt u DESCRIBE TABLE
of SHOW TBLPROPERTIES
.
Als automatische vloeistofclustering is ingeschakeld, wordt de clusterByAuto
eigenschap ingesteld op true
. De clusteringColumns
eigenschap toont de huidige clusterkolommen die automatisch of handmatig zijn geselecteerd.
Beperkingen
Automatische vloeistofclustering is niet beschikbaar voor Apache Iceberg.
Standaardinstellingen voor inschakelen van functie overschrijven (optioneel)
U kunt standaardgedrag overschrijven dat Delta-tabelfuncties inschakelt tijdens het inschakelen van liquide clustering. Hiermee voorkomt u dat de lezer- en schrijfprotocollen die aan deze tabelfuncties zijn gekoppeld, worden bijgewerkt. U moet een bestaande tabel hebben om de volgende stappen uit te voeren:
Hiermee
ALTER TABLE
stelt u de tabeleigenschap in waarmee een of meer functies worden uitgeschakeld. Als u bijvoorbeeld verwijderingsvectoren wilt uitschakelen, voert u het volgende uit:ALTER TABLE table_name SET TBLPROPERTIES ('delta.enableDeletionVectors' = false);
Schakel vloeistofclustering in de tabel in door het volgende uit te voeren:
ALTER TABLE <table_name> CLUSTER BY (<clustering_columns>)
De volgende tabel bevat informatie over de Delta-functies die u kunt overschrijven en hoe het inschakelen van invloed is op de compatibiliteit met Databricks Runtime-versies.
Delta-functie | Runtime-compatibiliteit | Eigenschap om activering te overschrijven | Impact van uitschakeling op vloeistofclustering |
---|---|---|---|
Verwijderingsvectoren | Lees- en schrijfbewerkingen vereisen Databricks Runtime 12.2 LTS en hoger. | 'delta.enableDeletionVectors' = false |
Gelijktijdigheid op rijniveau is uitgeschakeld, waardoor transacties en clusterbewerkingen waarschijnlijker conflicteren. Zie Write conflicts with row-level concurrency.DELETE , MERGE en UPDATE opdrachten kunnen langzamer worden uitgevoerd. |
Rijvolging | Schrijvers vereisen Databricks Runtime 13.3 LTS en hoger. Kan worden gelezen uit elke Databricks Runtime-versie. | 'delta.enableRowTracking' = false |
Gelijktijdigheid op rijniveau is uitgeschakeld, waardoor transacties en clusterbewerkingen waarschijnlijker conflicteren. Zie Write conflicts with row-level concurrency. |
Controlepunten V2 | Lees- en schrijfbewerkingen vereisen Databricks Runtime 13.3 LTS en hoger. | 'delta.checkpointPolicy' = 'classic' |
Geen invloed op het gedrag van liquide clustering. |
Clusteringsleutels kiezen
Databricks raadt automatische liquide clustering aan voor ondersteunde tabellen. Zie Automatische vloeistofclustering.
Databricks raadt u aan clustersleutels te kiezen op basis van de kolommen die het vaakst worden gebruikt in queryfilters. Clusteringsleutels kunnen in elke volgorde worden gedefinieerd. Als twee kolommen sterk zijn gecorreleerd, hoeft u slechts een van deze kolommen op te nemen als clusteringsleutel.
U kunt maximaal vier clustersleutels opgeven. Voor kleinere tabellen (minder dan 10 TB) kan het gebruik van meer clustersleutels (bijvoorbeeld vier) de prestaties verminderen bij het filteren op één kolom in vergelijking met het gebruik van minder clustersleutels (bijvoorbeeld twee). Naarmate de tabelgrootte toeneemt, is het prestatieverschil met het gebruik van meer clustersleutels voor query's met één kolom echter verwaarloosbaar.
U kunt alleen kolommen opgeven met statistieken die zijn verzameld als clustersleutels. Standaard worden in de eerste 32 kolommen in een Delta-tabel statistieken verzameld. Zie Kolommen voor Delta-statistieken specificeren.
Clustering ondersteunt de volgende gegevenstypen voor clusteringsleutels:
- Datum
- Tijdstempel
- TimestampNTZ (vereist Databricks Runtime 14.3 LTS of hoger)
- Snaar
- Geheel getal
- Lang
- Kort
- zweven
- Dubbel
- Decimaal
- Byte
Als u een bestaande tabel converteert, kunt u de volgende aanbevelingen overwegen:
Huidige techniek voor gegevensoptimalisatie | Aanbeveling voor clustersleutels |
---|---|
Partitionering in Hive-stijl | Gebruik partitiekolommen als clustersleutels. |
Z-volgorde-indexering | Gebruik de ZORDER BY kolommen als clustersleutels. |
Hive-stijl partitioneren en Z-volgorde | Gebruik zowel partitiekolommen als ZORDER BY kolommen als clustersleutels. |
Gegenereerde kolommen om kardinaliteit te verminderen (bijvoorbeeld datum voor een tijdstempel) | Gebruik de oorspronkelijke kolom als clustersleutel en maak geen gegenereerde kolom. |
Gegevens schrijven naar een geclusterde tabel
Als u naar een geclusterde Delta-tabel wilt schrijven, moet u een Delta Writer-client gebruiken die alle functies van Delta-schrijfprotocoltabellen ondersteunt die worden gebruikt door liquide clustering. Als u naar een geclusterde Iceberg-tabel wilt schrijven, kunt u de Iceberg REST Catalog-API van Unity Catalog gebruiken. In Azure Databricks moet u Databricks Runtime 13.3 LTS en hoger gebruiken.
Bewerkingen die clusteren bij het schrijven zijn onder andere:
-
INSERT INTO
bewerkingen -
CTAS
enRTAS
uitspraken -
COPY INTO
vanuit Parquet-formaat spark.write.mode("append")
Gestructureerde streaming-schrijfbewerkingen activeren nooit clustering bij schrijven. Aanvullende beperkingen zijn van toepassing. Zie beperkingen.
Clustering bij schrijven wordt alleen geactiveerd wanneer de gegevens in de transactie voldoen aan een groottedrempel. Deze drempelwaarden variëren per aantal clusterkolommen en zijn lager voor beheerde Unity Catalog-tabellen dan andere Delta-tabellen.
Aantal clusterkolommen | Drempelwaarde voor beheerde tabellen in Unity Catalog | Drempelwaarde voor andere Delta-tabellen |
---|---|---|
1 | 64 MB | 256 MB |
2 | 256 MB | 1 GB |
3 | 512 MB | 2 GB |
4 | 1 GB | 4 GB |
Omdat niet alle bewerkingen liquid clustering toepassen, beveelt Databricks aan om OPTIMIZE
regelmatig uit te voeren, zodat alle gegevens efficiënt worden geclusterd.
Hoe clustering te activeren
Voorspellende optimalisatie voert OPTIMIZE automatisch opdrachten uit voor ingeschakelde tabellen. Zie Voorspellende optimalisatie voor beheerde tabellen in Unity Catalog. Wanneer u predictive optimization gebruikt, raadt Databricks aan om geplande OPTIMIZE taken uit te schakelen.
Als u clustering wilt activeren, moet u Databricks Runtime 13.3 LTS of hoger gebruiken. Gebruik de OPTIMIZE
opdracht in de tabel:
OPTIMIZE table_name;
Liquid clustering is incrementeel, wat betekent dat gegevens alleen worden herschreven als dat nodig is om tegemoet te komen aan gegevens die moeten worden geclusterd. Gegevensbestanden met clustersleutels die niet overeenkomen met de gegevens die moeten worden geclusterd, worden niet herschreven.
Als u geen voorspellende optimalisatie gebruikt, raadt Databricks aan om regelmatige OPTIMIZE
taken te plannen voor het clusteren van gegevens. Voor tabellen met veel updates of invoegingen raadt Databricks aan om elke één of twee uur een OPTIMIZE
taak te plannen. Omdat liquide clustering incrementeel is, worden de meeste OPTIMIZE
taken voor geclusterde tabellen snel uitgevoerd.
Forceer herkoppeling voor alle records
In Databricks Runtime 16.0 en hoger kunt u het opnieuw clusteren van alle records in een tabel afdwingen met de volgende syntaxis:
OPTIMIZE table_name FULL;
Belangrijk
Als u OPTIMIZE FULL
uitvoert, worden alle bestaande gegevens indien nodig opnieuw geclusterd. Voor grote tabellen die nog niet eerder zijn geclusterd op de opgegeven sleutels, kan deze bewerking uren duren.
Voer OPTIMIZE FULL
uit wanneer u clustering voor de eerste keer inschakelt of clusteringsleutels wijzigt. Als u eerder OPTIMIZE FULL
hebt uitgevoerd en er geen wijzigingen zijn aangebracht in clustersleutels, wordt OPTIMIZE FULL
hetzelfde uitgevoerd als OPTIMIZE
. In dit scenario OPTIMIZE
wordt gebruikgemaakt van een incrementele benadering en worden alleen bestanden herschreven die nog niet eerder zijn gecomprimeerd. Gebruik altijd OPTIMIZE FULL
om ervoor te zorgen dat de gegevensindeling de huidige clusteringsleutels weerspiegelt.
Gegevens uit een geclusterde tabel lezen
U kunt gegevens lezen in een geclusterde Delta-tabel met behulp van een Delta Lake-client die leesverwijderingsvectoren ondersteunt. Met behulp van de REST Catalog-API van Iceberg kunt u gegevens lezen in een geclusterde Iceberg-tabel.
SELECT * FROM table_name WHERE cluster_key_column_name = "some_value";
Wijzig clusteringssleutels
U kunt clustersleutels voor een tabel op elk gewenst moment wijzigen door een ALTER TABLE
opdracht uit te voeren, zoals in het volgende voorbeeld:
ALTER TABLE table_name CLUSTER BY (new_column1, new_column2);
Wanneer u clustersleutels wijzigt, gebruiken volgende OPTIMIZE
bewerkingen en schrijfbewerkingen de nieuwe clusteringbenadering, maar worden bestaande gegevens niet opnieuw geschreven.
U kunt clustering ook uitschakelen door de sleutels in te stellen op NONE
, zoals in het volgende voorbeeld:
ALTER TABLE table_name CLUSTER BY NONE;
Als u clustersleutels instelt op NONE
, worden gegevens die al zijn geclusterd niet herschreven, maar toekomstige OPTIMIZE
-bewerkingen gebruiken geen clusteringsleutels meer.
Liquid clustering van een externe engine gebruiken
U kunt vloeistofclustering inschakelen op beheerde Iceberg-tabellen van externe Iceberg-engines. Als u vloeistofclustering wilt inschakelen, geeft u partitiekolommen op bij het maken van een tabel. Unity Catalog interpreteert de partities als clusteringsleutels. Voer bijvoorbeeld de onderstaande opdracht uit in OSS Spark:
CREATE OR REPLACE TABLE main.schema.icebergTable
PARTITIONED BY c1;
U kunt liquid clustering uitschakelen:
ALTER TABLE main.schema.icebergTable DROP PARTITION FIELD c2;
U kunt clusteringsleutels wijzigen met behulp van de evolutie van iceberg-partities:
ALTER TABLE main.schema.icebergTable ADD PARTITION FIELD c2;
Als u een partitie opgeeft met behulp van een buckettransformatie, wordt de expressie in Unity Catalog verwijderd en wordt de kolom gebruikt als clusteringsleutel:
CREATE OR REPLACE TABLE main.schema.icebergTable
PARTITIONED BY (bucket(c1, 10));
Bekijken hoe de tabel is geclusterd
U kunt opdrachten gebruiken DESCRIBE
om de clustersleutels voor een tabel weer te geven, zoals in de volgende voorbeelden:
DESCRIBE TABLE table_name;
DESCRIBE DETAIL table_name;
Compatibiliteit voor tabellen met vloeibare clustering
Tabellen die zijn gemaakt met liquide clustering in Databricks Runtime 14.1 en hoger, gebruiken standaard v2-controlepunten. U kunt tabellen lezen en schrijven met v2-controlepunten in Databricks Runtime 13.3 LTS en hoger.
U kunt v2-controlepunten uitschakelen en tabelprotocollen downgraden om tabellen te lezen met liquide clustering in Databricks Runtime 12.2 LTS en hoger. Zie Een Delta Lake-tabelfunctie verwijderen en het tabelprotocol degraderen.
Beperkingen
De volgende beperkingen gelden:
- In Databricks Runtime 15.1 en ouder ondersteunt clustering bij schrijven geen bronquery's met filters, joins of aggregaties.
- Workloads voor gestructureerd streamen bieden geen ondersteuning voor clustering bij schrijven.
- In Databricks Runtime 15.4 LTS en lager kunt u geen tabel maken waarvoor liquide clustering is ingeschakeld met behulp van een Structured Streaming-schrijfbewerking. U kunt Structured Streaming gebruiken om gegevens naar een bestaande tabel te schrijven waarvoor liquide clustering is ingeschakeld.
- Gelijktijdigheid op rijniveau wordt niet ondersteund voor beheerde Iceberg-tabellen, omdat verwijderingsvectoren en het bijhouden van rijen niet worden ondersteund in Iceberg-tabellen.