Szukaj…


PLIK SEKWENCYJNY

Przechowuj dane w SEQUENCEFILE, jeśli dane muszą zostać skompresowane. Możesz importować pliki tekstowe skompresowane za pomocą Gzip lub Bzip2 bezpośrednio do tabeli przechowywanej jako TextFile. Kompresja zostanie wykryta automatycznie, a plik zostanie rozpakowany w locie podczas wykonywania zapytania.

CREATE TABLE raw_sequence (line STRING)
STORED AS SEQUENCEFILE;

ORC

Format pliku zoptymalizowanej kolumny wiersza (ORC) zapewnia wysoce wydajny sposób przechowywania danych gałęzi. Został zaprojektowany w celu przezwyciężenia ograniczeń innych formatów plików Hive. Używanie plików ORC poprawia wydajność, gdy Hive odczytuje, zapisuje i przetwarza dane. Plik ORC może zawierać lekkie indeksy i filtry Bloom.

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

ORC jest zalecanym formatem do przechowywania danych w ramach dystrybucji 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" 
              ) 

Aby zmodyfikować tabelę, aby nowe partycje tabeli były przechowywane jako pliki ORC:

ALTER TABLE T SET FILEFORMAT ORC; 

Począwszy od gałęzi 0.14, użytkownicy mogą zażądać wydajnego połączenia małych plików ORC, wydając polecenie CONCATENATE na swojej tabeli lub partycji. Pliki zostaną scalone na poziomie pasków bez ponownej konfiguracji.

ALTER TABLE T [PARTITION partition_spec] CONCATENATE;

PARKIET

Format przechowywania kolumnowego parkietu w gałęzi 0.13.0 i nowszych. Parkiet jest zbudowany od podstaw z myślą o złożonych zagnieżdżonych strukturach danych i wykorzystuje algorytm niszczenia rekordów i montażu opisany w artykule Dremel. Uważamy, że takie podejście jest lepsze niż proste spłaszczanie zagnieżdżonych przestrzeni nazw.

Parkiet został zbudowany w celu obsługi bardzo wydajnych schematów kompresji i kodowania. Wiele projektów wykazało wpływ na wydajność zastosowania odpowiedniego schematu kompresji i kodowania danych. Parkiet umożliwia określenie schematów kompresji na poziomie kolumny i jest przyszłościowy, aby umożliwić dodawanie kolejnych kodowań podczas ich wymyślania i wdrażania.

Parkiet jest zalecanym formatem pliku z tabelami Impala w dystrybucjach Cloudera.

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

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

AVRO

Pliki Avro są obsługiwane w gałęzi 0.14.0 i nowszych.

Avro to platforma do zdalnego wywoływania procedur i serializacji danych opracowana w ramach projektu Hadoop firmy Apache. Używa JSON do definiowania typów danych i protokołów oraz serializuje dane w kompaktowym formacie binarnym. Jego główne zastosowanie znajduje się w Apache Hadoop, gdzie może zapewnić zarówno format serializacji trwałych danych, jak i format przewodowy do komunikacji między węzłami Hadoop, a także z programów klienckich do usług Hadoop.

Specyfikacja formatu 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');

Możemy również użyć poniższej składni bez użycia pliku schematu.

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

W powyższych przykładach klauzula STORED AS AVRO jest równoważna z:

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'

Plik tekstowy

TextFile jest domyślnym formatem pliku, chyba że parametr konfiguracyjny hive.default.fileformat ma inne ustawienie. Możemy utworzyć tabelę na gałęzi za pomocą nazw pól w naszym pliku tekstowym z ogranicznikami. Załóżmy na przykład, że nasz plik csv zawiera trzy pola (identyfikator, imię i nazwisko, wynagrodzenie) i chcemy utworzyć tabelę w gałęzi o nazwie „pracownicy”. Użyjemy poniższego kodu, aby utworzyć tabelę w gałęzi.
CREATE TABLE employees (id int, name string, salary double) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

Teraz możemy załadować plik tekstowy do naszej tabeli:

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

Wyświetlanie zawartości naszej tabeli w gałęzi w celu sprawdzenia, czy dane zostały pomyślnie załadowane:

SELECT * FROM employees;



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow