Variant shredding gebruiken om de prestaties te optimaliseren

Variantvernippering verbetert de queryprestaties voor VARIANT kolommen door vaak voorkomende velden op te slaan als afzonderlijke kolommen in de onderliggende Parquet-bestanden. Met shredding vermindert u de I/O die is vereist voor het lezen van velden en verbetert u de compressie met behulp van een kolomindeling in plaats van een binaire blob.

Zie VARIANT type, varianttypeondersteuning voor Apache Iceberg en Delta Lake en queryvariantgegevens.

Requirements

Databricks Runtime 17.3 of hoger is vereist voor het lezen en schrijven van versnipperde VARIANT-tabellen. Databricks raadt Databricks Runtime 18.1 of hoger aan voor optimale queryprestaties met het verzamelen van variantstatistieken en het overslaan van gegevens.

Shredding inschakelen

Vanaf Databricks Runtime 17.3 wordt shredding automatisch ingeschakeld wanneer u een nieuwe tabel met een of meer VARIANT kolommen maakt met behulp van CREATE TABLE.

CREATE OR REPLACE TABLE en ALTER TABLE schakel niet automatisch shredding in. Dit voorkomt dat het shreddinggedrag van bestaande tabellen en workloads wordt gewijzigd.

Voor bestaande tabellen kunt u shredding handmatig inschakelen door de tabeleigenschap enableVariantShredding in te stellen op TRUE en uitschakelen door de eigenschap in te stellen op FALSE:

Delta Lake

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

Ijsbergtabel

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

Controleer of shredding is ingeschakeld door te controleren of de tabeleigenschap enableVariantShredding is ingesteld op true.

Uitschakelen van vernietigen voor een specifieke tabel

Als u een specifieke tabel wilt uitsluiten van shredding voor toekomstige schrijfbewerkingen, stelt u de enableVariantShredding tabeleigenschap FALSEin op:

Delta Lake

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

Ijsbergtabel

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

Shredding uit een bestaande tabel verwijderen

Als u shredding in een bestaande tabel wilt verwijderen, verwijdert u de functie met de ALTER TABLE opdracht. Met deze bewerking worden ook versnipperde VARIANT gegevens herschreven naar de niet-versnipperde VARIANT indeling, en wordt de enableVariantShredding tabeleigenschap ingesteld op onwaar.

ALTER TABLE my_table DROP FEATURE "variantShredding";

Limitations

  • Bij het opsnipperen van gegevens wordt enige overhead voor schrijfbewerkingen geïntroduceerd.
  • Als u shredding inschakelt, worden bestaande VARIANT gegevens in een tabel niet automatisch geconverteerd. Deze is alleen van toepassing op gegevens die zijn geschreven nadat de functie is ingeschakeld. Als u bestaande VARIANT gegevens wilt herschrijven, gebruikt u REORG TABLE my_table APPLY (SHRED VARIANT).
  • Shredding is van toepassing op kolommen of VARIANT velden op het hoogste niveau VARIANT in structs, met uitzondering VARIANT van gegevens die zijn opgeslagen in matrices of kaarten.