Amazon Ion Hive SerDe - Amazon Athena

Amazon Ion Hive SerDe

Amazon Ion Hive SerDe를 사용하여 Amazon Ion 형식으로 저장된 데이터를 쿼리할 수 있습니다. Amazon Ion은 서식 있는 자기 기술형 오픈 소스 데이터 형식입니다. Amazon Ion 형식은 Amazon Quantum Ledger Database(Amazon QLDB)와 같은 서비스 및 오픈 소스 SQL 쿼리 언어PartiQL에서 사용됩니다.

Amazon Ion은 상호 교환 가능한 이진 및 텍스트 형식을 갖습니다. 이 기능은 텍스트의 사용 편의성과 이진 인코딩의 효율성을 결합합니다.

Athena에서 Amazon Ion 데이터를 쿼리하려면 Amazon Ion 데이터를 직렬화 및 역직렬화하는 Amazon Ion Hive SerDe를 사용할 수 있습니다. 역직렬화를 사용하면 Parquet 또는 ORC와 같은 다른 형식으로 기록하기 위해 Amazon Ion 데이터에 쿼리를 실행하거나 읽을 수 있습니다. 직렬화를 사용하면 CREATE 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를 참조하세요.

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 데이터 유형을 지원하지 않습니다.