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

標準コレクション用の Atlas Online アーカイブ の構成

重要

Flex クラスターで利用できない機能

Flex クラスターは現時点ではこの機能をサポートしていません。詳しくは、 「Atlas Flex の制限事項」をご覧ください。

アーカイブ ルールを指定することで、標準コレクション内のデータをアーカイブするように構成できます。標準コレクションのアーカイブ ルールは、次のいずれかになります。

  • 保持期間とペアになった日付フィールドで、Atlas がクラスターからアーカイブ(Date Match)にデータを移動するタイミングを決定します。

  • アーカイブするドキュメントを選択するカスタムJSONクエリ(Custom Criteria)。

Atlas クラスターをオンライン アーカイブ用に構成するには、次の手順に従います。

  1. コレクションの名前空間とアーカイブするデータを選択するための基準を指定して、アーカイブ ルールを作成します。

  2. (任意)アーカイブ データをパーティション分割するよくクエリされるフィールドを指定します。

クラスターで Online Archive を構成すると、Atlas はアーカイブ専用とアーカイブ用の 2 つのフェデレーティッドデータベースインスタンスをクラスター上に作成します。

すべてのオンライン アーカイブに適用される制限については、「制限」を参照してください。

Atlas Online アーカイブを構成する前に、Atlas クラスターが正常であることを確認してください。1 つのノードがダウンしている場合、クラスターが完全に機能するまでアーカイブは PENDING ステータスのままになります。

Atlas Online Archive を作成するには、プロジェクトに対するProject Data Access Admin以上のアクセス権が必要です。

アーカイブが利用可能かどうかを確認するには、プロジェクトに対するProject Read Only以上のアクセス権が必要です。

Atlas CLI を使用してクラスターのオンラインアーカイブを作成するには、次のコマンドを実行します。

atlas clusters onlineArchives create [options]

Atlas CLI を使用して特定のオンライン アーカイブが使用可能になるかどうかを確認するには、次のコマンドを実行します。

atlas clusters onlineArchives watch <archiveId> [options]

前のコマンドの構文とパラメーターについて詳しくは、Atlas CLIドキュメントの Atlas clusters onlineArchives create and Atlas clusters onlineArchives watch を参照してください。

API からオンライン アーカイブを構成するには、オンラインアーカイブエンドポイントにPOSTリクエストを送信します。

注意

DATE条件を使用する場合は、パーティション キーの一部としてdateフィールドを指定する必要があります。

同じデータベースとコレクションに対して同じアーカイブ ルールを持つ Active オンライン アーカイブがクラスターにすでにある場合、操作は失敗します。ただし、既存のオンライン アーカイブが Paused または Deleted 状態にある場合は、新しいオンライン アーカイブが作成され、そのステータスは Active に設定されます。構文とオプションの詳細については、API を参照してください。

Atlas UIで 標準コレクション用のオンライン アーカイブを構成するには次の手順に従います。

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

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

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

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

2

サイドバーで、Online Archive をクリックします。

Atlas Online Archiveページが表示されます。

3

コレクションのオンライン アーカイブを設定するには、次をクリックします。

  • Configure Online Archive 1 回目は [] ボタンをクリックします。

  • Add Archive [] ボタンをクリックします。

4
5
  1. Namespaceフィールドに、データベース名、ドット( . )セパレーター、コレクション名( <database>.<collection> )を含むコレクション名前空間を指定します。

    オンライン アーカイブが作成された後は、名前空間を変更できません。

  2. 最適なパフォーマンスを確保するには、コレクションの Dateフィールドにインデックスを作成します。

  3. アーカイブされたデータを保存するクラウドプロバイダーのリージョンを選択します。

    重要: 別のリージョンを選択するとデータ転送コストが高くなる可能性があるため、可能であればクラスターと同じリージョンを選択することをお勧めします。

    Atlas では、クラスターが配置されているクラウドプロバイダーに基づいて、クラウドプロバイダーのリージョンが表示されます。 マルチクラウド クラスターの場合、Atlas には最も優先順位の高いプロバイダーのクラウドプロバイダー リージョンが表示されます。 Atlas は を表示しますクラスターが配置されているリージョンに近い、または完全に一致するリージョンの横にある。

    Atlasに配置されたAmazon Web Services クラスターの場合は、次のいずれかのリージョンを選択できます。

    Data Federation のリージョン
    Amazon Web Servicesリージョン
    Atlas リージョン

    米国バージニア州北部

    us-east-1

    US_EAST_1

    米国ワシントン州

    us-west-2

    US_WEST_2

    サンパウロ(ブラジル)

    sa-east-1

    SA_EAST_1

    アイルランド

    eu-west-1

    EU_WEST_1

    London, England, UK

    eu-west-2

    EU_WEST_2

    フランクフルト(ドイツ)

    eu-central-1

    EU_CENTRAL_1

    Tokyo, Japan

    ap-northeast-1

    AP_NORTHEAST_1

    韓国(ソウル)

    ap-northeast-2

    AP_NORTHEAST_2

    ムバイ(インド)

    ap-south-1

    AP_SOUTH_1

    香港

    ap-southeast-1

    AP_SOUTHEAST_1

    オーストラリア、シドニー

    ap-southeast-2

    AP_SOUTHEAST_2

    カナダ・ケベック州・モントリオール

    ca-central-1

    CA_CENTRAL_1

    Azureに配置された Atlas クラスターの場合、別のクラウドプロバイダーを使用しているクラスター上に他のオンラインアーカイブがない場合にのみ、 Azureリージョンを選択できます。 クラスター上の既存の Online Archive がアーカイブ データの保存にAmazon Web ServicesまたはGoogle Cloud Platformを使用している場合は、そのクラスター上の新しい Online Archive に対してAmazon Web ServicesまたはGoogle Cloud Platformのリージョンのみを選択できます。

    重要: Azureに配置されたクラスターの場合、 Amazon Web ServicesまたはGoogle Cloud Platformを使用する既存のオンラインアーカイブがあり、それらを削除する場合は、 Azureを使用する新しいオンラインアーカイブを作成する前に 5 日間待つ必要があります。この 5 日間に新しい Online アーカイブを作成しようとすると、最初に選択したクラウドプロバイダーがデフォルトでデフォルト。

    Azureに配置された Atlas クラスターの場合は、次のいずれかのリージョンを選択できます。

    Data Federation のリージョン
    Azure リージョン
    Atlas リージョン

    Virginia, USA

    eastus2

    US_EAST_2

    サンパウロ(ブラジル)

    brazilsouth

    BRAZIL_SOUTH

    オランダ語

    westeurope

    EUROPE_WEST

    AtlasGoogle Cloud Platformに配置された クラスターの場合、別のクラウドプロバイダーを使用しているクラスター上で他のオンラインアーカイブがない場合にのみ、Google Cloud Platform リージョンを選択できます。クラスター上の既存の Online Archive がアーカイブ データの保存にAmazon Web ServicesまたはAzureを使用している場合は、そのクラスター上の新しい Online Archive にはAmazon Web ServicesまたはAzureリージョンのみを選択できます。

    重要: Google Cloud Platformに配置されたクラスターの場合、Amazon Web ServicesまたはAzureを使用する既存のオンラインアーカイブがあり、それらを削除する場合は、Google Cloud Platformを使用する新しいオンラインアーカイブを作成する前に 5 日間待つ必要があります。この 5 日間に新しい Online アーカイブを作成しようとすると、最初に選択したクラウドプロバイダーがデフォルトでデフォルト。

    Atlasに配置されたGoogle Cloud Platform クラスターの場合は、次のいずれかのリージョンを選択できます。

    Data Federation のリージョン
    Google Cloud リージョン
    Atlas リージョン

    Iowa, USA

    us-central1

    IOWA_USA

    ベルギー

    europe-west1

    BELGIUM_EU

    重要: Atlas でオンラインアーカイブが作成された後は、ストレージリージョンを変更することはできません。

  4. Date Match タブまたは Custom Criteriaタブでアーカイブするドキュメントを選択するための基準を指定します。

    日付フィールドと日数の組み合わせを使用して コレクションからドキュメントを選択するには、次のようにします。

    • コレクション内のドキュメントからすでにインデックス付きの日付フィールドを指定します。 ネストされたフィールドを指定するには、ドット表記 を使用します。

    • Atlas クラスターにデータを保持する日数を指定します。

    • 指定された日付フィールドの日付形式を選択します。日付は、 ISO-8601 形式の日付、 UNIXエポック形式のタイムスタンプ、または ObjectId として表現できます。UNIXエポック タイムスタンプは、ナノ秒、ミリ秒、または 秒単位で表現できます。

      次のいずれかの形式を選択する場合、指定される日付フィールドの値はBSON 型longである必要があります。

      • EPOCH_SECONDS

      • EPOCH_MILLIS

      • EPOCH_NANOSECONDS

      重要: オンラインアーカイブが作成された後は、日付フィールドを変更できません。

    カスタム フィルターを使用してコレクションからドキュメントを選択するには、実行する有効なJSONフィルターを指定します。 Atlas は、指定されたカスタム フィルターをdb.collection.find(filter) コマンドを使用します。 空のドキュメント引数( {} )を使用してすべてのドキュメントを返すことはできません。 $expr などの MongoDB Atlas 演算子 を使用して、次の例に示すようにすべての集計演算子を利用できます。

    重要: 次の例では、すべてのドキュメントに日時値を持つ bucket_end_date フィールドが含まれていることを前提としています。次の例では、Atlas は bucket_end_dateフィールドを含まないすべてのドキュメントと、bucket_end_date が日時値ではないすべてのドキュメントをアーカイブします。

    このカスタム フィルターの例では、現在の日付がドキュメントのbucket_end_dateフィールドの日付を超えた場合、Atlas は現在の日付から 30 日(ミリ秒単位)を差し引き、その日数、時間数、分数が過ぎるとデータをアーカイブします。

    {
    "$expr": { "$lte": [
    "$bucket_end_date",
    { "$subtract": [ "$$NOW", 2592000000 ] }
    ] }
    }

    このカスタム フィルターの例では、現在の日付がobjectId内の日付を超えると、Atlas は現在の日付から 30 日(ミリ秒単位)を減算し、その日数、時間数、分数が過ぎるとデータをアーカイブします。

    {
    "$expr": {
    "$lte": [
    {"$toDate": "$_id"},
    { "$subtract": [ "$$NOW", 2592000000 ] }
    ]
    }
    }

    カスタム フィルターで$exprを使用すると、Atlas クラスターがデータをアーカイブするためにインデックスを使用できなくなる可能性があります。

    次のカスタム フィルターの例では、フィールドを複数含む複雑な条件を示しています。

    {{{
    "$and":[
    {"$expr":{"$lte":["$createdAt",{"$subtract":["$$NOW",43200000]}]}},
    {"status":{"$ne":"active"}}
    ]
    }}}

    重要

    Atlas は最初のアーカイブ実行中にインデックス十分性クエリを実行して、アーカイブ処理の効率を判断します。返されたドキュメント数に対するスキャンされたドキュメント数の比率が 10 以上の場合、そのクエリ結果では Index Sufficiency Warning を発行します。この警告は、効率的なアーカイブ プロセスに対してインデックスが不十分であることを示しています。日付ベースのアーカイブの場合は、日付フィールドにインデックス必要があります。式を使用するカスタム条件の場合、Atlas はクエリに対して値を評価する前に、まず値を変換する場合があります。

    インデックスの十分性に関するクエリは、十分なインデックスが検出されると実行を停止します。コレクションのインデックスが後で削除され、アーカイブプロセスが低速化する場合、Atlas は Index Sufficiency Warning を発行しません。

