수색…


SEQUENCEFILE

데이터를 압축해야하는 경우 데이터를 SEQUENCEFILE에 저장하십시오. Gzip 또는 Bzip2로 압축 된 텍스트 파일을 TextFile로 저장된 테이블로 직접 가져올 수 있습니다. 압축은 자동으로 감지되며 파일은 쿼리 실행 중에 즉석에서 압축이 풀립니다.

CREATE TABLE raw_sequence (line STRING)
STORED AS SEQUENCEFILE;

ORC

ORC (Optimized Row Columnar) 파일 형식은 Hive 데이터를 매우 효율적으로 저장하는 방법을 제공합니다. 다른 하이브 파일 형식의 한계를 극복하기 위해 설계되었습니다. ORC 파일을 사용하면 하이브가 데이터를 읽고 쓰고 처리 할 때 성능이 향상됩니다. ORC 파일에는 간단한 색인과 블룸 필터가 포함될 수 있습니다.

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

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

테이블의 새 파티션이 ORC 파일로 저장되도록 테이블을 수정하려면 :

ALTER TABLE T SET FILEFORMAT ORC; 

Hive 0.14부터 사용자는 테이블이나 파티션에서 CONCATENATE 명령을 실행하여 작은 ORC 파일을 효율적으로 병합하도록 요청할 수 있습니다. 파일은 재 분류없이 스트라이프 레벨에서 병합됩니다.

ALTER TABLE T [PARTITION partition_spec] CONCATENATE;

쪽매 세공

Hive 0.13.0 이상에서 나무 마루 기둥 형태의 저장 형식. 파켓은 처음부터 복잡한 중첩 데이터 구조를 염두에두고 작성되었으며 Dremel 논문에 설명 된 레코드 파쇄 및 조립 알고리즘을 사용합니다. 이 방법은 중첩 된 이름 공간을 단순하게 병합하는 것보다 월등합니다.

마루 (parquet)는 매우 효율적인 압축 및 인코딩 체계를 지원합니다. 여러 프로젝트가 올바른 압축 및 인코딩 체계를 데이터에 적용하여 성능에 미치는 영향을 입증했습니다. 마루 (parquet)를 사용하면 압축 스키마를 열 단위 수준에서 지정할 수 있으며, 향후에 발명되고 구현 될 때 더 많은 인코딩을 추가 할 수 있습니다.

쪽모이도는 Cloudera 분포의 임팔라 표가있는 파일 형식을 권장합니다.

참조 : http://parquet.apache.org/documentation/latest/

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

AVRO

Avro 파일은 Hive 0.14.0 이상에서 지원되었습니다.

Avro는 Apache의 Hadoop 프로젝트 내에서 개발 된 원격 프로 시저 호출 및 데이터 직렬화 프레임 워크입니다. JSON을 사용하여 데이터 유형 및 프로토콜을 정의하고 압축 된 바이너리 형식으로 데이터를 직렬화합니다. Apache Hadoop의 주요 용도는 영구 ​​데이터의 직렬화 형식과 Hadoop 노드 간의 통신 및 클라이언트 프로그램에서 Hadoop 서비스로의 통신을위한 유선 형식을 제공 할 수있는 것입니다.

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

스키마 파일을 사용하지 않고 아래 구문을 사용할 수도 있습니다.

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

위의 예에서 STORED AS AVRO 절은 다음과 같습니다.

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'

텍스트 파일

TextFile은 구성 매개 변수 hive.default.fileformat의 설정이 다른 경우를 제외하고는 기본 파일 형식입니다. 구분 된 텍스트 파일의 필드 이름을 사용하여 하이브에 대한 테이블을 만들 수 있습니다. 예를 들어, csv 파일에 ID, 이름, 급여라는 세 개의 필드가 있고 "사원"이라는 하이브에 테이블을 만들고 싶습니다. 다음 코드를 사용하여 하이브에 테이블을 만듭니다.
CREATE TABLE employees (id int, name string, salary double) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

이제 테이블에 텍스트 파일을로드 할 수 있습니다.

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

데이터가 성공적으로로드되었는지 확인하기 위해 테이블의 내용을 하이브에 표시 :

SELECT * FROM employees;



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow