기술나눔

Hive의 데이터 유형 및 저장 형식 요약

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1.데이터 유형

Hive는 기본 데이터 유형과 복합 데이터 유형이라는 두 가지 범주로 구분된 여러 데이터 유형을 지원합니다. Hive에서 지원하는 데이터 유형은 다음과 같습니다.

기본 데이터 유형:

1. 정수형:

                tinyint: 1바이트 부호 있는 정수
               작은 정수: 2바이트 부호 있는 정수
               의미: 4바이트 부호 있는 정수
                bigint: 8바이트 부호 있는 정수
               뜨다: 4바이트 단정밀도 부동 소수점 숫자
               더블: 8바이트 배정밀도 부동 소수점 숫자
                소수: 소수점(10,2)과 같은 고정밀도 숫자 유형, 정밀도 및 소수 자릿수를 지정할 수 있습니다.

바이트: 컴퓨터의 가장 기본적인 저장 단위 중 하나로 1바이트는 8비트를 차지합니다. 데이터 범위: 음수 범위: -128 ~ -1, 양수 범위: 0 ~ 127

2. 문자열 유형:

                끈: 가변 길이 문자열
               varchar: varchar(255)와 같이 최대 길이 제한이 있는 가변 길이 문자열
               숯: char(10)과 같은 고정 길이 문자열

3.날짜/시간 유형:

                타임스탬프: 날짜와 시간이 포함된 타임스탬프(나노초 단위)
               날짜: 시간 부분이 아닌 날짜 부분만 포함
                간격: 두 날짜 또는 시간의 차이를 나타내는 데 사용되는 시간 간격

4. 부울 유형:

                부울: 부울 값, 값은 true 또는 false입니다.

5. 바이너리 유형:

                이진법: 임의 길이의 바이트 배열

복잡한 데이터 유형:
1. 어레이 유형

        정렬<T> : 배열과 같은 동일한 유형의 여러 요소를 포함하는 순서가 지정된 목록<int>

2. 매핑 유형

    지도<K, V> : 키와 값이 map과 같은 모든 데이터 유형일 수 있는 순서가 지정되지 않은 키-값 쌍 모음<string, int>


    3. 구조 유형

         구조<col1: type1, col2: type2, ...> : 여러 필드를 포함하는 레코드. 각 필드는 서로 다른 데이터 유형일 수 있습니다.구조<name: string, age: int>

  1. CREATE TABLE example_table (
  2. tinyint_col tinyint,
  3. smallint_col smallint,
  4. int_col int,
  5. bigint_col bigint,
  6. float_col float,
  7. double_col double,
  8. decimal_col decimal(10, 2),
  9. string_col string,
  10. varchar_col varchar(255),
  11. char_col char(10),
  12. timestamp_col timestamp,
  13. date_col date,
  14. boolean_col boolean,
  15. binary_col binary,
  16. array_col array<int>,
  17. map_col map<string, int>,
  18. struct_col struct<name: string, age: int>,
  19. union_col uniontype<int, string>
  20. );

2.Hive 파일 저장 형식

하이브의 저장 형식은 두 가지 범주로 나뉩니다.

일반 텍스트 파일 유형: 압축되지 않은 텍스트 파일이며 하이브의 기본 저장 형식이기도 합니다.

한 가지 범주는 바이너리 파일 저장소입니다.

시퀀스 파일: 압축되며 로드 메서드를 사용하여 데이터를 로드할 수 없습니다.

orcfile: 압축되며 로드 메소드를 사용하여 데이터를 로드할 수 없습니다.

parquet: 압축되며 로드 메서드를 사용하여 데이터를 로드할 수 없습니다.

rcfile: 로드 방법을 사용하여 데이터를 압축할 수 있으며 로드할 수 없습니다. orcfile의 낮은 구성입니다.

텍스트 파일과 시퀀스 파일의 저장 형식은 행 저장소를 기반으로 하며, orc 및 parquet는 열 저장소를 기반으로 하며 rcfile은 행과 열이 혼합된 저장소를 기반으로 합니다.

테이블을 생성할 때 Stored as Parquet를 사용하여 테이블의 저장 형식을 지정할 수 있습니다. 예를 들면 다음과 같습니다.

  1. create table if not exists stocks_parquet (
  2. track_time string,
  3. url string,
  4. session_id string,
  5. referer string,
  6. ip string,
  7. end_user_id string,
  8. city_id string
  9. )
  10. stored as parquet;

하이브의 기본 저장 형식을 수정합니다.

  1. <property>
  2. <name>hive.default.fileformat</name>
  3. <value>TextFile</value>
  4. <description>
  5. Expects one of [textfile, sequencefile, rcfile, orc].
  6. Default file format for CREATE TABLE statement. Users can explicitly override it by CREATE TABLE ... STORED AS [FORMAT]
  7. </description>
  8. </property>
  9. 也可以使用set方式修改:
  10. set hive.default.fileformat=TextFile