エクスポート

DynoTable はクエリ結果を CSV、JSON、NDJSON にエクスポートします — 選択した 1 行から、フィルター済みの結果セット全体までです。テーブルのフィルター済みエクスポートを Amazon S3 へ直接送ることもできます。大きなエクスポートはバックグラウンドで実行され、タブを切り替えても、プロファイルを変えても、アプリをリロードしても続行します。

⌘⇧E でエクスポートダイアログを開くか、タブツールバーのエクスポートボタンを使います。ダイアログは 2 つのステップで構成されます:

  1. 出力先を選ぶ — ファイル、クリップボード、S3 のいずれか。 1、2、3 を押すか、↑ / ↓ で移動して ↩ を押します。このタブの行を受け取れない出力先はグレー表示になり、その理由が表示されます。
  2. オプションを設定する — ファイルとクリップボードでは 範囲 と 形式を選び、それ以外の設定は オプション の中にまとまっています。折りたたまれた行には、すべての列 · プレーンな値 のように現在の選択内容が要約されます。ボタンは エクスポート または コピー で、ダイアログ内のどこからでも ⌘↩ で押せます。

オプションのステップで Esc を押すと出力先の選択に戻り、もう一度 Esc を押すとダイアログが閉じます。ダイアログは毎回出力先のステップから始まります。

OpenSearch インデックスはファイルかクリップボードにエクスポートでき、S3 にはエクスポートできません: 一括編集、エクスポート、インポートを参照してください。

DynoTable の DynamoDB エクスポートダイアログの最初のステップ:行の送り先として、ファイル、クリップボード、Amazon S3 のいずれかを選びます。
DynoTable の DynamoDB エクスポートダイアログの最初のステップ:行の送り先として、ファイル、クリップボード、Amazon S3 のいずれかを選びます。

形式

  • CSV — アイテム 1 件につき 1 行、ヘッダー付き。Set はセル内で JSON 配列としてシリアライズされます(セットのセマンティクスは失われますが、スプレッドシートで読みやすくなります)。
  • JSON — アイテムの JSON 配列。
  • NDJSON — 改行区切りの JSON、1 行に 1 アイテム。他のツールへストリーミングするのに最適です。

JSON と NDJSON では、オプション の 値 で各値の書き出し方を選びます:

  • プレーンな値 — 素の、読みやすい JSON("count": 3)。
  • DynamoDB-JSON — 型でラップされたマーシャル済みのワイヤ形式。ロスレスなラウンドトリップが必要なときに使います — プレーンな値では壊れてしまう大きな数値(> 2⁵³)とバイナリ値を保持します。全マッチ範囲でのみ利用できます。

CSV では、オプション に列の選択が入ります。

S3 へのエクスポートでは、代わりに DynamoDB JSON または Amazon Ion で書き出します。

範囲

  • 現在読み込み済み — グリッドに現在読み込まれている行。
  • 選択範囲 — 選択した行のみ。
  • フィルター完全一致 — フィルター/クエリに一致するすべてのアイテムを、(読み込み済みのものだけでなく)DynamoDB から直接ストリーミングします。全件一致の大きなエクスポートは、クエリやスキャンが読み取るすべてのアイテムについて読み取りキャパシティが課金されます。フィルターで後から除外されるアイテムも含まれます。エクスポートは結果整合性で読み取るので、オンデマンドでは読み取った 4 KB ごとに 0.5 読み取りリクエストユニットが課金されます(ページ単位で合計)。数百万行をストリーミングする前に、料金計算ツールでコストの見当をつけてください。

一致するすべてのアイテムの選択では、選択範囲 は使えません。選択バーの エクスポート は、同じクエリに対するフィルター完全一致 を開きます。

クリップボード は最初の出力先のステップで選び、現在読み込み済み と選択範囲 の範囲だけを受け付けます。そこでは フィルター完全一致 は表示されず、常にファイル(または S3)に書き込みます。

Smart Table や Workbench の結果はフィルター完全一致としてのみエクスポートできるため、クリップボードは提供されず、 DynamoDB-JSON の値も Smart Table、Workbench、PartiQL の結果には提供されません。これらのエクスポートの実行には、クエリそのものの実行と同様に、有効なライセンスまたはトライアルが必要です。

リネームした列

タブで列をリネームした場合 — あるいはリレーションシップラベル付きの Smart Tableをエクスポートする場合 — リネームした名前がエクスポートに反映されます。CSV ヘッダーと JSON / NDJSON のキーにあなたのラベルが使われますが、内部のデータ参照には影響しません。(DynamoDB-JSON の値は、ラウンドトリップの整合性のために元の属性名を保持します。)

