高度なフィルターを使ってDynamoDBからJSONドキュメントを読み取り、 tLogRowを使ってこのドキュメントをStudioのコンソールに出力するようにtDynamoDBInputを設定します。
このタスクについて
手順
-
tDynamoDBInputをダブルクリックし、その[Component] (コンポーネント)ビューを開きます。
例
-
[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、スキーマエディターを開きます。
例
- [+]ボタンを2回クリックして、それぞれサンプルデータのカラムを表す2つの行を追加し、[Column] (カラム)カラムで、これらのカラムにDeliveryIdおよびEventPayloadという名前をそれぞれ付けます。
- DeliveryIdカラムの行で、[Key] (キー)カラムのチェックボックスをオンにして、この DeliveryIDカラムを、使用するDynamoDBテーブルのパーティションキーカラムとして使います。DynamoDBテーブルには、パーティションキーカラムが必要です。
- [DB Type] (DBタイプ)カラムでEventPayloadカラムにJSONを選択します。これは、JSONドキュメントを保管するカラムであるためです。
- [Access key] (アクセスキー)フィールドと[Secret key] (シークレットキー)フィールドに、DynamoDBデータベースへのアクセスに使うAWSアカウントの認証情報を入力します。
- [Region] (リージョン)ドロップダウンリストから、前のステップでtDynamoDBOutputに対して選択したものと同じリージョンを選択します。
- [ Action] ドロップダウンリストから、[ Scan]を選択します。
- [Table Name] (テーブル名)フィールドに、tDynamoDBOutputによって作成されるDynamoDBテーブルの名前を入力します。
- [Use filter expression] (フィルター式を使用する]チェックボックスをオンにし、[Use advanced filter expression] (高度なフィルター式を使用する)チェックボックスをオンにします。
-
[Advanced filter expression] (高度なフィルター式)フィールドに、JSONドキュメントの選択に使うフィルターを入力します。
例
"EventPayload.customerOrderNumber.deliveryCode = :value"
等号の左側の部分は、EventPayloadカラムのサンプルデータのJSONドキュメント内のストラクチャーを反映しています。deliveryCodeエレメントの値を使って、読み取るドキュメントをフィルタリングすることが目的です。
[Value mapping] (値のマッピング)テーブルで
:value
プレースホルダーを定義する必要があります。 -
[Value mapping] (値のマッピング)テーブルの下で、[+]ボタンをクリックして1行追加し、次の操作を行います。
-
[value] (値)カラムに、フィルターとして使うJSONエレメントの値を入力します。
例
この例では、このエレメントはdeliveryCodeであり、deliveryCodeエレメントの値が261であるJSONドキュメントを抽出する必要があります。この値は文字列なので、二重引用符内に261を入力します。
この値が整数の場合は、引用符を使わないでください。
-
[Placeholder] (プレースホルダー)カラムに、定義するプレースホルダーの名前を二重引用符で囲んで入力します。この例では、[Advanced filter expression] (高度なフィルター式)で入力したとおり、":value"です。
プレースホルダー名の先頭はコロン(:)にしてください。
-
[value] (値)カラムに、フィルターとして使うJSONエレメントの値を入力します。
- tLogRowをダブルクリックして[Component] (コンポーネント)ビューを開き、[Table] (テーブル)ラジオボタンをオンにして、抽出されたデータをStudioのコンソールのテーブルに表示します。
- [Ctrl]+[S]を押してジョブを保存し、[F6]を押してジョブを実行します。
タスクの結果
完了すると、取得したJSONドキュメントがStudioの [Run] (実行)ビューのコンソールに表示されます。
作成されたDynamoDBテーブルでは、両方のサンプルJSONドキュメントを確認できます。