Skapa Bloom-filterindex (Delta Lake på Azure Databricks)

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

Skapa ett Bloom-filterindex för nya eller omskrivna data; Det skapar inte Bloom-filter för befintliga data. Kommandot misslyckas om tabellnamnet eller någon av kolumnerna inte finns. Om Bloom-filtrering har aktiverats för en kolumn ersätts befintliga Bloom-filteralternativ med de nya alternativen.

Även om det inte går att skapa ett Bloom-filterindex för data som redan har skrivits uppdaterar OPTIMIZE-kommandot Bloom-filter för data som är omorganiserade. Därför kan du återfylla ett Bloom-filter genom att OPTIMIZE köra på en tabell:

  • Om du inte tidigare har optimerat tabellen.
  • Med en annan filstorlek, vilket kräver att datafilerna skrivs om.
  • Med ZORDER en (eller en annan ZORDER , om det redan finns), kräver att datafilerna skrivs om.

Du kan finjustera Bloom-filtret genom att definiera alternativ på kolumnnivå eller tabellnivå:

  • fpp: Falsk positiv sannolikhet. Önskat antal falska positiva resultat per skrivet Bloom-filter. Detta påverkar antalet bitar som behövs för att placera ett enskilt objekt i Bloom-filtret och påverkar storleken på Bloom-filtret. Värdet måste vara större än 0 och mindre än eller lika med 1. Standardvärdet är 0,1, vilket kräver 5 bitar per objekt.
  • numItems: Antalet distinkta objekt som filen kan innehålla. Den här inställningen är viktig för filtreringskvaliteten eftersom den påverkar det totala antalet bitar som används i Bloom-filtret (antal objekt * antal bitar per objekt). Om den här inställningen är felaktig är Bloom-filtret antingen mycket gles ifylld, slösar diskutrymme och gör frågor långsammare som måste ladda ned den här filen, eller så är den för full och är mindre exakt (högre FPP). Värdet måste vara större än 0. Standardvärdet är 1 miljon objekt.
  • maxExpectedFpp: Det förväntade FPP-tröskelvärdet för vilket ett Bloom-filter inte skrivs till disk. Den maximala förväntade falska positiva sannolikheten för att ett Bloom-filter skrivs. Om den förväntade FPP:en är större än det här tröskelvärdet är Bloom-filtrets selektivitet för lågt. den tid och de resurser det tar att använda Bloom-filtret överväger dess användbarhet. Värdet måste vara mellan 0 och 1. Standardvärdet är 1.0 (inaktiverat).

De här alternativen spelar bara roll när du skriver data. Du kan konfigurera dessa egenskaper på olika hierarkiska nivåer: skrivåtgärd, tabellnivå och kolumnnivå. Kolumnnivån har företräde framför tabell- och åtgärdsnivåer, och tabellnivån har företräde framför åtgärdsnivån.

Se Bloom-filterindex.