nosql:hive_erste_schritte
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
nosql:hive_erste_schritte [2014/09/24 19:23] – [Indexes] gpipperr | nosql:hive_erste_schritte [2014/09/24 19:49] (aktuell) – gpipperr | ||
---|---|---|---|
Zeile 13: | Zeile 13: | ||
- | Per HiveQL Abfragesprache werden diese MapAndReduce | + | Per HiveQL Abfragesprache werden diese MapReduce |
Wichtiges Grundkonzept - **Schema-on-Write** | Wichtiges Grundkonzept - **Schema-on-Write** | ||
Zeile 47: | Zeile 47: | ||
Tabellen können partitioniert werden, Partitionen müssen aber beim Laden manuell angegeben werden | Tabellen können partitioniert werden, Partitionen müssen aber beim Laden manuell angegeben werden | ||
- | Ein Index auf die Daten kann erstellt werden, dazu stehen drei Index Arten zur Verfügung, compact, bitmap und custom. | + | Ein Index auf die Daten kann erstellt werden, dazu stehen drei Index Arten zur Verfügung |
SQL Fähigkeiten in v13: | SQL Fähigkeiten in v13: | ||
- | * Select mit inner Join und /left/right/full out Join werden unterstützt | + | * Select mit inner Join und left – right - full outer Join werden unterstützt |
- | * Die rechts stehende Tabelle ist die Treiber Tabelle, d.h. sollte die kleinere Tabelle im Join sein! | + | * Die rechts stehende Tabelle ist die Treiber Tabelle, d.h. |
- | * Subselect mit Alias, korrelierte Subquieres | + | * Subselect mit Alias und |
* Nur nach Spalten in der Ergebnis Liste kann mit "Order By" sortiert werden | * Nur nach Spalten in der Ergebnis Liste kann mit "Order By" sortiert werden | ||
* order by wird über nur einen Reducer im Job implementiert - Performance beachten | * order by wird über nur einen Reducer im Job implementiert - Performance beachten | ||
* Gruppenfunktionen mit "group by" und " | * Gruppenfunktionen mit "group by" und " | ||
* Insert nur als Bulck Operation möglich | * Insert nur als Bulck Operation möglich | ||
- | * Kein eigentliches DML auf einzel | + | * Kein eigentliches DML auf Einzel |
* Java User Defined Function (UDF) können/ | * Java User Defined Function (UDF) können/ | ||
* siehe hier ein Beispiel => http:// | * siehe hier ein Beispiel => http:// | ||
Zeile 161: | Zeile 161: | ||
====Anlegen einer Tabelle mit Standard SQL==== | ====Anlegen einer Tabelle mit Standard SQL==== | ||
- | Ein Tabelle in Hive ist eine Datei auf dem HDFS. | + | Eine Tabelle in Hive ist eine Datei auf dem HDFS. |
Aber ungewohnt für Oracle DBA's, beim Anlegen der Tabelle wird definiert, wie die dazu passende Daten Datei aufgebaut sein sollte (Schema on Read Konzept). | Aber ungewohnt für Oracle DBA's, beim Anlegen der Tabelle wird definiert, wie die dazu passende Daten Datei aufgebaut sein sollte (Schema on Read Konzept). | ||
Zeile 212: | Zeile 212: | ||
- | Daten direkt aus einer Datei in die Hive Table einlesen, | + | Daten direkt aus einer Datei in die Hive Table einlesen, die zuvor auf dem HDFS abgelegt |
<code bash> | <code bash> | ||
Zeile 226: | Zeile 226: | ||
</ | </ | ||
- | **Hinweis** => Das original | + | **Hinweis** => Das Original |
Zeile 304: | Zeile 304: | ||
==== Partitionierte Tabellen==== | ==== Partitionierte Tabellen==== | ||
- | Hive kann die Daten hinter der Tabellendefinition in eigene Dateien pro Partition | + | Hive kann die Daten hinter der Tabellendefinition in eigene Dateien pro Partition |
Die Spalte wird dann nicht mehr in der Spaltendefinition der Tabelle angeben! | Die Spalte wird dann nicht mehr in der Spaltendefinition der Tabelle angeben! | ||
Zeile 318: | Zeile 318: | ||
</ | </ | ||
- | Laden: | + | ===Laden=== |
**Manuell**: | **Manuell**: | ||
Zeile 341: | Zeile 341: | ||
Achtung: Letzte Spalte wird für die Partitionierung verwendet, auch wenn diese NICHTS mit der gewünschten Partitionierung zu tun hat! | Achtung: Letzte Spalte wird für die Partitionierung verwendet, auch wenn diese NICHTS mit der gewünschten Partitionierung zu tun hat! | ||
+ | |||
+ | ===Abfragen=== | ||
+ | |||
+ | Im " | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | # | ||
+ | |||
+ | show partitions emp; | ||
+ | |||
+ | |||
+ | set hive.mapred.mode=nonstrict; | ||
+ | |||
+ | select * from emp; | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
====Indexes==== | ====Indexes==== | ||
Zeile 379: | Zeile 398: | ||
==== Debugging ==== | ==== Debugging ==== | ||
- | Schlägt etwas fehlt kann im Hive Clinet | + | Schlägt etwas fehlt kann im Hive Client |
<code bash> | <code bash> |
nosql/hive_erste_schritte.txt · Zuletzt geändert: 2014/09/24 19:49 von gpipperr