Amazon RDS의 Amazon S3 버킷 내보내기 시 데이터 변환

Amazon RDS의 Amazon S3 버킷 내보내기 시 데이터 변환

DB 스냅샷을 Amazon S3 버킷으로 내보내면 Amazon RDS가 데이터를 Parquet 형식으로 변환하여 내보내고 저장합니다. Parquet에 대한 자세한 내용은 Apache Parquet 웹사이트를 참조하세요.

Parquet은 모든 데이터를 다음 기본(primitive) 유형 중 하나로 저장합니다.

  • BOOLEAN
  • INT32
  • INT64
  • INT96
  • FLOAT
  • DOUBLE
  • BYTE_ARRAY – 가변 길이 바이트 배열, 이진(binary)이라고도 함
  • FIXED_LEN_BYTE_ARRAY – 값이 일정한 크기를 가질 때 사용되는 고정 길이 바이트 배열

Parquet 데이터 유형은 형식 읽기·쓰기의 복잡성을 줄이기 위해 적습니다. Parquet은 기본 유형을 확장하는 논리적(logical) 유형을 제공합니다. 논리적 유형은 LogicalType 메타데이터 필드의 데이터와 함께 주석으로 구현됩니다. 논리적 유형 주석은 기본 유형을 해석하는 방법을 설명합니다.

STRING 논리 유형이 BYTE_ARRAY 유형을 주석 처리하면 바이트 배열을 UTF-8로 인코딩된 문자 문자열로 해석해야 함을 나타냅니다. 내보내기 작업이 완료된 후 Amazon RDS는 문자열 변환이 발생했는지 알려줍니다. 내보낸 기본 데이터는 항상 소스의 데이터와 동일합니다. 단, UTF-8의 인코딩 차이로 인해 Athena와 같은 도구에서 읽을 때 일부 문자가 소스와 다르게 보일 수 있습니다.

자세한 내용은 Parquet 문서의 Parquet 논리적 유형 정의를 참조하세요.

주제

  • MySQL 및 MariaDB 데이터 유형의 Parquet 매핑
  • PostgreSQL 데이터 유형의 Parquet 매핑

출처: 문서

본문

MySQL 및 MariaDB 데이터 유형의 Parquet 매핑

다음 표는 데이터를 변환하여 Amazon S3로 내보낼 때 MySQL 및 MariaDB 데이터 유형에서 Parquet 데이터 유형으로의 매핑을 보여줍니다.

소스 데이터 유형 Parquet 기본 유형 논리적 유형 주석 변환 참고 사항
숫자 데이터 유형
BIGINT INT64
BIGINT UNSIGNED FIXED_LEN_BYTE_ARRAY(9) DECIMAL(20,0) Parquet은 부호 있는 유형만 지원하므로 매핑에는 BIGINT_UNSIGNED 유형을 저장하기 위한 추가 바이트(8+1)가 필요합니다.
BIT BYTE_ARRAY
DECIMAL INT32 DECIMAL(p,s) 소스 값이 2^31 미만이면 INT32로 저장됩니다.
INT64 DECIMAL(p,s) 소스 값이 2^31 이상이고 2^63 미만이면 INT64로 저장됩니다.
FIXED_LEN_BYTE_ARRAY(N) DECIMAL(p,s) 소스 값이 2^63 이상이면 FIXED_LEN_BYTE_ARRAY(N)으로 저장됩니다.
BYTE_ARRAY STRING Parquet은 38보다 큰 Decimal 정밀도를 지원하지 않습니다. Decimal 값은 BYTE_ARRAY 유형의 문자열로 변환되어 UTF8로 인코딩됩니다.
DOUBLE DOUBLE
FLOAT DOUBLE
INT INT32
INT UNSIGNED INT64
MEDIUMINT INT32
MEDIUMINT UNSIGNED INT64
NUMERIC INT32 DECIMAL(p,s) 소스 값이 2^31 미만이면 INT32로 저장됩니다.
INT64 DECIMAL(p,s) 소스 값이 2^31 이상이고 2^63 미만이면 INT64로 저장됩니다.
FIXED_LEN_ARRAY(N) DECIMAL(p,s) 소스 값이 2^63 이상이면 FIXED_LEN_BYTE_ARRAY(N)으로 저장됩니다.
BYTE_ARRAY STRING Parquet은 38보다 큰 Numeric 정밀도를 지원하지 않습니다. 이 Numeric 값은 BYTE_ARRAY 유형의 문자열로 변환되어 UTF8로 인코딩됩니다.
SMALLINT INT32
SMALLINT UNSIGNED INT32
TINYINT INT32
TINYINT UNSIGNED INT32 INT(16, true)
문자열 데이터 유형
BINARY BYTE_ARRAY
BLOB BYTE_ARRAY
CHAR BYTE_ARRAY
ENUM BYTE_ARRAY STRING
LINESTRING BYTE_ARRAY
LONGBLOB BYTE_ARRAY
LONGTEXT BYTE_ARRAY STRING
MEDIUMBLOB BYTE_ARRAY
MEDIUMTEXT BYTE_ARRAY STRING
MULTILINESTRING BYTE_ARRAY
SET BYTE_ARRAY STRING
TEXT BYTE_ARRAY STRING
TINYBLOB BYTE_ARRAY
TINYTEXT BYTE_ARRAY STRING
VARBINARY BYTE_ARRAY
VARCHAR BYTE_ARRAY STRING
날짜 및 시간 데이터 유형
DATE BYTE_ARRAY STRING 날짜는 BYTE_ARRAY 유형의 문자열로 변환되어 UTF8로 인코딩됩니다.
DATETIME INT64 TIMESTAMP_MICROS
TIME BYTE_ARRAY STRING TIME 유형은 BYTE_ARRAY의 문자열로 변환되어 UTF8로 인코딩됩니다.
TIMESTAMP INT64 TIMESTAMP_MICROS
YEAR INT32
기하 데이터 유형
GEOMETRY BYTE_ARRAY
GEOMETRYCOLLECTION BYTE_ARRAY
MULTIPOINT BYTE_ARRAY
MULTIPOLYGON BYTE_ARRAY
POINT BYTE_ARRAY
POLYGON BYTE_ARRAY
JSON 데이터 유형
JSON BYTE_ARRAY STRING

더 알아보기 (Learn more)