ステップ 4. 元帳内の文書の変更 - Amazon Quantum Ledger Database (Amazon QLDB)

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

ステップ 4. 元帳内の文書の変更

操作するデータを用意できたところで、Amazon QLDB で vehicle-registration 台帳のドキュメントに変更を加えることができます。たとえば、VIN の Audi A5 について考えてみましょう。 1N4AL11D75C109151。 この車は当初、ワシントン州シアトルのラウル・ルイスというドライバーが所有していました。

Raul がワシントン州エバレットに住む Brent Logan にこの車を売るとします。その後、Brent と Alexis Pena が結婚することになりました。Brent は共同所有者として車両登録に Alexis を追加したいと考えています。このステップの以下のデータ操作言語 (DML) ステートメントは、台帳に適切な変更を行ってこれらのイベントを反映させる方法を示します。

ヒント

ベストプラクティスとして、外部キーには、ドキュメントにシステムによって割り当てられた id を使用します。一意の識別子(車両の VIN など)を意図するフィールドを定義できますが、ドキュメントの真の一意の識別子は、 id。 このフィールドはドキュメントのメタデータに含まれ、 コミットされたビュー (テーブルのシステム定義ビュー)。

QLDB のビューの詳細については、「主要コンセプト」を参照してください。メタデータの詳細については、「ドキュメント メタデータのクエリ」を参照してください。

ドキュメントに変更を加えるには

  1. https://console.aws.amazon.com/qldb で Amazon QLDB コンソールを開きます。

  2. ナビゲーションペインで、[クエリエディタ] を選択します。

  3. vehicle-registration 台帳を選択します。

    注記

    コンソールの自動 [ロードサンプルデータ] 機能を使用して台帳を設定する場合は、ステップ 6 に進みます。

  4. サンプルデータをロードする INSERT ステートメントを手動で実行した場合は、次のステップに進みます。

    この車両の所有者として最初に Raul を登録するには、まず Person テーブルで、システムによって割り当てられたドキュメント id を検索することから始めます。このフィールドはドキュメントのメタデータに含まれており、テーブルのシステム定義のビュー (コミット済みビュー) でフィールドのクエリを実行できます。

    クエリエディタウィンドウで、以下のステートメントを入力し、[Run (実行)] を選択します。

    SELECT metadata.id FROM _ql_committed_Person AS p WHERE p.data.FirstName = 'Raul' and p.data.LastName = 'Lewis'

    プレフィックス _ql_committed_ は、Person テーブルのコミット済みビューにクエリを実行することを示す予約済みプレフィックスです。このビューでは、データは data フィールドにネストされており、メタデータは metadata フィールドにネストされています。

  5. 次に、この idUPDATE ステートメントで使用して、VehicleRegistration テーブル内の該当するドキュメントを変更します。次のステートメントを入力し、[Run (実行)] を選択します。

    UPDATE VehicleRegistration AS r SET r.Owners.PrimaryOwner.PersonId = '294jJ3YUoH1IEEm8GSabOs' --replace with your id WHERE r.VIN = '1N4AL11D75C109151'

    このステートメントを発行することで、Owners フィールドが変更されていることを確認します。

    SELECT r.Owners FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151'
  6. 車両の所有権をエバレットに住む Brent に譲渡するには、まず次のステートメントを使用して、Brent の idPerson テーブルで検索します。

    SELECT metadata.id FROM _ql_committed_Person AS p WHERE p.data.FirstName = 'Brent' and p.data.LastName = 'Logan'

    次に、この id を使用して、VehicleRegistration テーブルの PrimaryOwnerCity を更新します。

    UPDATE VehicleRegistration AS r SET r.Owners.PrimaryOwner.PersonId = 'IN7MvYtUjkp1GMZu0F6CG9', --replace with your id r.City = 'Everett' WHERE r.VIN = '1N4AL11D75C109151'

    このステートメントを発行して、PrimaryOwner フィールドと City フィールドを変更したことを確認します。

    SELECT r.Owners.PrimaryOwner, r.City FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151'
  7. 車の共同所有者として Alexis を追加するには、Alexis の Person id を検索します。

    SELECT metadata.id FROM _ql_committed_Person AS p WHERE p.data.FirstName = 'Alexis' and p.data.LastName = 'Pena'

    その後、次の FROM INSERT DML ステートメントを使用して、この idSecondaryOwners リストに挿入します。

    FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151' INSERT INTO r.Owners.SecondaryOwners VALUE { 'PersonId' : '5Ufgdlnj06gF5CWcOIu64s' } --replace with your id

    このステートメントを発行し、SecondaryOwners が変更されていることを確認します。

    SELECT r.Owners.SecondaryOwners FROM VehicleRegistration AS r WHERE r.VIN = '1N4AL11D75C109151'

これらの変更を vehicle-registration 台帳で確認するには、「ステップ 5. 文書の改訂履歴の表示」を参照してください。