6
  1. (任意) Data Retention Periodを指定します。

    デフォルトでは、Atlas はアーカイブ データを削除しません。 ただし、 Data Retention Periodを指定した場合、アーカイブ データを保持するには、 79125日(25 年間)を指定できます。 Atlas は、ここで指定した日数の経過後にアーカイブ データを削除します。 このデータ有効期限ルールは、 Data Retention Period 24設定すると有効化されます。

    警告: Atlas がデータを削除すると、データを復元することはできません。

  2. (任意) Schedule Archiving Windowを指定します。

    デフォルトでは、Atlas は定期的にクエリを実行してデータをアーカイブします。 ただし、 Schedule Archiving Windowを切り替えて、Atlas でデータをアーカイブする時間枠を明示的にスケジュールできます。 次の項目を指定できます。

    • 頻度。 ジョブは毎日、特定の日に実行するか、毎月特定の日付に実行するかを選択できます。 毎月 29 日、30 日、または 31 日にデータ アーカイブ ジョブをスケジュールする場合、これらの日付がない月(たとえば 2 月)、Atlas はアーカイブ ジョブを実行しません。

    • 時間枠(単位は時間)。 Atlas がデータ アーカイブ ジョブを実行する期間を選択します。 少なくとも 2 時間を指定する必要があります。 実行中のジョブが指定された時間枠内に完了しない場合、Atlas そのジョブが完了するまで実行を続けます。

