Amazon Ion Hive SerDe
Amazon Ion Hive SerDe를 사용하여 Amazon Ion
Amazon Ion은 상호 교환 가능한 이진 및 텍스트 형식을 갖습니다. 이 기능은 텍스트의 사용 편의성과 이진 인코딩의 효율성을 결합합니다.
Athena에서 Amazon Ion 데이터를 쿼리하려면 Amazon Ion 데이터를 직렬화 및 역직렬화하는 Amazon Ion Hive SerDeCREATE TABLE AS
SELECT
(CTAS) 또는 기존 테이블에서 데이터를 복사하는 INSERT INTO
쿼리를 사용하여 Amazon Ion 형식으로 데이터를 생성할 수 있습니다.
참고
Amazon Ion은 JSON의 상위 집합이므로 Amazon Ion Hive SerDe를 사용하여 Amazon Ion JSON이 아닌 데이터 집합을 쿼리할 수 있습니다. 다른 JSON SerDe 라이브러리와 달리 Amazon Ion SerDe는 각 데이터 행이 한 줄에 있을 것으로 예상하지 않습니다. 이 기능은 “예쁜 인쇄” 형식의 JSON 데이터 집합을 쿼리하려 하거나 줄 바꿈 문자로 필드를 행으로 분할하려는 경우에 유용합니다.
Athena에서 Amazon Ion을 쿼리하는 방법에 대한 추가 정보 및 예제는 Analyze Amazon Ion datasets using Amazon Athena
직렬화 라이브러리 이름
Amazon Ion SerDe의 직렬화 라이브러리 이름은 com.amazon.ionhiveserde.IonHiveSerDe
입니다. 소스 코드 정보는 GitHub.com에서 Amazon Ion Hive SerDe
고려 사항 및 제한
-
중복된 필드 - Amazon Ion 구조체는 정렬되어 있고 중복된 필드를 지원하는 반면 Hive의
STRUCT<>
및MAP<>
은 그렇지 않습니다. 따라서 Amazon Ion 구조체에서 중복된 필드를 역직렬화하면 하나의 값이 비결정론적으로 선택되고 다른 값은 무시됩니다. -
외부 기호 테이블 지원되지 않음 - 현재 Athena는 외부 기호 테이블 또는 다음 Amazon Ion Hive SerDe 속성을 지원하지 않습니다.
-
ion.catalog.class
-
ion.catalog.file
-
ion.catalog.url
-
ion.symbol_table_imports
-
-
파일 확장자 - Amazon Ion은 파일 확장자를 사용하여 Amazon Ion 파일을 역직렬화하는 데 사용할 압축 코덱을 결정합니다. 따라서 압축된 파일은 사용된 압축 알고리즘에 해당하는 파일 확장자를 가져야 합니다. 예를 들어 ZSTD를 사용하는 경우 해당 파일은
.zst
확장자를 가져야 합니다. -
동종 데이터 - Amazon Ion은 특정 필드의 값에 사용할 수 있는 데이터 형식에 제약을 두지 않습니다. 예를 들어 두 개의 서로 다른 Amazon Ion 문서에 서로 다른 데이터 형식을 갖는 이름이 같은 필드가 있을 수 있습니다. 그러나 Hive는 스키마를 사용하기 때문에 하나의 Hive 열에 추출한 모든 값은 동일한 데이터 형식을 가져야 합니다.
-
맵 키 형식 제한 - 다른 형식의 데이터를 Amazon Ion으로 직렬화할 때 맵 키 형식이
STRING
,VARCHAR
또는CHAR
중 하나인지 확인합니다. Hive를 사용하면 어떤 기본 데이터 형식이라도 맵 키로 사용할 수 있지만 Amazon Ion 기호는 문자열 형식이어야 합니다. -
공용 구조체 형식 - Athena는 현재 Hive Union 형식
을 지원하지 않습니다. -
Double 데이터 유형 - Amazon Ion은 현재
double
데이터 유형을 지원하지 않습니다.