バックグラウンドエクスポート

大きなテーブルの全マッチエクスポートには時間がかかることがあります。バイトが流れ始めると、ダイアログが閉じてエクスポートが切り離されます — サイドバー下部のアクティビティパネルにライブの進捗とともに表示され、タブを閉じても、プロファイルを切り替えても、アプリをリロード(⌘R)しても続きます。

  • アクティビティパネルから進捗を確認したり、キャンセルしたりできます。書き込んだ行数とバイト数が表示され、右側に時間が表示されます。テーブルをスキャンするエクスポートではプログレスバーが進み、数秒後には残り時間が表示されます。この見積もりは DynamoDB が約 6 時間ごとに更新するテーブルのアイテム数に基づくため、おおよその値です。クエリのエクスポートは経過時間を表示します。
  • アクティビティのポップアップで見ている間に完了したエクスポートは、表示 と 完了 とともにそのまま残ります。バックグラウンドで完了したものはトーストを表示し、クリックするとファイルが表示されます。
  • キャンセルされたエクスポートは静かに終わります。失敗したものはエラーメッセージと 閉じる ボタンとともに残ります — エクスポートを再実行してやり直してください。
  • S3 へのエクスポートはキャンセルできません。その X は追跡を停止 で、実行前に確認されます。DynoTable はそのエクスポートを追跡しなくなりますが、エクスポートは AWS で引き続き実行され、課金も続きます。完了した S3 エクスポートには S3 URI をコピー と AWS コンソールで開くが表示されます。

S3 へのエクスポート

出力先のステップで S3 を選ぶと、タブのクエリを DynamoDB 自身にあなたの S3 バケットへ書き出させます。DynoTable はタブのビジュアルクエリから組み立てたフィルター付きで ExportTableToPointInTime を開始するので、クエリに一致するアイテムだけがエクスポートされます。処理と課金は AWS 側で行われ、DynoTable はエクスポートを開始し、アクティビティ パネルで追跡し、結果の場所を示します。

エクスポートはライブのテーブルではなく、テーブルの ポイントインタイムリカバリのバックアップを読み取るため、読み取りキャパシティを使わず、負荷の高い本番テーブルに対しても安全に実行できます。ステップ上部の注記に、何を読み取るかが表示されます。テーブルまたはローカルセカンダリインデックスに対するキークエリなら 1 つのパーティションだけ、スキャンやグローバルセカンダリインデックスのクエリならテーブルのバックアップ全体です。

入力するもの:

  • バケット — アカウントのバケットから選ぶか、名前を入力します。
  • プレフィックス — バケット内でファイルを置く場所。既定値は dynotable/<table>/ で、DynoTable はプロファイルとリージョンごとに最後に使ったバケットとプレフィックスを記憶します。

オプション の中:

  • 形式 — DynamoDB JSON(1 行に 1 アイテム、すべての値に型のタグ付き)または Amazon Ion(ネイティブの数値、バイナリ、セットを持つ JSON)。 S3 エクスポートに CSV はありません。
  • 時点 — 現在、またはテーブルの復元ウィンドウ内の 特定の時点。
  • 列 — すべての列 または 表示中の列のみ。キー属性は常にエクスポートされます。
  • 暗号化 — S3 デフォルト、または ARN で指定する KMS キー。
  • バケット所有者のアカウント — バケットが別のアカウントのものである場合の 12 桁のアカウント ID。

S3 にエクスポート(または ⌘↩)で開始すると、ファイルへのエクスポートと同じく、そのエクスポートのアクティビティポップアップが開きます。ポップアップを閉じてもエクスポートは止まりません。エクスポートには数分から数時間かかります。完了すると、アクティビティのポップアップにアイテム数と課金対象のサイズが表示されます。

エクスポートダイアログの S3 ステップ:バケットとプレフィックス、バックアップの 1 パーティションだけを読み取るという注記、そして S3 にエクスポート。
エクスポートダイアログの S3 ステップ:バケットとプレフィックス、バックアップの 1 パーティションだけを読み取るという注記、そして S3 にエクスポート。