7
8

重要:アーカイブには少なくとも 1 つの パーティションフィールドが必要です。

コレクションから最も頻繁にクエリされるフィールドをそれぞれ フィールドとSecond most commonly queried field Third most commonly queried fieldフィールドに入力します。ネストされたフィールドを指定するには、ドット表記を使用します。 ドット表記を使用して指定するネストされたフィールドの前後に引用符( "" )を含めないでください。

警告

パーティション分割にはピリオド( . )を含むフィールド名は指定できません。

指定されたフィールドは、アーカイブ データのパーティション分割に使用されます。 パーティションはフォルダーに似ています。 日付フィールドは、 Date Match条件のデフォルトでパーティションの最初の位置にあります。 頻繁にクエリを実行する場合は、別のフィールドをパーティションの最初の位置に移動できます。

パスにリストされるフィールドの順序は重要です。指定されたパス内のデータは、最初に最初のフィールドの値によって分割され、次に 2 番目のフィールドの値によって分割されます。Atlas は、パーティションを使用して指定されたフィールドに対するクエリをサポートします。

たとえば、 sample_mflixデータベース内のmoviesコレクションに対してオンライン アーカイブを構成しているとします。 アーカイブされたフィールドが 3 番目の位置に移動したreleased日付フィールドで、最初のクエリされたフィールドがtitleで、2 番目のクエリされたフィールドがplotの場合、パーティションは次のようになります。

/title/plot/released

Atlas では、最初にtitleフィールド、次にplotフィールド、次にreleasedフィールドのパーティションが作成されます。 Atlas は、次のフィールドのクエリにパーティションを使用します。

  • title フィールド

  • titleフィールドとplotフィールド

  • titleフィールドとplotフィールドとreleasedフィールド

Atlas はパーティションを使用して、title および released フィールドに対するクエリをサポートすることもできます。ただし、この場合、クエリが title および plot フィールドのみに対するものである場合と比べて、Atlas はクエリのサポートにおいて効率的ではありません。オンライン アーカイブを効率的にクエリするには、定義されているすべてのパーティション フィールドを定義されている順序で含めます。すべてのパーティション フィールドを順序にクエリすると、特定のパーティションがターゲットになり、スキャンされるデータ量が最小限に抑えられます。title および released に対するクエリで plot が省略されるため、Atlas はこのクエリをサポートするにあたり、released パーティションよりも title パーティションをより効率的に使用します。

Atlas はパーティショニング戦略を使用して、ここで指定されていないフィールドに対するクエリを効率的にサポートすることはできません。 また、Atlas ではパーティションを使用して、 titleフィールドのない次のフィールドを含むクエリをサポートできません。

  • plot フィールド

  • releasedフィールド、または

  • plotフィールドとreleasedフィールド。

ドキュメント内の最も頻繁にクエリされるフィールドをそれぞれ フィールドとMost commonly queried field Second most commonly queried fieldフィールドに入力します。ネストされたフィールドを指定するには、ドット表記を使用します。 ドット表記を使用して指定するネストされたフィールドの前後に引用符( "" )を含めないでください。

指定されたフィールドは、アーカイブされたデータを分割するために使用されます。パーティションはフォルダに似ています。パスにリストされるフィールドの順序は重要です。指定されたパス内のデータは、最初に最初のフィールドの値で分割され、次に2番目のフィールドの値で分割されます。Atlas は、パーティションを使用して指定されたフィールドに対するクエリをサポートします。

たとえば、 sample_mflixデータベース内のmoviesコレクションに対してオンライン アーカイブを構成しているとします。 最もクエリされたフィールドがgenresフィールドで、2 番目のクエリ フィールドがtitleの場合、パーティションは次のようになります。

/genres/title

Atlas は最初にgenresフィールド用のパーティションを作成し、次にtitleフィールド用のパーティションを作成します。 Atlas は、次のフィールドのクエリにパーティションを使用します。

  • genres フィールド

  • genresフィールドとtitleフィールド。

