Ion (formát serializace) - Ion (serialization format)

Ion
Přípona názvu souboru
.ion
VyvinulAmazonka
Typ formátuVýměna dat
webová stránkaamzn.github.io/ ion-docs/

Ion je jazyk serializace dat vyvinutý uživatelem Amazonka. Může být reprezentován buď textem čitelným pro člověka, nebo kompaktní binární formou. Textová forma je nadmnožinou JSON; tedy jakýkoli platný dokument JSON je také platným dokumentem Ion.

Typy dat

Ion jako nadmnožina JSON zahrnuje následující datové typy

  • nula: Prázdná hodnota
  • bool: Booleovské hodnoty
  • tětiva: Textové literály Unicode
  • seznam: Objednaná heterogenní sbírka iontových hodnot
  • struktur: Neuspořádaná sbírka párů klíč / hodnota

Hmlovitý typ „čísla“ JSON je v Ion přísně definován jako jeden z

  • int: Podepsaná celá čísla libovolné velikosti
  • plovák: 64bitová binárně kódovaná čísla s plovoucí desetinnou čárkou IEEE
  • desetinný: Dekadicky zakódovaná reálná čísla s libovolnou přesností

Ion přidává tyto typy:

  • časové razítko: Datum / čas / okamžiky časové zóny s libovolnou přesností
  • symbol: Unicode symbolické atomy (aka identifikátory)
  • kapka: Binární data kódování definovaného uživatelem
  • clob: Textová data uživatelsky definovaného kódování
  • sexp: Seřazené sbírky hodnot s aplikačně definovanou sémantikou

Každý typ Ion podporuje nulovou variantu, což naznačuje nedostatek hodnoty při zachování přísného typu (např. null.int, null.struct).

Formát Ion umožňuje poznámky k jakékoli hodnotě ve formě symbolů. Takové anotace lze použít jako metadata pro jinak neprůhledná data (například blob).

Implementace

Příklady

Ukázkový dokument

// komentáře jsou povoleno v Ion soubory použitím the dvojnásobek vpřed rozřezat {  klíč: "hodnota",   // klíč tady je A symbol, to umět taky být A tětiva tak jako v JSON  čísla: 1_000_000, // ekvivalent na 1000000, použití z podtržítka s čísla je více čitelný  'A plovák hodnota': -31415e-4,  // klíč je A hodnota že obsahuje mezery   „Hodnota int“: nula.int,  anotováno: věk :: 45,     // stáří tady je the anotace na číslo 45  seznamy : 'hw známky ':: [80, 85, 90], // žádný symbol umět být použitý tak jako an anotace   many_annot: I :: have :: many :: annotations :: true, // anotace jsou ne vnořené, ale spíše, A seznam z anotace  sexp: (tento (je A [platný] "Ion") poslední::hodnota 42) // Ion S-výrazy,   blob_value: {{OiBTIKUgTyAASb8 =}},  clob_value: {{„a b“}}}

Použití

  • Amazonská databáze Quantum Ledger Database (QLDB) ukládá data do dokumentů Ion. [1]
  • PartiQL, otevřený zdrojový dotazovací jazyk založený na SQL také od Amazonu, je postaven na Ionu. QLDB, S3Select používají dotazy podporované pomocí PartiQL. [2]

Nástroje a rozšíření

Reference

externí odkazy