Adatkihagyási index

Fontos

DATASKIPPING INDEX a Databricks Runtime 7.0-ban el lett távolítva. Javasoljuk, hogy inkább Delta-táblákat használjon, amelyek továbbfejlesztett adatkiugrási képességeket kínálnak.

Fontos

Ez a dokumentáció ki lett állítva, és lehet, hogy nem frissül. A tartalomban említett termékek, szolgáltatások vagy technológiák már nem támogatottak. Lásd: A Delta Lake adatkihagyása.

Leírás

A partíciók metszése mellett a Databricks Runtime egy másik funkciót is tartalmaz, amely célja, hogy elkerülje az irreleváns adatok vizsgálatát, nevezetesen az adatkimaradási indexet. Fájlszintű statisztikákat használ a fájlrészletesség további kihagyásához. Ez a Hive-stílusú particionálással működik, de nem függ attól.

Az adatok kihagyásának hatékonysága az adatok jellemzőitől és fizikai elrendezésétől függ. Mivel a kihagyás a fájlrészletességen történik, fontos, hogy az adatok horizontálisan particionálva legyen több fájl között. Ez általában több hozzáfűző feladat, (shuffle) particionálás, gyűjtőzés és/vagy a .spark.sql.files.maxRecordsPerFile A legjobban a rendezett gyűjtőkkel (df.write.bucketBy(...).sortBy(...).saveAsTable(...) / CREATE TABLE ... CLUSTERED BY ... SORTED BY ...), illetve a partíciókulcsokkal korrelált oszlopokkal (például , ) rendelkező táblákon működik a legjobban, companyID - stockPricede akkor is, brandName - modelNameha az adatok éppen valamilyen rendezést/fürtözést mutatnak (például orderID, ). bitcoinValue

Feljegyzés

Ez a bétaverzió számos fontos korlátozással rendelkezik:

  • Ez a bejelentkezés: manuálisan kell engedélyezni, táblázatonkénti alapon.
  • Ez csak SQL: nincs DataFrame API hozzá.
  • A táblák indexelése után az azt követő INSERT vagy a műveletek hatása nem garantált, amíg az index explicit reFRESHed ADD PARTITION nem lesz látható.

SQL-szintaxis

Index létrehozása

CREATE DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

Engedélyezi az adatok kihagyását az adott táblán az első (azaz bal szélső) N támogatott oszlopok esetében, ahol az N-t az (alapértelmezett: 32) vezérlispark.databricks.io.skipping.defaultNumIndexedCols.

partitionBy az oszlopok mindig indexelve vannak, és nem számítanak bele ebbe az N-be.

Index létrehozása oszlopokhoz

CREATE DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
    FOR COLUMNS (col1, ...)

Engedélyezi az adatok kihagyását az adott táblában a megadott oszlopok listájához. A fentiekhez hasonlóan az összes partitionBy oszlop mindig indexelve lesz a megadottakon kívül.

Index leírása

DESCRIBE DATASKIPPING INDEX [EXTENDED] ON [TABLE] [db_name.]table_name

Megjeleníti az adott tábla mely oszlopait indexeli, valamint az összegyűjtött fájlszintű statisztikák megfelelő típusait.

Ha EXTENDED meg van adva, megjelenik egy "effectiveness_score" nevű harmadik oszlop, amely hozzávetőlegesen jelzi, hogy a DataSkipping mennyire lesz hasznos a megfelelő oszlopok szűrői számára.

Teljes index frissítése

REFRESH DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

Újraépíti a teljes indexet. Vagyis a rendszer újra indexeli a tábla összes partícióját.

Partíciók frissítése

REFRESH DATASKIPPING INDEX ON [TABLE] [db_name.]table_name
    PARTITION (part_col_name1[=val1], part_col_name2[=val2], ...)

Csak a megadott partíciókat indexeli újra. Ennek a műveletnek általában gyorsabbnak kell lennie, mint az index teljes frissítése.

Index elvetése

DROP DATASKIPPING INDEX ON [TABLE] [db_name.]table_name

Letiltja az adatok kihagyását az adott táblában, és törli az összes indexadatot.