Atlas は、パーティションを使用して title フィールドのみに対するクエリをサポートすることもできます。ただし、この場合、Atlas は、クエリが genres フィールドのみに対するか、 genres および title フィールドに対する場合と比較して、クエリのサポートにおいて効率が低下します。オンライン アーカイブを効果的にクエリするには、定義されている順序で定義されているすべてのパーティション フィールドを含めます。すべてのパーティション フィールドを順序にクエリすると、特定のパーティションがターゲットになり、スキャンされるデータ量が最小限に抑えられます。title に対するクエリでは genres が省略されるため、Atlas は genres パーティションを使用してこのクエリをサポートしません。また、Atlas は、パーティションを使用して title フィールドの後に genres フィールドに対するクエリをサポートする場合の効率が低下します。

Atlas は、ここで指定されていないフィールドに対するクエリをサポートするためにパーティションを使用することはできません。

  • Amazon Web Servicesでサポートされている文字のみを含むフィールドを選択します。回避する文字の詳細については、 オブジェクトキー名の作成 を参照してください。Atlas はスキップし、サポートされていない文字を含むドキュメントをアーカイブしません。

  • 多形データを含まないフィールドを選択します。 Atlas は、コレクションから 10 個のドキュメントをサンプリングして、パーティション フィールドのデータ型を決定します。 ドキュメント内の指定されたフィールド値が同じコレクション内の他のドキュメントの値と一致しない場合、Atlas はドキュメントをアーカイブしません。

  • 頻繁にクエリを実行するフィールドを選択し、最初の位置では最も頻繁にクエリが実行されるフィールドから、最後の位置では最もクエリが少ないフィールドの順に並べ替えます。 たとえば、日付フィールドを頻繁にクエリする場合は、日付フィールドを最初の位置のままにします。 ただし、別のフィールドを頻繁にクエリする場合は、そのフィールドを最初の位置に含める必要があります。

重要: 年 6 月 2023 日より前に作成された Atlas Online Archive の場合、 MongoDB はAtlas Online Archive のクエリフィールドとして、濃度の高い string 型フィールドを推奨しません。濃度の高い string 型フィールドの場合、Atlas は多数のパーティションを作成します。これは、2023 年 6 月 日以降に作成された Atlas Online Archive には適用されません。詳しくは、MongoDBブログの記事をお読みください。

Atlas は次のパーティション属性タイプをサポートしています。

  • date

  • double

  • int

  • long

  • objectId

  • string

  • boolean

サポートされているパーティション属性のタイプの詳細については、「パーティション属性のタイプ 」を参照してください。

重要: explain コマンドを使用して、クエリを満たすために使用されたデータパーティションに関する情報を返すことができます。詳しくは、explain を参照してください。

パーティションを使用するとクエリのパフォーマンスは向上しますが、これらのフィールドを含まないクエリでは、アーカイブされたすべてのドキュメントのコレクション全体をスキャンする必要があり、時間がかかり、コストが増加します。 パーティションによって Atlas Data Federation でクエリ パフォーマンスが向上する方法の詳細については、「 S3 のデータ構造 」を参照してください。

9

次のアーカイブ ルールの設定を確認できます。

  • データベースとコレクションの名前

  • クラウドプロバイダーとクラウドプロバイダーのリージョンの名前

  • 日付フィールドの名前( Date Matchのみ)

  • Atlas クラスターにデータを保持する日数( Date Matchのみ)

  • アーカイブ データを削除する日数

  • データをアーカイブする頻度と時間枠

  • アーカイブするデータを識別するために使用するカスタムクエリ( Custom Criteriaのみ)

  • パーティション フィールド

必要に応じてこれらの設定を編集するには、 Backをクリックします。

10

クエリに対して explain を実行して、インデックスを使用しているかどうかを確認できます。フィールドにインデックスが作成されていない場合は、次の手順に進みインデックスを作成します。フィールドにすでにインデックスが作成されている場合は、最後の手順に進みます。

11
12
  1. Begin ArchivingConfirm an online archive[ タブで をクリックします。

  2. Begin ArchivingウィンドウでConfirmをクリックします。

警告:ドキュメントがアーカイブ用のキューに入れられると、ドキュメントを編集できなくなります。アーカイブされたデータを本番環境の Atlas クラスターに戻すには、オンラインアーカイブから特定のドキュメントを復元する を参照してください。