翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
重要
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する
Amazon QLDB は、Amazon Ion
Amazon QLDB での PartiQL による Ion のクエリ
QLDB で PartiQL を使用して Ion データをクエリするための構文とセマンティクスについては、「Amazon QLDB の PartiQL リファレンス」の「PartiQL での Ion のクエリ」を参照してください。
QLDB 台帳の Ion データをクエリおよび処理するコード例については、「Amazon Ion コード例」と「Amazon Ion の操作」を参照してください。
Amazon Ion の概要
Ion は、Amazon 内部で独自に開発された、オープンソースでリッチタイプの自己記述型階層データシリアル化フォーマットです。Ion は、構造化データと非構造化データの両方を一緒に保存する抽象データモデルに基づいています。Ion は JSON のスーパーセットであるため、有効な JSON ドキュメントは有効な Ion ドキュメントでもあります。このガイドの内容は、JSON を使って基本的な作業ができる程度の知識があることを前提としています。JSON についてまだよく理解できていない方は、「JSON の紹介
Ion ドキュメントは、人間が読めるテキスト形式またはバイナリエンコード形式で互換的に表記できます。JSON と同様に、テキスト形式は読み書きが容易で、ラピッドプロトタイピングをサポートしています。バイナリエンコード形式はよりコンパクトで、効率よく保持、送信および解析できます。Ion プロセッサは、データ喪失なく同じデータ構造セットを正確に再現できるように、両形式間でコードを変換できます。この機能によって、アプリケーションはさまざまなユースケースに応じてデータを処理方法を最適化できます。
注記
Ion データモデルは厳格な値ベースであり、リファレンスはサポートしていません。このため Ion データモデルでは、任意の深さまでネストできるデータ階層を表すことはできますが、有向グラフを表すことはできません。
Ion 仕様
Ion の主要なデータ型、そのすべての説明、値の形式の詳細のリストについては、Amazon の GitHub サイトにある Ion の仕様書
アプリケーション開発を効率化するために、Amazon Ion は Ion データを処理するクライアントライブラリを提供します。Ion データを処理するための一般的なユースケースのコード例については、GitHub の「Amazon Ion クックブック
JSON との互換性
JSON と同様に、Amazon Ion ドキュメントは、一連のプリミティブデータ型と一連の再帰的に定義されるコンテナ型を使って作成できます。Ion のデータ型には、以下のような従来の JSON データ型が含まれています。
-
null
: 汎用型なし null (空) 値。加えて Ion は、以下のセクションにも記載されているとおり、プリミティブ型ごとに個別の null 型をサポートしています。 -
bool
: ブール値。 -
string
: Unicode 文字リテラル。 -
list
: 異種値の順序付きコレクション。 -
struct
: 名前と値のペアの順序なしコレクション。JSON と同様に、struct
では、名前あたりの値を複数にできますが、これは概してお勧めできません。
JSON からの拡張機能
数値型
曖昧な JSON number
型に代え、Amazon Ion では、数値を次のいずれかの型として厳格に定義しています。
-
int
: 任意の大きさの符号付き整数。 -
decimal
: 任意精度の 10 進数エンコード実数。 -
float
: バイナリエンコード浮動小数点数 (64 ビット IEEE)。
ドキュメントを解析する場合、Ion プロセッサは次のように数値型を割り当てます。
-
int
: 指数も小数点もない数値 (100200
など)。 -
decimal
: 小数点はあるが指数はない数値 (0.00001
、200.0
など)。 -
float
: 科学的記数法または E 表記法といった指数のある数値 (2e0
、3.1e-4
など)。
新しいデータ型
Amazon Ion には次のデータ型が追加されています。
-
timestamp
: 任意精度の日付/時刻/タイムゾーン。 -
symbol
: Unicode シンボリックアトム (識別子など)。 -
blob
: ユーザー定義エンコードのバイナリデータ。 -
clob
: ユーザー定義エンコードのテキストデータ。 -
sexp
: アプリケーション定義のセマンティクスを持つ値の順序付きコレクション。
null 型
JSON で定義されている汎用 null 型に加え、Amazon Ion では、プリミティブ型ごとに個別の 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 ], }