AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Atlas Infinite クラスターへのデータのロード

独自のデータを Atlas Infinite クラスターにロードするには、次のいずれかの方法を使用します。

これらのメソッドはそれぞれ、宛先 Atlas Infinite クラスターの書込みキャパシティーを消費します。アプリケーションへの影響を制限するには、非ピークのシステム使用中に大規模なデータ ロードを実行するか、 スケジュールされたメンテナンスウィンドウ を実行します。

次の前提条件を完了します。

mongodumpは既存のMongoDBスタンドアロンまたはレプリカセットのバイナリ エクスポートを作成し、Atlas Infinite クラスターにエクスポートする ロードを作成します。エクスポートには、元の配置からのデータ、メタデータ、 インデックスmongorestore が含まれます。既存のMongoDBシャーディングされたクラスターからデータをコピーする方法のガイダンスについては、 サポートのリクエスト を参照してください。

この手順は、Atlas Core の 無料クラスターまたは Flex クラスターから Atlas Infinite の専有クラスターにデータを移行する目的でも使用できます。データを移行するのではなく、無料クラスターまたは Flex クラスターをその場で増やすには、「 無料クラスターまたは Flex クラスターを専用クラスターにスケーリング 」を参照してください。

この手順では、ダウンタイムが必要です。ソース配置への書込みを停止し、mongodump とmongorestore を実行してから、アプリケーションを Atlas Infinite クラスターに切り替えます。

この手順を実行する前に、次の動作を考慮してください。

  • データの整合性: データの損失を防ぐには、mongodump を実行する前にソース配置への書き込みを一時停止します。セカンダリ メンバーからmongodump を実行する場合は、書き込みを一時停止し、セカンダリがプライマリに追いつくのを待ってからダンプを開始します。

  • ユーザーとロール: Atlas がデータベースユーザーを管理しているため、 は既存のデータベースユーザーまたはロールを宛先クラスターに移行できません。アプリケーションに必要なデータベースユーザーを宛先の Atlas Infinite クラスターで作成します。詳細については、mongorestore 「データベースユーザーの設定」 を参照してください。

  • 除外された名前空間:admin configダンプ内の ディレクトリとmongorestore admin.*ディレクトリには、 が Atlas Infinite クラスターに追加できないユーザー情報が保存されているため、この手順では とconfig.* は除外されます。

  • ホスト リソース:mongodump は復元元へのネットワークアクセスを持つホストで実行され、 はアーカイブファイルへのアクセスと復元先配置へのネットワークアクセスを持つホストで実行されます。どちらのツールもホスト上でmongorestore CPU とメモリを使用するため、そのホストのパフォーマンスに影響を与える可能性があります。

1

復元元で認証 が強制される場合、mongodump は、移行するすべてのデータベースを読み取りできるデータベースユーザーとして認証を受ける必要があります。backup データベースのadmin ロールはこれらの特権を付与します。

ソース配置にそのようなユーザーが存在しない場合は、作成します。データベースユーザーを作成および管理する方法については、ご使用の配置タイプの次のページを参照してください。

2

mongorestoreは、移行するすべてのデータベースに書き込みができるデータベースユーザーとして認証する必要があります。宛先 Atlas Infinite クラスターのAtlas admin ロールは、これらの特権を付与します。

宛先 Atlas Infinite クラスターにそのようなユーザーが存在しない場合は、作成します。 Atlas でデータベースユーザーを作成および管理する方法については、「 データベースユーザーの構成 」を参照してください。

3

mongodumpとmongorestore を実行するホストが両方の配置にアクセスできることを確認します。

  • 宛先 Atlas Infinite クラスターを含むプロジェクトのIP アクセス リストにホストを追加します。 IP アクセス リストにホストを追加する方法については、 「 IPアクセス リスト エントリの設定 」を参照してください。

  • ソース配置が別のプロジェクトの Atlas Core クラスターである場合は、そのプロジェクトのIP アクセス リストにもホストを追加します。ソース配置が自己管理型の場合は、ホストからの接続を受け入れるようにファイアウォールを構成します。詳しくは、「 ネットワークと構成の強化 」を参照してください。

