Zoeken…


SEQUENCEFILE

Sla gegevens op in SEQUENCEFILE als de gegevens moeten worden gecomprimeerd. U kunt tekstbestanden die zijn gecomprimeerd met Gzip of Bzip2 rechtstreeks importeren in een tabel die is opgeslagen als TextFile. De compressie wordt automatisch gedetecteerd en het bestand wordt direct gedecomprimeerd tijdens de uitvoering van de query.

CREATE TABLE raw_sequence (line STRING)
STORED AS SEQUENCEFILE;

ORC

Het bestandsformaat Optimized Row Columnar (ORC) biedt een zeer efficiënte manier om Hive-gegevens op te slaan. Het is ontworpen om beperkingen van de andere Hive-bestandsformaten te overwinnen. Het gebruik van ORC-bestanden verbetert de prestaties wanneer Hive gegevens leest, schrijft en verwerkt. ORC-bestanden kunnen lichtgewicht indexen en bloom-filters bevatten.

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

ORC is een aanbevolen indeling voor het opslaan van gegevens in de distributie van 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" 
              ) 

Een tabel wijzigen zodat nieuwe partities van de tabel worden opgeslagen als ORC-bestanden:

ALTER TABLE T SET FILEFORMAT ORC; 

Vanaf Hive 0.14 kunnen gebruikers een efficiënte samenvoeging van kleine ORC-bestanden aanvragen door een CONCATENATE opdracht op hun tafel of partitie uit te voeren. De bestanden worden op streepniveau samengevoegd zonder opnieuw te worden gereset.

ALTER TABLE T [PARTITION partition_spec] CONCATENATE;

PARKET

Zuilvormig opslagformaat voor parket in Hive 0.13.0 en hoger. Parket is vanaf de grond opgebouwd met complexe geneste datastructuren in het achterhoofd en maakt gebruik van het algoritme voor het versnipperen van records en het assemblageproces dat wordt beschreven in de Dremel-paper. Wij geloven dat deze aanpak superieur is aan het eenvoudig afvlakken van geneste naamruimten.

Parket is gebouwd om zeer efficiënte compressie- en coderingsschema's te ondersteunen. Meerdere projecten hebben de impact op de prestaties aangetoond van het toepassen van het juiste compressie- en coderingsschema op de gegevens. Met parket kunnen compressieschema's op kolomniveau worden gespecificeerd en is toekomstbestendig zodat meer coderingen kunnen worden toegevoegd naarmate ze worden uitgevonden en geïmplementeerd.

Parket wordt aanbevolen Bestandsindeling met Impala-tabellen in Cloudera-distributies.

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

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

AVRO

Avro-bestanden worden ondersteund in Hive 0.14.0 en hoger.

Avro is een extern procedureoproep- en datanerialisatie-raamwerk dat is ontwikkeld binnen het Hadoop-project van Apache. Het maakt gebruik van JSON voor het definiëren van gegevenstypen en protocollen en serialiseert gegevens in een compact binair formaat. Het primaire gebruik is in Apache Hadoop, waar het zowel een serialisatieformaat voor persistente gegevens kan bieden, als een draadformaat voor communicatie tussen Hadoop-knooppunten en van clientprogramma's naar de Hadoop-services.

Specificatie van AVRO-formaat: 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');

We kunnen ook onderstaande syntaxis gebruiken zonder schemabestand te gebruiken.

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

In de bovenstaande voorbeelden is de STORED AS AVRO clausule gelijk aan:

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'

Tekstbestand

TextFile is het standaardbestandsformaat, tenzij de configuratieparameter hive.default.fileformat een andere instelling heeft. We kunnen een tabel over bijenkorf maken met behulp van de veldnamen in ons gescheiden tekstbestand. Laten we bijvoorbeeld zeggen dat ons csv-bestand drie velden bevat (id, naam, salaris) en we willen een tabel in component maken met de naam "werknemers". We gebruiken de onderstaande code om de tabel in component te maken.
CREATE TABLE employees (id int, name string, salary double) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

Nu kunnen we een tekstbestand in onze tabel laden:

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

De inhoud van onze tabel in de component weergeven om te controleren of de gegevens met succes zijn geladen:

SELECT * FROM employees;



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow