QLDB ドキュメント - Amazon Quantum Ledger Database (Amazon QLDB)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

QLDB ドキュメント

Amazon QLDB は、データレコードをドキュメントとして保存します。このドキュメントは、テーブルに挿入される Amazon Ion struct オブジェクトです。Ion の仕様については、Amazon Ion の GitHub サイトを参照してください。

Ion ドキュメントの構造

JSON と同様に、QLDB ドキュメントは、以下の構造の名前と値のペアで構成されます。

{ name1: value1, name2: value2, name3: value3, ... nameN: valueN }

名前は記号トークンで、値は無制限です。名前と値の各ペアはフィールドと呼ばれます。フィールドの値は、コンテナ型 (ネストされた構造、リスト、構造のリスト) を含む、任意の Ion データ型 にすることができます。

また JSON と同様に、struct は中括弧 ({...}) で、list は角括弧 ([...]) で表されます。次の例は、さまざまな型の値を含む Amazon QLDB コンソールの使用開始方法 のサンプルデータのドキュメントです。

{ VIN: "1N4AL11D75C109151", LicensePlateNumber: "LEWISR261LL", State: "WA", City: "Seattle", PendingPenaltyTicketAmount: 90.25, ValidFrom: 2017-08-21T, ValidTo: 2020-05-11T, Owners: { PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" }, SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }] } }
重要

Ion では、二重引用符は文字列値を表し、引用符で囲まれていないシンボルはフィールド名を表します。ただし、PartiQL では、一重引用符は文字列とフィールド名の両方を表します。

構文のこの違いにより、PartiQL クエリ言語で SQL 互換性を維持し、Amazon Ion データ形式で JSON 互換性を維持できます。QLDB コンソールを使用して Ion データをクエリするときの PartiQL の構文とセマンティクスの詳細については、「PartiQL での Ion のクエリ」を参照してください。

PartiQL と Ion の型マッピング

QLDB では、PartiQL は SQL の型システムを継承して、Ion データモデルに対応しています。このマッピングについて以下に説明します。

  • SQL スカラー型は Ion で以下の例のようにマッピングされます。例:

    • CHARVARCHAR は、Ion の string 型にマッピングされる Unicode シーケンスです。

    • NUMBER は、Ion decimal タイプにマッピングされます。

  • Ion の struct 型は、テーブルのを従来表す SQL タプルと同等です。

    • ただし、オープンコンテンツでスキーマなしの場合、本来順序付きの SQL タプルに依存するクエリ (SELECT * の順序付きの出力など) はサポートされません。

  • NULL に加えて、PartiQL には MISSING 型があります。これは NULL の特殊化であり、欠けているフィールドあることを示します。この型が必要なのは、Ion の struct フィールドがスパースであるためです。

ドキュメント ID

QLDB では、テーブルに挿入する各ドキュメントにドキュメント ID を割り当てます。QLDB が割り当てた ID はすべて汎用一意識別子 (UUID、Universally Unique Identifier) であり、それぞれ Base62 エンコード文字列 (3Qv67yjXEwB9SjmvkuG6Cp など) で表されます。詳細については、「Amazon QLDB で割り当てられる一意の ID」を参照してください。

ドキュメントの各リビジョンは、ドキュメント ID と 0 から始まるバージョン番号を組み合わせてそれぞれ識別されます。

ドキュメント ID およびバージョンフィールドはドキュメントのメタデータに含まれており、コミット済みビュー (テーブルのシステム定義のビュー) でクエリを実行できます。QLDB におけるビューの詳細については、「重要な概念」を参照してください。メタデータの詳細については、「ドキュメントのメタデータのクエリの実行」を参照してください。