インポート
DynoTable は CSV、JSON、NDJSON ファイルを既存のテーブルへ インポートします — エクスポートの対になる機能です。 ファイル全体を 1 行も書き込む前にチェックするので、不正なファイルは行番号 付きで失敗し、データが中途半端にインポートされたまま残ることはありません。
テーブルツールバーの インポート ボタンから開きます。インポートはテーブルに 書き込むため、Trialing または Active なライセンスが 必要です。

インポートはすでに存在するテーブルへデータを読み込みます — テーブルを新規に 作ることはありません。まずテーブル(とそのプライマリキー) を作成してから、そこへインポートしてください。
忠実度の 2 段階
完全 — (DynamoDB-JSON)のワイヤ形式で
書かれた JSON / NDJSON。何も推測しません — 値はすでにそれぞれの型を持って
いるので、この形式で取得したエクスポートは何も変わらずに再インポートされます。
データが重要なときはこの形式を使ってください。
簡便 — CSV とプレーンな(アンマーシャリングされた)JSON。これらは型
情報を持たないため、DynoTable が列ごとに型を推論し、コミットする前に何を選んだ
かを表示します。手軽な一方、決められた形で情報が失われます — 詳しくは
簡便な形式のファイルで失われる情報
を参照してください。
列と型
ファイルのヘッダーが属性名になります。プレビューには、DynoTable が推論した型 とともにすべての列が一覧表示されます。列ヘッダーを右クリックすると、ヘッダーが 自分の属性名と一致しないときにリネームしたり、推論された型が望むものと 違うときにデータ型を変更したりできます — たとえば、数字だけで構成された 商品コードを、数値ではなくテキストのまま保ちたい場合などです。
型の候補一覧には、その列の値が実際になり得る型しか表示されません。プレーン テキストの列であれば Map や List は候補に出てきません。候補が 1 つしかない 列には一覧自体が表示されません。マッピング用の画面はこれ以上ありません。
ファイルはテーブルの完全なプライマリキーを備えている必要があります。キー 属性が欠けている行や、キーの型が間違っている行は、名前を示した上で拒否され ます。
ファイル全体が通るまで何も書き込まれない
インポートはファイルを 2 回読みます。1 回目のパスはすべての行を検証し、 何も書き込みません。ファイルが通ったときだけ、2 回目のパスで書き込みます。
- 問題は行番号(JSON 配列の場合はアイテムの位置)とともに報告され、一度に 最大 20 件まで表示されます。
- 1 つのファイル内に同じキーを持つ行が 2 つあると拒否され、両方の位置が 表示されます — DynamoDB は最後の 1 件だけを黙って残してしまいます。
- ファイルを直して再度インポートを押してください。ダイアログは選択した ファイルのまま維持されます。
インポートは一致するアイテムを置き換える
インポートされた行は、同じプライマリキーを持つ既存のアイテムを、属性ごと そのまま置き換えます — マージはされません。古いアイテムが持っていて ファイルにはない属性は失われます。
インポートはステージングも経由しません。そのため確認 ステップも取り消し(revert)もありません。ステージされた編集とは異なり、 インポートはアプリの履歴から元に戻すことができません。大切なデータに対しては、 まずテーブルのコピーにインポートして結果を確認してください。
制限
| 制限 | 値 |
|---|---|
| CSV / NDJSON のファイルサイズ | 250 MB |
単一の .json 配列 | 50 MB — それ以上は NDJSON を使ってください |
| インポートあたりの行数 | 2,000,000 |
| アイテム 1 件 | 400 KB(DynamoDB 自体の上限) |
.json ファイルは 1 つの大きな配列を丸ごとパースする必要があるため、上限が
低くなっています。NDJSON — 1 行に 1 アイテム — はストリーミングできるため、
250 MB まるごと扱えます。
簡便な形式のファイルで失われる情報
以下は CSV とプレーン JSON のみに当てはまります。マーシャリング済みの DynamoDB-JSON 形式にはこうした問題はありません。
- 型は先頭およそ 200 行のサンプルから推論されます。 そこでは数値に見える 列が、ファイルの後の方で数値でなくなると、検証中に拒否されます — 直すには ファイル側を修正してください。
- Set とバイナリは CSV で表現できないため、CSV からインポートすることは できません。
- 空のセルはスキップされ、空文字列としては書き込まれません。アイテムには 単純にその属性が存在しなくなります。
- Map と List はそのまま維持されます。 エクスポートはそれらを CSV セルに JSON テキストとして書き込み、インポートはそのテキストを認識して構造を 再構築します。あるテキストの列がたまたま JSON のように見えるだけの場合は、 プレビューにその結果が表示されるので、その列のデータ型を String に 戻すことができます。
- プレーン JSON の非常に大きな数値は、DynoTable が受け取る前に精度が 失われます — これは JSON 自体の制約です。厳密な値を保つ必要がある ID や 金額には DynamoDB-JSON を使ってください。
- スプレッドシート保護のマークは戻す際に処理されます。 エクスポートは、
スプレッドシートが数式とみなすセルの先頭にアポストロフィを付加します。
インポート時、
'-5は数値の-5に、'+7はテキストの+7として戻ります — ただし'=SUM(A1)のような本物の数式は、アポストロフィをそのまま維持 します。これを取り除くと、そのマークが本来防ぐはずのものが再び有効になって しまいます。
進捗、キャンセル、失敗
実行中のインポートは、サイドバー下部の Activity ドックにライブの進捗と ともに表示され、他のタブで作業している間も継続します。そこからStopする こともでき、すでに書き込まれた行はそのまま残ります。
DynamoDB がテーブルを強くスロットリングし、リトライしても一部の行が書き込め なかった場合、インポートは完了し、何行が書き込めなかったかを伝えます。 同じファイルを再実行しても安全です — 書き込みに成功していた行は、同じ値で もう一度書き込まれるだけです。
インポートのエントリは、あなたが閉じるまでドックに残り続けます。インポートは 指し示すファイルを生成しないため、その行だけが実行が完了したことを示す唯一の 記録になります。


