Amazon Quantum Ledger Database (Amazon QLDB)
開発者ガイド

ステップ 4: 台帳のドキュメントを変更する

操作するデータを用意できたところで、Amazon QLDB で vehicle-registration 台帳のドキュメントに変更を加えることができます。たとえば、VIN 1N4AL11D75C109151 の Audi A5 を見てみましょう 。この車は、ワシントン州シアトルの Raul Lewis が所有しており、初期の登録が必要です。

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

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

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

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

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

  4. この車両の所有者として最初に 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 フィールドにネストされています。QLDB のビューの詳細については、「Amazon QLDB でのデータと履歴の使用」を参照してください。

    注記

    ベストプラクティスは、ドキュメント id メタデータフィールドを外部キーとして使用することです。詳細については、「ドキュメントのメタデータのクエリの実行」を参照してください。

  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 テーブル内の PrimaryOwner を更新します。

    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: 台帳の変更履歴を表示する」を参照してください。