이온(직렬화 형식)
Ion (serialization format)| 파일 이름 확장명 | .ion |
|---|---|
| 인터넷 미디어 유형 | 신청/이온 |
| 개발자 | 아마존 |
| 형식 유형 | 데이터 교환 |
| 웹사이트 | amzn |
이온은 아마존이 개발한 데이터 직렬화 언어다.그것은 사람이 읽을 수 있는 텍스트 양식이나 콤팩트한 이진 형식으로 나타낼 수 있다.텍스트 양식은 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]
툴링 및 익스텐션
- Ion Path Extractor API는 DOM API의 편리함과 스트리밍 API의 속도를 결합하는 것을 목표로 한다.
- IDE 지원
- 잭슨 데이터 형식 모듈(Ion)
- 아파치 하이브 세르데 for 이온
- 이온 스키마
- Ion Hash는 Ion 값에 대한 해시를 구성하기 위한 알고리즘을 정의한다.