지원되는 스토리지 형식 및 데이터 유형

이 문서에서는 레이크하우스 런타임 카탈로그를 통해 Spark 및 Hive를 BigQuery와 통합할 때 데이터 유형과 스토리지 형식이 어떻게 작동하는지 자세히 설명합니다.

특히 이 문서에서는 다음을 제공합니다.

  • 지원되는 스토리지 형식: Hive SerDe 및 Spark 데이터 소스에서 Parquet, ORC, Avro, CSV, JSON과 같은 형식의 호환성 분석입니다.
  • 데이터 유형 매핑: Spark와 BigQuery 데이터 유형 간의 정확한 변환 규칙입니다.

이 페이지를 사용하여 엔진 간에 워크로드를 실행하거나 테이블을 쿼리하기 전에 테이블 스키마와 스토리지 형식이 메타스토어와 일치하는지 확인하세요.

Hive와 Spark 간에 지원되는 스토리지 형식

다음 섹션에서는 Hive, Spark, BigQuery 간의 저장소 형식 및 데이터 소스 호환성을 설명합니다.

자세한 스토리지 형식 매핑

BigQuery는 메타데이터의 input_format, output_format, SerDe 라이브러리를 기반으로 테이블의 스토리지 형식을 결정합니다. 다음 표는 이러한 속성을 BigQuery 스토리지 형식에 매핑합니다.

입력 형식, 출력 형식, SerDe 라이브러리 BigQuery 스토리지 형식
org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
Parquet
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
org.apache.hadoop.hive.ql.io.orc.OrcSerde
ORC
org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat
org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat
org.apache.hadoop.hive.serde2.avro.AvroSerDe
Avro
org.apache.hadoop.mapred.TextInputFormat
org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
org.apache.hadoop.hive.serde2.OpenCSVSerde
CSV
org.apache.hadoop.mapred.TextInputFormat
org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
org.openx.data.jsonserde.JsonSerDe
JSON
org.apache.hadoop.mapred.TextInputFormat
org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
org.apache.hive.hcatalog.data.JsonSerDe
JSON

Hive SerDe 호환성

다음 표에는 Hive SerDe 테이블 형식과 BigQuery의 호환성이 나와 있습니다.

형식 Spark SQL DDL 구문 BigQuery에서 쿼리 가능
Parquet CREATE TABLE ... STORED AS PARQUET
ORC CREATE TABLE ... STORED AS ORC
Avro CREATE TABLE ... STORED AS AVRO
CSV CREATE TABLE ... ROW FORMAT 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
JSON CREATE TABLE ... ROW FORMAT 'org.openx.data.jsonserde.JsonSerDe'

Spark 데이터 소스 호환성

다음 표에는 Spark 데이터 소스 테이블 형식과 BigQuery의 호환성이 나와 있습니다.

CSV 및 JSON SerDe 테이블은 BigQuery에서 쿼리할 수 있습니다. 하지만 CSV 및 JSON Spark 데이터 소스 테이블은 그렇지 않습니다.

형식 Spark SQL DDL 구문 BigQuery에서 쿼리 가능
Parquet CREATE TABLE ... USING PARQUET
ORC CREATE TABLE ... USING ORC
Avro CREATE TABLE ... USING AVRO
CSV CREATE TABLE ... USING CSV 아니요
JSON CREATE TABLE ... USING JSON 아니요

Spark에서 BigQuery로 지원되는 데이터 유형

다음 표는 Spark 데이터 유형을 BigQuery 데이터 유형에 매핑합니다.

Spark 데이터 유형 BigQuery 데이터 유형
BYTE 또는 TINYINT INT64
SMALLINT 또는 SHORT INT64
INT 또는 INTEGER INT64
BIGINT 또는 LONG INT64
DECIMAL 또는 NUMERIC BIGNUMERIC
FLOAT FLOAT64
DOUBLE FLOAT64
REAL FLOAT64
BOOLEAN BOOL
STRING STRING
VARCHAR STRING
CHAR 또는 CHARACTER STRING
BINARY BYTES
DATE DATE
TIMESTAMP 또는 TIMESTAMP_LTZ TIMESTAMP
ARRAY ARRAY
STRUCT<col_name: type1, ...> STRUCT<col_name: type1, ...>
MAP<key_type, value_type> ARRAY<STRUCT<key: key_type, value: value_type>>
이 기능을 사용 설정하려면 biglake-help@google.com으로 이메일을 보내세요. 워크로드에서 MAP를 사용하는 경우에만 필요합니다.

다음 단계