いくつかの要件があります:

  • ポイントインタイムリカバリが有効である必要があります。 オフの場合はステップにその旨が表示され、テーブル設定を開く からテーブル設定ダイアログを開いてオンにできます。
  • テーブルタブのビジュアルクエリのみ。 PartiQL、ベクトル検索、 Smart Table、Workbench のタブでは S3 はグレー表示になり、範囲は常にフィルター完全一致です。グローバルセカンダリインデックスのクエリは、インデックスの射影ではなくアイテム全体をエクスポートします。
  • DynamoDB Local やその他のオフラインプロファイルでは S3 は表示されません。
  • S3 エクスポートの開始には、有効なライセンスまたはトライアルが必要です。

コードとしてエクスポート

ビジュアルフィルターで組み立てたクエリは、プログラムとして DynoTable の外へ持ち出せます。テーブルタブの Visual モードでタブツールバーのコードを選ぶと、DynoTable はいま実行したそのままのリクエスト — インデックス、キー条件、フィルター式、式の属性名と属性値 — を、選んだターゲット向けのすぐに実行できるコードに変換します:

  • JavaScript / TypeScript — SDK v3(QueryCommand / ScanCommand)、 DocumentClient、DynamoDB Toolbox のプログラム。
  • AWS CLI — aws dynamodb query または scan コマンド。
  • Python — boto3。
  • Java、Go、.NET、Rust、Kotlin、PHP、Ruby — 各 SDK が期待する型付きの AttributeValue の形。
  • PartiQL — 同等の SELECT ステートメント。

ページネーションをオンにすると、結果セットを使い切るまで LastEvaluatedKey をたどるループでリクエストが包まれます。単一ページで済ませるならオフのままにします。

DynoTable の「コードとしてエクスポート」ダイアログ: ビジュアルな DynamoDB クエリを実行可能な boto3 プログラムとしてレンダリングしたもの。ターゲットセレクターとページネーションのトグル付き。
DynoTable の「コードとしてエクスポート」ダイアログ: ビジュアルな DynamoDB クエリを実行可能な boto3 プログラムとしてレンダリングしたもの。ターゲットセレクターとページネーションのトグル付き。

このコードは、このサイトのクエリビルダーを支えるのと同じオープンソースのエミッターから生成されるので、ターゲットが表現できないリクエストは、正しそうに見えて実は正しくないコードとしてレンダリングされるのではなく、その旨が報告されます。

クエリの形式が対象とするのは、ビジュアルなキークエリまたはスキャンです。 PartiQL モードとベクトル検索の間は無効になり、下のテーブル定義だけが選べます。Smart Table と Workbench のクエリにはエクスポートすべき単一のテーブルがないため、そこでは コード は提供されません。

テーブル定義

同じダイアログで、テーブルそのものもエクスポートできます。テーブル定義 から Terraform(aws_dynamodb_table)、AWS CDK(TableV2)、または YAML か JSON の CloudFormation(AWS::DynamoDB::GlobalTable)を選びます。

DynoTable はあなた自身の認証情報でライブの定義を読み取り — DescribeTable と、TTL のための DescribeTimeToLive — キーとその属性定義、課金モードとキャパシティ、GSI と LSI、TTL、削除保護、ストリーム、暗号化、テーブルクラス、オンデマンドの最大スループット、グローバルテーブルのレプリカ、そしてターゲットが対応している場合はベクトルインデックスを書き出します。認証情報で TTL を読み取れない場合も、エクスポートは動作し、TTL の設定は不明と示します。結果は コピー で取り出します。ファイルへの保存はありません。

ポイントインタイムリカバリ、タグ、オートスケーリングのポリシー、ウォームスループット、レプリカごとの設定は DescribeTable が返す内容に含まれないため、出力にも含まれません。生成されたコードに自分で追加してください。このサイトの無料のインフラストラクチャコードジェネレーターも同じエミッターで動いています。

テーブル定義のエクスポートは読み取りなので、無料プランで使えます。

コードとしてエクスポートのテーブル定義モード。現在のテーブル定義から作成した Terraform リソース。
コードとしてエクスポートのテーブル定義モード。現在のテーブル定義から作成した Terraform リソース。

クイックコピー

一度きりの取得には、行(または選択)を右クリックして形式を選んでコピー…を使い、ダイアログなしで CSV、JSON、NDJSON、DynamoDB-JSON をそのままクリップボードに載せます。一致するすべてのアイテムの選択に含まれる行では 形式を選んでコピー… は使えません。代わりに エクスポート を使ってください。

AI チャットからエクスポートを開始することもできます — テーブルやクエリのエクスポートを依頼すると、同じエンジンを通じてダウンロード可能なファイルを生成します。テーブルタブを S3 へエクスポートすることもできますが、その場合は Full Auto でも毎回、拒否 と 許可 だけで確認を求めます。

更新日