Een bloeifilterindex maken (Delta Lake op Azure Databricks)

CREATE BLOOMFILTER INDEX
ON [TABLE] table_name
[FOR COLUMNS(columnName1 [OPTIONS(..)], columnName2, ...)]
[OPTIONS(..)]

Maak een bloeifilterindex voor nieuwe of herschreven gegevens; Er worden geen bloeifilters voor bestaande gegevens gebruikt. De opdracht mislukt als de tabelnaam of een van de kolommen niet bestaat. Als Het filteren van de bloem is ingeschakeld voor een kolom, worden de bestaande opties voor het filteren van een bloem vervangen door de nieuwe opties.

Hoewel het niet mogelijk is om een Bloom-filterindex te maken voor gegevens die al zijn geschreven, werkt de opdracht OPTIMIZE de Bloom-filters bij voor gegevens die opnieuw zijn ingedeeld. Daarom kunt u een Bloom-filter invullen door uit te gaan OPTIMIZE op een tabel:

  • Als u de tabel nog niet hebt geoptimaliseerd.
  • Met een andere bestandsgrootte moeten de gegevensbestanden opnieuw worden geschreven.
  • Met een (of een andere , als er al een aanwezig is) die vereist dat de gegevensbestanden ZORDER ZORDER opnieuw worden geschreven.

U kunt het filter Bloom afstemmen door opties te definiëren op kolomniveau of op tabelniveau:

  • fpp: Fout-positieve waarschijnlijkheid. De gewenste fout-positieve snelheid per geschreven Bloom-filter. Dit is van invloed op het aantal bits dat nodig is om één item in het Bloom-filter te zetten en is van invloed op de grootte van het Bloom-filter. De waarde moet groter zijn dan 0 en kleiner zijn dan of gelijk zijn aan 1. De standaardwaarde is 0,1, wat 5 bits per item vereist.
  • numItems: het aantal afzonderlijke items dat het bestand kan bevatten. Deze instelling is belangrijk voor de kwaliteit van filteren, omdat deze van invloed is op het totale aantal bits dat wordt gebruikt in het filter Bloom (aantal items * aantal bits per item). Als deze instelling onjuist is, is het bloom-filter ofwel zeer verspreid gevuld, verspilde schijfruimte en vertragende query's die dit bestand moeten downloaden, of is het te vol en is minder nauwkeurig (hogere FPP). De waarde moet groter zijn dan 0. De standaardwaarde is 1 miljoen items.
  • maxExpectedFpp: De verwachte FPP-drempelwaarde waarvoor een Bloom-filter niet naar de schijf is geschreven. De maximale verwachte fout-positieve waarschijnlijkheid waarop een Bloom-filter wordt geschreven. Als de verwachte FPP groter is dan deze drempelwaarde, is de selectiviteit van het Bloom-filter te laag; De tijd en resources die nodig zijn om het Bloom-filter te gebruiken, wegen op tegen het nut ervan. De waarde moet tussen 0 en 1 zijn. De standaardwaarde is 1.0 (uitgeschakeld).

Deze opties spelen alleen een rol bij het schrijven van de gegevens. U kunt deze eigenschappen op verschillende hiërarchische niveaus configureren: schrijfbewerking, tabelniveau en kolomniveau. Het kolomniveau heeft voorrang op de tabel- en bewerkingsniveaus en het tabelniveau heeft voorrang op het bewerkingsniveau.

Zie Bloeifilterindexen.