이온(직렬화 형식)

Ion (serialization format)
이온
파일 이름 확장명
.ion
인터넷 미디어 유형신청/이온
개발자아마존
형식 유형데이터 교환
웹사이트amzn.github.io/ion-docs/

이온아마존이 개발한 데이터 직렬화 언어다.그것은 사람이 읽을 수 있는 텍스트 양식이나 콤팩트한 이진 형식으로 나타낼 수 있다.텍스트 양식은 JSON의 상위 집합이므로 유효한 JSON 문서도 유효한 Ion 문서다.

데이터 유형

JSON의 상위 집합으로서, Ion은 다음과 같은 데이터 유형을 포함한다.

  • null: 빈 값
  • bool: 부울 값
  • string: 유니코드 텍스트 리터럴
  • list: 이온값의 이질적인 수집 순서
  • struct: 키/값 쌍의 무순 수집

모호한 JSON '숫자' 타입은 Ion에서 엄격하게 정의되어 있다.

  • int: 임의 크기의 서명 정수
  • float: 64비트 IEEE 이진 인코딩 부동소수 번호
  • decimal: 임의 정밀도의 십진수 인코딩 실수

Ion은 다음과 같은 유형을 추가한다.

  • timestamp: 임의의 정밀도의 날짜/시간/시간대 모멘트
  • symbol: 유니코드 기호 원자(일명 식별자)
  • blob: 사용자정의 인코딩 바이너리 데이터
  • clob: 사용자 정의 인코딩의 텍스트 데이터
  • sexp: 응용 프로그램 정의 의미론(application-defined semantics)을 사용한 값 집합 순서 지정

각 Ion 타입은 null 변형을 지원하며, 엄격한 타입을 유지하는 동안 값 부족을 나타낸다(예:null.int,null.struct).

Ion 형식은 기호 형태의 모든 값에 대한 주석을 허용한다.그러한 주석은 다른 불투명 데이터의 메타데이터(예: 블럽)로 사용될 수 있다.

구현

샘플 문서

// 더블 포워드 슬래시를 사용하는 Ion 파일에서 코멘트가 허용됨 {   핵심을: "가치",   // 여기서의 키는 기호로, JSON에서와 같이 문자열일 수도 있다.   숫자: 1_000_000, // 1000000에 해당하는 숫자에서 밑줄을 사용하는 것이 더 읽기 쉬움   '부유 값': -31415e-4,  // 키는 공백을 포함하는 값임   "int 값": 무효의.인트로,   주석을 단: 나이를 먹다::45,     // 여기서 나이는 45번에 대한 주석이다.   목록 : 'hw 성적'::[80, 85, 90], // 모든 기호를 주석으로 사용할 수 있음   many_message: I::가지고 있다::많은::주석을 달다::진실의, // 주석은 내포되지 않고 주석 목록   섹스를 하다: ( (이다 a [유효의] "이온") 지난::가치를 매기다 42) // Ion S-expression,   blob_value: {{오이비티쿠그티아스비8=}},   clob_value: {{"a b"}} } 

사용하다

  • 아마존의 양자 원장 데이터베이스(QLDB)는 이온 문서에 데이터를 저장한다.[1]
  • 또한 아마존에 의해 만들어진 오픈 소스 SQL 기반 쿼리 언어인 PartiQL은 Ion을 기반으로 한다.PartiQL 지원 쿼리는 QLDB, S3Select에서 사용한다.[2]

툴링 및 익스텐션

참조

  1. ^ "We are the Amazon Managed Blockchain and Amazon QLDB Teams – Ask the AWS Experts – November 29 @ 3PM PST / 6PM EST". 28 November 2018.
  2. ^ "Announcing PartiQL: One query language for all your data". August 2019.

외부 링크