Amazon QLDB의 Amazon Ion 데이터 형식 참조 - Amazon Quantum Ledger Database(QLDB)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon QLDB의 Amazon Ion 데이터 형식 참조

Amazon QLDB는 Amazon IonPartiQL 유형의 하위 집합과 통합하는 데이터 표기법 모델을 사용합니다. 이 섹션에서는 PartiQL과의 통합과 별도로 Ion 문서 데이터 형식에 대한 참조 개요를 제공합니다.

Amazon QLDB에서 PartiQL을 사용한 Ion 쿼리

QLDB에서 PartiQL을 사용하여 Ion 데이터를 쿼리하는 구문 및 시맨틱은 Amazon QLDB PartiQL 참조PartiQL을 사용하여 Ion 쿼리하기를 참조하세요.

QLDB 원장에서 Ion 데이터를 쿼리하고 처리하는 코드 예제는 Amazon Ion 코드 예제Amazon Ion 작업을 참조하세요.

Amazon Ion이란 무엇입니까?

Ion은 풍부한 유형의 자체 설명이 가능한 오픈 소스 계층적 데이터 직렬화 형식으로, 원래 Amazon 내부에서 개발되었습니다. 이는 구조화된 데이터와 구조화되지 않은 데이터를 모두 저장할 수 있는 추상 데이터 모델을 기반으로 합니다. 이는 JSON의 상위 집합입니다. 즉, 유효한 JSON 문서는 모두 유효한 Ion 문서이기도 합니다. 이 가이드에서는 JSON에 대한 기본적인 실무 지식을 전제로 합니다. JSON에 아직 익숙하지 않은 경우 자세한 내용은 JSON 소개를 참조하세요.

Ion 문서를 사람이 읽을 수 있는 텍스트 형식이나 이진 인코딩 형식으로 바꿔서 표기할 수 있습니다. JSON과 마찬가지로 텍스트 형식은 읽고 쓰기가 쉬우며 신속한 프로토타이핑을 지원합니다. 이진 인코딩은 더욱 간결하고 지속, 전송 및 구문 분석에 효율적입니다. Ion 프로세서는 두 형식 사이를 트랜스코딩하여 데이터 손실 없이 정확히 동일한 데이터 구조 집합을 표현할 수 있습니다. 이 기능을 통해 애플리케이션은 다양한 사용 사례에 맞게 데이터를 처리하는 방법을 최적화할 수 있습니다.

참고

Ion 데이터 모델은 엄격하게 값을 기반으로 하며 참조를 지원하지 않습니다. 따라서 데이터 모델은 방향성 그래프가 아닌 임의의 깊이로 중첩될 수 있는 데이터 계층 구조를 나타낼 수 있습니다.

Ion 사양

전체 설명 및 값 형식 지정 세부 정보가 포함된 Ion 코어 데이터 유형의 전체 목록은 Amazon GitHub 사이트의 Ion 사양 문서를 참조하세요.

애플리케이션 개발을 간소화하기 위해 Amazon Ion은 Ion 데이터를 처리하는 클라이언트 라이브러리를 제공합니다. Ion 데이터를 처리하는 일반적인 사용 사례의 코드 예제는 GitHub의 Amazon Ion Cookbook을 참조하세요.

JSON 호환

JSON과 마찬가지로, 원시 데이터 유형 집합과 재귀적으로 정의된 컨테이너 유형 집합을 사용하여 Amazon Ion 문서를 작성합니다. Ion에는 다음과 같은 기존 JSON 데이터 유형이 포함됩니다.

  • null: 형식이 지정되지 않은 일반 null(빈) 값입니다. 또한 다음 섹션에 설명된 대로 Ion은 각 원시 유형에 대해 고유한 null 유형을 지원합니다.

  • bool: 부울 값입니다.

  • string: 유니코드 텍스트 리터럴입니다.

  • list: 서로 다른 유형의 값 컬렉션을 정렬했습니다.

  • struct: 정렬된 서로 다른 유형의 값 컬렉션입니다. JSON과 마찬가지로 struct은 이름당 여러 값을 허용하지만 일반적으로 권장되지 않습니다.

JSON의 확장

숫자 유형

Amazon Ion은 숫자를 모호한 JSON number 유형 대신 다음 유형 중 하나로 엄격하게 정의합니다.

  • int: 임의 크기의 부호 있는 정수입니다.

  • decimal: 십진 인코딩된 임의 정밀도의 실수입니다.

  • float: 이진 인코딩된 부동 소수점 숫자(64비트 IEEE)입니다.

문서를 구문 분석할 때 Ion 프로세서는 다음과 같이 숫자 유형을 할당합니다.

  • int: 지수나 소수점이 없는 숫자(예: 100200)입니다.

  • decimal: 소수점이 있고 지수는 없는 숫자(예: 0.00001, 200.0)입니다.

  • float: 과학 표기법 또는 전자 표기법과 같이 지수가 있는 숫자(예: 2e0, 3.1e-4)입니다.

새로운 데이터 유형

Amazon Ion은 다음과 같은 데이터 유형을 추가합니다.

  • timestamp: 임의 정밀도의 날짜/시간/시간대 모멘트입니다.

  • symbol: 유니코드 기호 원자(예: 식별자)입니다.

  • blob: 사용자 정의 인코딩의 이진 데이터입니다.

  • clob: 사용자 정의 인코딩의 텍스트 데이터입니다.

  • sexp: 애플리케이션 정의 시맨틱을 사용하여 정렬된 값 컬렉션입니다.

Null 유형

Amazon Ion은 JSON으로 정의된 일반적인 null 유형 외에도 각 원시 유형에 대해 고유한 null 유형을 지원합니다. 이는 엄격한 데이터 유형을 유지하면서도 값이 부족하다는 것을 나타냅니다.

null null.null // Identical to untyped null null.bool null.int null.float null.decimal null.timestamp null.string null.symbol null.blob null.clob null.struct null.list null.sexp

Ion 텍스트 예시

// Here is a struct, which is similar to a JSON object. { // Field names don't always have to be quoted. name: "fido", // This is an integer. age: 7, // This is a timestamp with day precision. birthday: 2012-03-01T, // Here is a list, which is like a JSON array. toys: [ // These are symbol values, which are like strings, // but get encoded as integers in binary. ball, rope ], }

API 참조