Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Variantstrimning förbättrar frågeprestanda för VARIANT kolumner genom att lagra vanliga fält som separata kolumner i de underliggande Parquet-filerna. Fragmentering minskar det I/O som krävs för att läsa fält och förbättrar komprimering med hjälp av ett kolumnformat i stället för en binär blob.
Se VARIANT typ, Varianttypstöd för Apache Iceberg och Delta Lake och Frågevariantdata.
Requirements
Databricks Runtime 17.3 eller senare krävs för att läsa och skriva strimlade VARIANT-tabeller. Databricks rekommenderar Databricks Runtime 18.1 eller senare för optimala frågeprestanda med insamling av variantstatistik och datahopp.
Aktivera fragmentering
Från och med Databricks Runtime 17.3 aktiveras shredding automatiskt när du skapar en ny tabell med en eller flera kolumner av typen VARIANT med hjälp av CREATE TABLE.
CREATE OR REPLACE TABLE och ALTER TABLE aktivera inte automatiskt fragmentering. På så sätt undviker du att ändra beteendet för fragmentering av befintliga tabeller och arbetsbelastningar.
För befintliga tabeller kan du manuellt aktivera shredding genom att ställa in tabellegenskapen enableVariantShredding på TRUE och inaktivera det genom att ställa in egenskapen på FALSE:
Delta Lake
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');
Isbergsbord
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'true');
Kontrollera att fragmentering är aktiverat genom att kontrollera att tabellegenskapen enableVariantShredding är inställd på true.
Välj bort shredding för en viss tabell
Om du vill undanta en specifik tabell från fragmentering av framtida skrivningar anger du tabellegenskapen enableVariantShredding till FALSE:
Delta Lake
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');
Isbergsbord
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');
Ta bort fragmentering från en befintlig tabell
Om du vill ta bort fragmentering i en befintlig tabell släpper du funktionen med ALTER TABLE kommandot . Den här åtgärden skriver också om strimlade VARIANT data på plats till det ostrimlade VARIANT formatet och anger tabellegenskapen enableVariantShredding till false.
ALTER TABLE my_table DROP FEATURE "variantShredding";
Limitations
- Fragmentering av data medför vissa omkostnader vid skrivningar.
- Aktivering av fragmentering konverterar inte automatiskt befintliga
VARIANTdata i en tabell. Det gäller endast för data som skrivs när funktionen har aktiverats. Om du vill skriva om befintligaVARIANTdata använder duREORG TABLE my_table APPLY (SHRED VARIANT). - Fragmentering gäller för kolumner eller fält på högsta nivå i structs, exklusive data som lagras i matriser eller kartor.