AWSエクスポート形式の変換ガイド:DynamoDB・CloudTrail・S3 Inventory
AWSから出力されるDynamoDB JSON、Textract JSON、CloudTrail、S3 Inventory、CloudWatch Logs、TranscribeをCSV・Excel・字幕へ変換するときの違いを整理します。
同じJSONでも、そのままCSVにはできない
AWSのエクスポートは、サービスごとにデータの意味が違います。DynamoDBはS・N・Mなどの型付きAttributeValue、TextractはIdで結ばれたBlock、CloudTrailはRecords配列です。拡張子がJSONでも、通常のJSON→CSVだけでは必要な表にならないことがあります。
まずサービス名と出力元を確認し、その形式を解釈できる変換を選ぶのが近道です。Filewispでは6形式を別ツールに分け、変換後の用途に合わせてCSV、Excel、JSONL、SRT、VTTを選べるようにしています。
DynamoDB JSONは型を解除してから表にする
DynamoDBのS3エクスポートはJSON Linesで、各行のItemにS、N、BOOL、SS、M、Lなどの型情報が入ります。.json.gzを展開するだけでは、Excel上に型記号が残ったままです。まずAttributeValueを通常値へ戻し、その後にネストしたMapを列へ展開します。
特にN型は注意が必要です。IDや金額がJavaScriptの安全な整数範囲を超える場合があるため、変換時は文字列のまま保持すると桁落ちを防げます。増分エクスポートではKeys、NewImage、OldImageを混ぜず、それぞれの列として残すと変更前後を比較しやすくなります。
Textract JSONはRelationshipをたどって表を復元する
TextractのTABLEはセル値を直接持たず、RelationshipでCELLへ、CELLからWORDやSELECTION_ELEMENTへつながります。RowIndexとColumnIndexも見ながらBlockを組み立て直すことで、元の行列に近い表を作れます。
複数テーブルはExcelの別シートへ分け、KEY_VALUE_SETはフォーム一覧、LINEは本文一覧として保存すると確認しやすくなります。OCR文字の誤認識自体は構造変換では直らないため、Confidenceが低い行は元画像と照合します。
CloudTrailとCloudWatch Logsを混同しない
CloudTrailは誰がどのAWS APIを実行したかを追う監査イベントで、S3のログオブジェクトはgzip圧縮されたRecords形式です。複数ファイルをCSVへまとめると、eventSource、eventName、userIdentity、errorCodeを横断して絞り込めます。
CloudWatch Logsはアプリやサービスのログ本文です。S3エクスポートは複数の.gzへ分割され、イベントの順序が保証されないため、timestampを読み取って並べ直す処理が重要です。JSONメッセージならlevelやrequestIdも列へ展開すると調査が速くなります。
S3 Inventoryはmanifestとデータをセットで読む
S3 Inventoryのmanifest.jsonには、出力ファイル一覧とfileSchemaが入ります。実際のBucket、Key、Size、StorageClassなどの行はCSV.GZ、ORC、またはParquet側にあるため、manifestだけではオブジェクト一覧を表示できません。
CSV.GZにはヘッダーがないので、manifestのfileSchema順に列名を割り当てます。分割ファイルはsourceFile列を付けて結合すると、欠落や重複を調べるときにも元ファイルへ戻れます。
Transcribe JSONからSRT・VTTを作る
Amazon Transcribeは現在、ジョブ作成時にSRTやVTTの字幕出力を指定できます。一方、すでにJSONだけが残っているジョブや、字幕を指定しなかった既存データでは、results.itemsのstart_timeとend_timeから字幕を再構成する方法が使えます。
単語を句読点、文字数、時間、話者の切り替わりでまとめると読みやすい字幕になります。動画編集ならSRT、WebプレーヤーならVTT、タイムコードなしの確認用ならTXTを選びます。
機密データは小さなサンプルで先に検証する
監査ログ、OCR帳票、顧客データには機密情報が含まれることがあります。ブラウザ内変換なら外部サーバーへファイルを送らずに処理できますが、端末のメモリを使うため、非常に大きなエクスポートは小分けにします。
本番データをまとめて変換する前に、数行または1ファイルで列名、数値の扱い、文字コード、時刻、件数を確認します。変換後のCSVやExcelも元データと件数を照合してから共有します。