VPCピアリングを設定する場合は、ピアのVPC CIDR ブロックまたはサブネット、またはピアVPCのセキュリティ グループをIP アクセス リストに追加できます。詳細については、 「 IPアクセス リスト 」を参照してください。

4
  1. mongodumpコマンドをアセンブルします。

    次の mongodump コマンド テンプレートは、 接続文字列を使用してソースレプリカセットまたはスタンドアロンクラスターに接続し、ダンプのアーカイブをファイルに出力します。

    テンプレートをテキストエディタにコピーし、<connectionString> プレースホルダーをソース配置の接続文字列に、<fileName> を作成するアーカイブファイルの名前に置き換えます。

    mongodump --uri "<connectionString>" --archive=<fileName>.archive

    ソース配置用の接続文字列を作成する方法については、「 接続文字列 」を参照してください。

    注意

    mongodumpmongorestoreUbuntu. で18 または04 cannot unmarshal DNSを使用している場合、SRV 接続文字列(mongodb+srv:// 形式)を オプションとともに使用すると、 エラー--uri メッセージが表示されることがあります。その場合は、次のいずれかのオプションを代わりに使用します。

    • --uri非 SRV接続文字列( mongodb://形式)と オプション

    • 直接接続するホストを指定するための--hostオプション

  2. ソース配置へのネットワークアクセスを持つホスト上のターミナルまたはコマンドプロンプトから、完了したコマンドを実行します。

    例

    次の mongodump コマンドは、 SRV接続文字列を使用してソース Atlas Core クラスターに接続します。この文字列には、admin で backup ロールを持つデータベースユーザーのユーザー名(mySourceUsername)とパスワード(mySourcePassword)が含まれています。データベース。このコマンドは、現在の 作業ディレクトリ内の mongodump.archive という名前のファイルにダンプのアーカイブを出力します。

    mongodump --uri "mongodb+srv://mySourceUsername:mySourcePassword@cluster0.example.mongodb.net" \
    --archive="mongodump.archive"
5
  1. mongorestoreコマンドをアセンブルします。

    次のmongorestore コマンド テンプレートは、接続文字列を使用して宛先の Atlas Infinite クラスターに接続し、 によって作成されたアーカイブを復元します。mongodump --nsExcludeadminconfigAtlas が管理する データベースと データベースを除外するには、 を使用します。

    テンプレートをテキストエディタにコピーし、次のプレースホルダーを適切な値に置き換えます。

    • <connectionString>: これを、宛先 Atlas Infinite クラスターの SRV接続文字列に置き換えます。宛先クラスターの接続文字列を検索または作成するには、「 接続文字列 」を参照してください。

      Atlas admin接続文字列に ロールを持つデータベースユーザーのユーザー名とパスワードを含めます。

    • <filePath>: これをmongodump が作成したアーカイブファイルへのパスに置き換えます。

    注意

    ユーザー名またはパスワードに次の文字が含まれている場合、それらをパーセント エンコーディングを使用して変換する必要があります。

    $ : / ? # [ ] @
    mongorestore --uri "<connectionString>" \
    --archive="<filePath>" \
    --nsExclude "admin.*" \
    --nsExclude "config.*"
  2. によって作成されたアーカイブファイルにアクセスできるホストで、ターミナルまたはコマンドmongodump プロンプトから完了したコマンドを実行します。

    例

    次のmongorestore コマンドは、 SRV接続文字列を使用して Atlas InfinitemyDestinationUsername myDestinationPasswordクラスターに接続します。この文字列には、Atlas admin ロールを持つデータベースユーザーのユーザー名( )とパスワード( )が含まれています。このコマンドは、 データベースとmongodump.archive mongodumpデータベースを除き、 によって作成されたadmin configのアーカイブを復元します。

    mongorestore --uri "mongodb+srv://myDestinationUsername:myDestinationPassword@cluster0.example.mongodb.net" \
    --archive="mongodump.archive" \
    --nsExclude "admin.*" \
    --nsExclude "config.*"
6

移行が完了したら、Atlas Infinite クラスターに接続し、データが正常に移行されたことを確認します。クエリを実行して、宛先クラスターにコレクションとドキュメントが存在することを確認できます。

7

移行を確認した後、アプリケーションを更新して、ソース配置ではなく Atlas Infinite クラスターに接続します。 Atlas Infinite クラスターに正しい接続文字列と認証情報を使用していることを確認します。

mongoimportはJSON またはCSV ファイルを読み取り、各レコードを Atlas Infinite クラスター内のコレクションに挿入します。ファイルはサードパーティのエクスポート ツールから取得される場合があります。 MongoDBデプロイから Atlas Infinite クラスターにデータを復元するには、 「 MongoDB配置からデータを復元する 」を参照してください。

この手順を実行する前に、次の動作を考慮してください。

  • 拡張JSON : は特定のBSON typesmongoimport に対して厳密モード表現を使用します。

  • ドキュメントのみ:mongorestore と違い、 はドキュメントのみをロードし、コレクションオプションやインデックス定義はロードしません。インポートが完了したら、宛先 Atlas Infinitemongoimport クラスターにインデックスを作成します。

  • ホスト リソース: は、ファイルを保持し、そのホスト上の CPUmongoimport とメモリを使用するホストで実行されます。

  • その他のインターフェース:コマンドラインなしでファイルを読み込むには、 ファイルと ファイルをインポートするMongoDB Compass、または貼り付けまたは入力した JSONCSVJSONドキュメントを挿入する Atlas UIを使用します。

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のDatabase & Network Accessをクリックします。

データベース &上記の手順を完了すると、[ ネットワーク アクセス ] ページが表示されます。

2

mongoimportを実行して Atlas クラスターに書き込むには、データをインポートするデータベースで 読み取り / 書き込み 特権を持つデータベースユーザーを指定する必要があります。例、Atlas admin ロールを持つユーザーにはこれらの特権が付与されます。

そのようなユーザーが存在しない場合は、ユーザーを作成します。

  1. まだ表示されていない場合は Database Users タブをクリックします。

  2. Add New Database User をクリックします。

  3. Atlas admin ユーザーを追加します。

3
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. サイドバーで、 Database見出しの下のClustersをクリックします。

[ Clusters (クラスター) ] ページが表示されます。

4

データを移行する Atlas クラスターのConnectをクリックします。

5

mongoimportを実行するホストがIPアクセス リストにない場合は、更新します。次のいずれかを指定できます。

  • mongoimport が実行されるサーバーのパブリック IP アドレス、または

  • VPC ピアリングを設定する際、クラウドプロバイダーとして AWS を選択した場合、ピア VPC の CIDR ブロック(またはサブネット)またはピア VPC のセキュリティグループのいずれかとなります。

6

Atlasクラスターには、 接続文字列 URIを使用して接続できます。 接続ダイアログボックスで、次の手順を実行します。

  1. [Drivers] をクリックします。

  2. 手順 1 で見つかった接続文字列をコピーします。

  3. PASSWORD を root ユーザーのパスワードに置き換え、DATABASE を接続先のデータベースの名前に置き換えます。

    重要

    提供された <PASSWORD> 内の@ 文字をすべてエスケープする必要があります。たとえば、p@ssword は p%40ssword にする必要があります。

この接続文字列は、mongoimport --uriオプションで に指定されます。

--host を使用する際、Atlas クラスターがレプリカセットである場合は、レプリカセット名も取得する必要があります。例:

myAtlasRS/atlas-host1:27017,atlas-host2:27017,atlas-host3:27017
7

一括書き込み操作は 、1 回のリクエストで Atlas Infinite クラスターに多くの書き込みを送信するため、ネットワーク ラウンド トリップが削減され、 書込みスループットが向上します。既存のデプロイメントまたはファイルからデータをコピーする代わりに、生成したドキュメントを Atlas Infinite クラスターに書込み (write) する場合は、この方法を選択します。

この手順を実行する前に、次の動作を考慮してください。

  • 一括書込み動作: 一括書込みリクエストで指定する書込み操作とオプションによって、 MongoDB が書込み操作を順序付け、エラーを処理し、リクエストの結果を報告する方法が決まります。これらの選択が一括書き込みの動作にどのように影響するかについては、bulkWrite() の参照ページを参照してください。

  • その他のインターフェース: バッチinsertMany() insertOne()mongoshロジックを使用せずに少数のドキュメントを作成するには、 またはMongoDBドライバー、または貼り付けまたは入力した ドキュメントを挿入する Atlas UIからの JSONまたは を使用します。

1

この手順の一括書き込み操作を実行するには、mongosh を使用してクラスターに接続します。方法については、「 Atlas クラスターへの接続 」を参照してください。

また、 MongoDBドライバーを使用したアプリケーションコード、Atlas UI、またはクラスターに接続するその他のインターフェースから、一括書き込み操作を実行することもできます。各インターフェースで同等の操作の詳細については、「 一括書込み操作 」を参照してください。

2

単一のコレクションに書き込むには、bulkWrite() を実行します。書込み操作の種類と一括書込みオプションの詳細については、bulkWrite() を参照してください。

例、次のコマンドは、2 つのドキュメントを inventoryコレクションに挿入します。

db.inventory.bulkWrite( [
{ insertOne: { document: {
_id: ObjectId("68b1c2d3e4f5a6b7c8d9e0f1"),
item: "notebook",
qty: 50
} } },
{ insertOne: { document: {
_id: ObjectId("68b1c2d3e4f5a6b7c8d9e0f2"),
item: "pencil",
qty: 100
} } }
] )

1 回のリクエストで複数のコレクションまたはデータベースに書き込むには、 を実行し、各操作の名前空間を指定します。例、次のコマンドは、 コレクションに 1bulkWrite() つのドキュメントを挿入し、sales.inventory コレクションに 2 つのドキュメントを挿入します。supplies.inventory

db.getMongo().bulkWrite( [
{
namespace: "sales.inventory",
name: "insertOne",
document: { item: "notebook", qty: 50 }
},
{
namespace: "supplies.inventory",
name: "insertOne",
document: { item: "pencil", qty: 100 }
}
] )

デフォルトでは 、一括書き込み操作は順番に実行され、最初のエラーで停止します。実行順序の構成方法については、「 操作の実行 」を参照してください。

3

操作によって返されるカウントを確認し、各 ターゲットコレクション内のドキュメント数を確認します。詳細については、「 出力 」を参照してください。

一括書き込み操作のエラーを処理する方法については、「 エラー処理 」を参照してください。

Atlas Infinite には、パブリック プレビューの可用性 にpublic preview制限の完全なリストがあります。 Atlas Infinite クラスターにデータをロードする場合、次の制限が適用されます。

  • oplogリプレイなし: Atlas Infinite はoplogリプレイをサポートしていません。 Atlas Infinite クラスターでは、mongodump --oplog オプションまたはmongorestore --oplogReplay オプションは使用しないでください。

  • Queryable Encryptionとクライアント側のフィールドレベル暗号化: Queryable Encryptionまたはクライアント側フィールドレベル暗号化を使用するコレクションでは、mongodump または mongorestore は使用できません。

  • クロスエディションのライブ移行と復元: Atlas Infinite は、Atlas Core クラスターと Atlas Infinite クラスター間のライブ移行またはバックアップと復元をサポートしていません。 2 つの配置オプション間のアーキテクチャの違いにより、スナップショットとライブ移行は互換性がなくなります。