Suche…


SEQUENCEFILE

Speichern Sie Daten in SEQUENCEFILE, wenn die Daten komprimiert werden müssen. Sie können mit Gzip oder Bzip2 komprimierte Textdateien direkt in eine als TextFile gespeicherte Tabelle importieren. Die Komprimierung wird automatisch erkannt und die Datei wird während der Abfrageausführung schnell dekomprimiert.

CREATE TABLE raw_sequence (line STRING)
STORED AS SEQUENCEFILE;

ORC

Das ORC-Dateiformat (Optimized Row Columnar) bietet eine äußerst effiziente Möglichkeit, Hive-Daten zu speichern. Es wurde entwickelt, um die Einschränkungen der anderen Hive-Dateiformate zu überwinden. Die Verwendung von ORC-Dateien verbessert die Leistung, wenn Hive Daten liest, schreibt und verarbeitet. ORC-Dateien können einfache Indizes und Bloom-Filter enthalten.

Siehe: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC

ORC ist ein empfohlenes Format zum Speichern von Daten in der HortonWorks-Distribution.

CREATE TABLE tab_orc (col1 STRING,
                      col2 STRING,
                      col3 STRING)
STORED AS ORC
TBLPROPERTIES (
               "orc.compress"="SNAPPY",
               "orc.bloom.filter.columns"="col1",
               "orc.create.index" = "true" 
              ) 

So ändern Sie eine Tabelle, sodass neue Partitionen der Tabelle als ORC-Dateien gespeichert werden:

ALTER TABLE T SET FILEFORMAT ORC; 

Ab Hive 0.14 können Benutzer eine effiziente Zusammenführung kleiner ORC-Dateien CONCATENATE indem sie CONCATENATE Befehl CONCATENATE für ihre Tabelle oder Partition ausgeben. Die Dateien werden auf der Stripe-Ebene zusammengefügt, ohne dass eine erneute Registrierung erforderlich ist.

ALTER TABLE T [PARTITION partition_spec] CONCATENATE;

PARKETT

Säulenspeicherformat für Parkett in Hive 0.13.0 und höher. Parkett wurde von Grund auf für komplexe verschachtelte Datenstrukturen entwickelt und verwendet den im Dremel-Papier beschriebenen Algorithmus zur Datensatzreduzierung und -montage. Wir glauben, dass dieser Ansatz der einfachen Abflachung von verschachtelten Namensräumen überlegen ist.

Parkett unterstützt sehr effiziente Kompressions- und Codierungsschemata. Mehrere Projekte haben gezeigt, wie sich die richtige Auswirkung der Anwendung des richtigen Kompressions- und Codierungsschemas auf die Daten auswirkt. Parkett ermöglicht die Festlegung von Kompressionsschemata auf Spaltenebene und ist zukunftssicher, so dass beim Erfassen und Implementieren weitere Codierungen hinzugefügt werden können.

Parkett wird als Dateiformat mit Impala-Tabellen in Cloudera-Distributionen empfohlen.

Siehe: http://parquet.apache.org/documentation/latest/

CREATE TABLE parquet_table_name (x INT, y STRING) STORED AS PARQUET;

AVRO

Avro-Dateien werden in Hive 0.14.0 und höher unterstützt.

Avro ist ein Remote-Prozeduraufruf- und Datenserialisierungs-Framework, das innerhalb des Hadoop-Projekts von Apache entwickelt wurde. Es verwendet JSON zur Definition von Datentypen und Protokollen und serialisiert Daten in einem kompakten Binärformat. Sein Hauptzweck ist Apache Hadoop, wo es sowohl ein Serialisierungsformat für persistente Daten als auch ein Drahtformat für die Kommunikation zwischen Hadoop-Knoten und von Client-Programmen zu den Hadoop-Diensten bereitstellen kann.

Spezifikation des AVRO-Formats: https://avro.apache.org/docs/1.7.7/spec.html

CREATE TABLE kst
PARTITIONED BY (ds string)
STORED AS AVRO
TBLPROPERTIES (
  'avro.schema.url'='http://schema_provider/kst.avsc');

Die folgende Syntax kann auch ohne Schemadatei verwendet werden.

CREATE TABLE kst (field1 string, field2 int)
PARTITIONED BY (ds string)
STORED AS AVRO;

In den Beispielen oben ist die Klausel von STORED AS AVRO äquivalent zu:

ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'

Textdatei

TextFile ist das Standarddateiformat, es sei denn, der Konfigurationsparameter hive.default.fileformat hat eine andere Einstellung. Wir können eine Tabelle mit den Feldnamen in unserer Textdatei mit Trennzeichen erstellen. Nehmen wir zum Beispiel an, unsere CSV-Datei enthält drei Felder (ID, Name, Gehalt) und wir möchten eine Tabelle mit dem Namen "Mitarbeiter" erstellen. Wir werden den folgenden Code verwenden, um die Tabelle in Hive zu erstellen.
CREATE TABLE employees (id int, name string, salary double) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

Nun können wir eine Textdatei in unsere Tabelle laden:

LOAD DATA LOCAL INPATH '/home/ourcsvfile.csv' OVERWRITE INTO TABLE employees;

Anzeigen des Inhalts unserer Tabelle in hive, um zu überprüfen, ob die Daten erfolgreich geladen wurden:

SELECT * FROM employees;



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow