AWSCLIで取得したデータをCSVに出力する

DynamoDBテーブルのデータを scan 操作を使用して取得し、それをCSVファイルに出力するには、以下のような手順を踏む必要があります。以下の例では、AWS CLIとjq、そしてcsvtoolといったコマンドラインツールを利用します。

  1. DynamoDBテーブルからデータを scan 操作で取得。
  2. 結果をJSON形式でファイルに保存。
  3. jqを使用して必要なデータを抽出し、フォーマット。
  4. 結果をCSV形式で出力。

ここでは3つのツール(AWS CLI、jq、csvtoolあるいは他のCSV変換ツール)を使う例を紹介します。あなたのシステムにこれらのツールがインストールされていることを前提とします。

以下はステップとそのコマンドです。

ステップ 1: scan 操作でデータを取得し、JSONファイルに保存

まず、scan操作を使ってDynamoDBからデータを取得し、結果をJSONファイルに保存します。

aws dynamodb scan --table-name YourTableName --output json > data.json

ここで、YourTableNameを実際のテーブル名に置き換えてください。

ステップ 2: jqを使用してJSONデータをフォーマット

次に、jqを使用してJSONデータから必要なフィールドを抽出し、CSV形式に変換します。

以下のコマンドでは、UpdateDtStatusという2つのフィールドを抽出する例を示します。

jq -r '.Items[] | [.UpdateDt.S, .Status.S] | @csv' data.json > data.csv

このコマンドは、data.jsonファイルからUpdateDtStatusの値を取り出し、CSV形式に変換してdata.csvファイルに保存します。

オプション: CSVツールを利用

他のフォーマット作業が必要であれば、追加ツールを活用することもできますが、jqのみでも十分に処理可能です。

これにより、DynamoDBから取得したデータをCSVファイルに変換して保存できます。

以下は、適切なフィールドを選択するための簡単なjqフィルタリングの例です:

jq -r '.Items[] | [.Field1.S, .Field2.N, .Field3.S] | @csv' data.json > data.csv
  • .Field1.S: 文字列型のフィールドを示します。
  • .Field2.N: 数値型のフィールドを示します。

それぞれのフィールド名をテーブルの実際のフィールド名に置き換えてください。

これで、DynamoDBの scan 操作を使ってデータを取得し、それをCSV形式で保存する方法がわかります。必要に応じて、使用するフィールド名や取得条件を調整してください。

コメント

タイトルとURLをコピーしました