HCatalog - Indizes

Index erstellen

Ein Index ist nichts anderes als ein Zeiger auf eine bestimmte Spalte einer Tabelle. Das Erstellen eines Index bedeutet das Erstellen eines Zeigers auf eine bestimmte Spalte einer Tabelle. Die Syntax lautet wie folgt:

CREATE INDEX index_name
ON TABLE base_table_name (col_name, ...)
AS 'index.handler.class.name'
[WITH DEFERRED REBUILD]
[IDXPROPERTIES (property_name = property_value, ...)]
[IN TABLE index_table_name]
[PARTITIONED BY (col_name, ...)][
   [ ROW FORMAT ...] STORED AS ...
   | STORED BY ...
]
[LOCATION hdfs_path]
[TBLPROPERTIES (...)]

Beispiel

Nehmen wir ein Beispiel, um das Konzept des Index zu verstehen. Verwenden Sie das gleicheemployee Tabelle, die wir zuvor mit den Feldern ID, Name, Gehalt, Bezeichnung und Abteilung verwendet haben. Erstellen Sie einen Index mit dem Namen index_salary auf der salary Spalte der employee Tabelle.

Die folgende Abfrage erstellt einen Index -

./hcat –e "CREATE INDEX inedx_salary ON TABLE employee(salary)
AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler';"

Es ist ein Zeiger auf die salarySäule. Wenn die Spalte geändert wird, werden die Änderungen unter Verwendung eines Indexwerts gespeichert.

Index löschen

Die folgende Syntax wird verwendet, um einen Index zu löschen:

DROP INDEX <index_name> ON <table_name>

Die folgende Abfrage löscht den Index index_salary -

./hcat –e "DROP INDEX index_salary ON employee;"