Recherche…


SEQUENCEFILE

Stockez les données dans SEQUENCEFILE si les données doivent être compressées. Vous pouvez importer des fichiers texte compressés avec Gzip ou Bzip2 directement dans une table stockée sous TextFile. La compression sera détectée automatiquement et le fichier sera décompressé à la volée pendant l'exécution de la requête.

CREATE TABLE raw_sequence (line STRING)
STORED AS SEQUENCEFILE;

ORC

Le format de fichier ORC (Optimized Row Columnar) offre un moyen très efficace de stocker des données Hive. Il a été conçu pour surmonter les limitations des autres formats de fichiers Hive. L'utilisation de fichiers ORC améliore les performances lorsque Hive lit, écrit et traite des données. Le fichier ORC peut contenir des index légers et des filtres de floraison.

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

ORC est un format recommandé pour stocker des données dans la distribution HortonWorks.

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" 
              ) 

Pour modifier une table afin que les nouvelles partitions de la table soient stockées en tant que fichiers ORC:

ALTER TABLE T SET FILEFORMAT ORC; 

A partir de Hive 0.14, les utilisateurs peuvent demander une fusion efficace de petits fichiers ORC en émettant une commande CONCATENATE sur leur table ou leur partition. Les fichiers seront fusionnés au niveau de la bande sans reserializatoin.

ALTER TABLE T [PARTITION partition_spec] CONCATENATE;

PARQUET

Format de stockage en colonnes de parquet dans Hive 0.13.0 et versions ultérieures. Le parquet est conçu à partir des structures de données imbriquées complexes et utilise l'algorithme de destruction et d'assemblage d'enregistrements décrit dans l'article de Dremel. Nous pensons que cette approche est supérieure à la simple mise à plat des espaces de noms imbriqués.

Le parquet est conçu pour prendre en charge des schémas de compression et d'encodage très efficaces. Plusieurs projets ont démontré l'impact sur les performances de l'application du bon schéma de compression et d'encodage aux données. Parquet permet de spécifier des schémas de compression au niveau de chaque colonne et est pérenne pour permettre d'ajouter plus d'encodages au fur et à mesure de leur invention et de leur implémentation.

Le parquet est recommandé Format de fichier avec des tables Impala dans les distributions Cloudera.

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

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

AVRO

Les fichiers Avro sont pris en charge dans Hive 0.14.0 et versions ultérieures.

Avro est une structure d'appel de procédure distante et de sérialisation de données développée dans le projet Hadoop d'Apache. Il utilise JSON pour définir les types de données et les protocoles et sérialise les données dans un format binaire compact. Son utilisation principale se situe dans Apache Hadoop, où il peut fournir à la fois un format de sérialisation pour les données persistantes et un format filaire pour la communication entre les nœuds Hadoop et entre les programmes clients et les services Hadoop.

Spécification du format AVRO: 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');

Nous pouvons également utiliser la syntaxe ci-dessous sans utiliser de fichier de schéma.

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

Dans les exemples ci-dessus, la clause STORED AS AVRO équivaut à:

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'

Fichier texte

TextFile est le format de fichier par défaut, sauf si le paramètre de configuration hive.default.fileformat a un paramètre différent. Nous pouvons créer une table sur ruche en utilisant les noms de champs dans notre fichier texte délimité. Disons par exemple, notre fichier csv contient trois champs (id, nom, salaire) et nous voulons créer une table en ruche appelée "employés". Nous allons utiliser le code ci-dessous pour créer la table dans la ruche.
CREATE TABLE employees (id int, name string, salary double) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

Maintenant, nous pouvons charger un fichier texte dans notre table:

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

Afficher le contenu de notre table sur la ruche pour vérifier si les données ont été chargées avec succès:

SELECT * FROM employees;



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow