Atlas Online Archive の構成
項目一覧
Overview
アーカイブ ルールを指定することで、コレクション内のデータをアーカイブするように構成できます。 のアーカイブ ルール。
時系列コレクションは、データをアーカイブするタイミングを決定するために使用される時間と、Atlas クラスターがデータを保存する日数を表す数値の組み合わせです。
標準コレクションは、次のいずれかになります。
データをアーカイブするタイミングを決定するために使用される日付と、Atlas クラスターがデータを保存する日数を表す数値の組み合わせ。
アーカイブするドキュメントの選択に使用されるカスタム クエリ。
Atlas クラスターをオンライン アーカイブ用に構成するには、次の手順に従います。
コレクションの名前空間と、コレクションでアーカイブするデータを選択するための基準を指定して、アーカイブ ルールを作成します。
(任意)アーカイブ データをパーティション分割するよくクエリされるフィールドを指定します。
クラスターで Online Archive を構成すると、Atlas はアーカイブ専用とアーカイブ用の 2 つのフェデレーティッドデータベースインスタンスをクラスター上に作成します。
注意
Atlas クラスターは、 Online アーカイブを開始する前に正常である必要があります。 例、1 つのノードがダウンしている場合、そのノードは PENDING
ステータスのままになります。
必要なアクセス権
Atlas Online Archive を作成するには、プロジェクトに対するProject Data Access Admin
以上のアクセス権が必要です。
アーカイブが利用可能かどうかを確認するには、プロジェクトに対するProject Read Only
以上のアクセス権が必要です。
Atlas CLI を使用した Atlas Online Archive の構成
注意
オンライン アーカイブでは、5 MiB 未満のデータは 7 日後にはアーカイブされません。 Atlas がアーカイブを作成した直後の 7 日間、Atlas はすべてのデータをアーカイブします。 7 日後、データ サイズが 5 MiB に達した場合にのみ Atlas はデータをアーカイブします。
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 経由での Atlas Online Archive の構成
注意
オンライン アーカイブでは、5 MiB 未満のデータは 7 日後にはアーカイブされません。 Atlas がアーカイブを作成した直後の 7 日間、Atlas はすべてのデータをアーカイブします。 7 日後、データ サイズが 5 MiB に達した場合にのみ Atlas はデータをアーカイブします。
API からオンライン アーカイブを構成するには、オンラインアーカイブエンドポイントにPOST
リクエストを送信します。
注意
DATE
条件を使用する場合は、パーティション キーの一部としてdate
フィールドを指定する必要があります。
同じデータベースとコレクションに対して同じアーカイブ ルールを持つActive
オンライン アーカイブがクラスターにすでにある場合、操作は失敗します。 ただし、既存のオンライン アーカイブがPaused
またはDeleted
状態にある場合は、新しいオンライン アーカイブが作成され、そのステータスはActive
に設定されます。 構文とオプションの詳細については、「 API 」を参照してください。
ユーザー インターフェースによる Atlas Online Archive の構成
注意
オンライン アーカイブでは、5 MiB 未満のデータは 7 日後にはアーカイブされません。 Atlas がアーカイブを作成した直後の 7 日間、Atlas はすべてのデータをアーカイブします。 7 日後、データ サイズが 5 MiB に達した場合にのみ Atlas はデータをアーカイブします。
Atlas UI でオンライン アーカイブを構成するには、以下の手順に従います。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoClusters
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
Online Archiveクラスターの ページにGoします。
クラスターの名前をクリックします。
[Online Archive] タブをクリックします。
Atlas Online Archiveページが表示されます。
Archiving Rule次の情報を提供して を作成します。
Namespaceフィールドに、データベース名、ドット(
.
)セパレーター、コレクション名(<database>.<collection>
)を含むコレクション名前空間を指定します。オンライン アーカイブが作成された後は、名前空間を変更できません。
アーカイブされたデータを保存するクラウドプロバイダーのリージョンを選択します。
Tip
別のリージョンを選択するとデータ転送コストが高くなる可能性があるため、可能であればクラスターと同じリージョンを選択することをお勧めします。
Atlas では、クラスターが配置されているクラウドプロバイダーに基づいて、クラウドプロバイダーのリージョンが表示されます。 マルチクラウド クラスターの場合、Atlas には最も優先順位の高いプロバイダーのクラウドプロバイダー リージョンが表示されます。 Atlas は を表示しますクラスターが配置されているリージョンに近い、または完全に一致するリージョンの横にある。
Atlasに配置されたAmazon Web Services クラスターには、次のいずれかのリージョンを選択できます。
Atlas Data Federation のリージョンAWS リージョンVirginia, USA
us-east-1
米国ワシントン州
us-west-2
サンパウロ(ブラジル)
sa-east-1
アイルランド
eu-west-1
英国(ソウル)
eu-west-2
フランクフルト(ドイツ)
eu-central-1
Tokyo, Japan
ap-northeast-1
ムバイ(インド)
ap-outth-1
香港
ap-sautheast-1
オーストラリア、シドニー
ap-sautheast-2
モントリオール(カナダ)
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を使用する既存の Online Archive があり、それらを削除する場合は、 Azureを使用する新しい Online Archive を作成する前に 5 日間待つ必要があります。 この 5 日間に新しい Online Archive を作成しようとすると、最初に選択したクラウドプロバイダーがデフォルトで使用されます。
Azureに配置された Atlas クラスターの場合は、次のいずれかのリージョンを選択できます。
Atlas Data Federation のリージョンAzureリージョンVirginia, USA
US_EAST_2
オランダ語
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 Archive を作成しようとすると、最初に選択したクラウドプロバイダーがデフォルトで使用されます。
Atlasに配置されたGoogle Cloud Platform クラスターの場合は、次のいずれかのリージョンを選択できます。
Atlas Data Federation のリージョンGoogle Cloud Platformリージョンベルギー
europe-west1
Iowa, USA
us-central1
注意
Atlas でオンライン アーカイブが作成された後は、ストレージ リージョンを変更することはできません。
アーカイブするコレクションのタイプに対して、アーカイブするドキュメントを選択するための基準を指定します。
標準コレクションの場合は、Date Match Custom Criteriaインターフェースの [0}Atlas user タブまたは タブでアーカイブするドキュメントを選択するための基準を指定します。
日付フィールドと日数の組み合わせを使用して コレクションからドキュメントを選択するには、次のようにします。
コレクション内のドキュメントからすでにインデックス付きの日付フィールドを指定します。 ネストされたフィールドを指定するには、ドット表記 を使用します。
Atlas クラスターにデータを保持する日数を指定します。
指定された日付フィールドの日付形式を選択します。
次のいずれかの形式を選択する場合、指定される日付フィールドの値は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 クラスターがデータをアーカイブするためにインデックスを使用できなくなる可能性があります。
注意
$NOW
は、MongoDB 4.2以降を実行している Atlas クラスターでのみサポートされます。注意
Atlas はインデックスの十分性クエリを実行して、アーカイブ処理の効率を判断します。返されたドキュメント数に対するスキャンされたドキュメント数の比率が 10 以上の場合、そのクエリ結果で
Index Sufficiency Warning
を発行します。この警告は、効率的なアーカイブ プロセスに対してインデックスが不十分であることを示しています。日付ベースのアーカイブの場合は、日付フィールドにインデックスを付与する必要があります。式を使用するカスタム基準の場合、Atlas はクエリに対して値を評価する前に、値を変換することがあります。
オンライン アーカイブにデータを保存する日数と、Atlas がアーカイブ ジョブを実行する時間枠を指定します。
(任意) Deletion Age Limitを指定します。
デフォルトでは、Atlas はアーカイブ データを削除しません。 ただし、 Deletion Age Limitを指定した場合、アーカイブ データを保持するには、
7
~9125
日(25 年間)を指定できます。 Atlas は、ここで指定した日数の経過後にアーカイブ データを削除します。 このデータ有効期限ルールは、 Deletion Age Limit24
設定すると有効化されます。警告
Atlas によってデータが削除されると、データを復元することはできません。
(任意) Schedule Archiving Windowを指定します。
デフォルトでは、Atlas は定期的にクエリを実行してデータをアーカイブします。 ただし、 Schedule Archiving Windowを切り替えて、Atlas でデータをアーカイブする時間枠を明示的にスケジュールできます。 次の項目を指定できます。
頻度。 ジョブは毎日、特定の日に実行するか、毎月特定の日付に実行するかを選択できます。 毎月 29 日、30 日、または 31 日にデータ アーカイブ ジョブをスケジュールする場合、これらの日付がない月(たとえば 2 月)、Atlas はアーカイブ ジョブを実行しません。
時間枠(単位は時間)。 Atlas がデータ アーカイブ ジョブを実行する期間を選択します。 少なくとも 2 時間を指定する必要があります。 実行中のジョブが指定された時間枠内に完了しない場合、Atlas そのジョブが完了するまで実行を続けます。
コレクション内で最も頻繁にクエリされる 2 つのフィールドを指定して、オンライン アーカイブにパーティションを作成します。
注意
アーカイブには少なくとも 1 つのパーティション フィールドが必要です。
コレクションから最も頻繁にクエリされるフィールドをそれぞれ フィールドとSecond most commonly queried field Third most commonly queried fieldフィールドに入力します。ネストされたフィールドを指定するには、ドット表記を使用します。 ドット表記を使用して指定するネストされたフィールドの前後に引用符( ""
)を含めないでください。
警告
パーティション分割にはピリオド( .
)を含むフィールド名は指定できません。
指定されたフィールドは、アーカイブ データのパーティション分割に使用されます。 パーティションはフォルダーに似ています。 日付フィールドは、 Date Match条件のデフォルトでパーティションの最初の位置にあります。 頻繁にクエリを実行する場合は、別のフィールドをパーティションの最初の位置に移動できます。
パスにリストされるフィールドの順序は、複合インデックスの場合と同様に重要です。 指定されたパス内のデータは、最初に最初のフィールドの値で分割され、次に次のフィールドの値で分割されます。 Atlas は、パーティションを使用して指定されたフィールドに対するクエリをサポートします。
たとえば、 sample_mflix
データベース内のmovies
コレクションに対してオンライン アーカイブを構成しているとします。 アーカイブされたフィールドが 3 番目の位置に移動したreleased
日付フィールドで、最初のクエリされたフィールドがtitle
で、2 番目のクエリされたフィールドがplot
の場合、パーティションは次のようになります。
/title/plot/released
Atlas では、最初にtitle
フィールド、次にplot
フィールド、次にreleased
フィールドのパーティションが作成されます。 Atlas は、次のフィールドのクエリにパーティションを使用します。
title
フィールドtitle
フィールドとplot
フィールドtitle
フィールドとplot
フィールドとreleased
フィールド
Atlastitle
released
はパーティションを使用して、 フィールドと フィールドに対するクエリをサポートすることもできます。ただし、この場合、クエリが フィールドと フィールドのみを対象としている場合と同様に、Atlastitle
plot
でクエリをサポートする際の効率は低くなります。パーティションは順番に解析されます。クエリが特定のパーティションを省略する場合、Atlas はそれに続くパーティションの使用効率を低下させます。 title
とreleased
のクエリではplot
が省略されるため、Atlas はこのクエリをサポートするためにreleased
パーティションよりもtitle
パーティションをより効率的に使用します。
Atlas はパーティショニング戦略を使用して、ここで指定されていないフィールドに対するクエリを効率的にサポートすることはできません。 また、Atlas ではパーティションを使用して、 title
フィールドのない次のフィールドを含むクエリをサポートできません。
plot
フィールドreleased
フィールド、またはplot
フィールドとreleased
フィールド。
ドキュメント内の最も頻繁にクエリされるフィールドをそれぞれ フィールドとMost commonly queried field Second most commonly queried fieldフィールドに入力します。ネストされたフィールドを指定するには、ドット表記を使用します。 ドット表記を使用して指定するネストされたフィールドの前後に引用符( ""
)を含めないでください。
指定されたフィールドは、アーカイブ データのパーティション分割に使用されます。 パーティションはフォルダーに似ています。 パスにリストされるフィールドの順序は、複合インデックスの場合と同様に重要です。 指定されたパス内のデータは、最初に最初のフィールドの値により分割され、次に次のフィールドの値により分割されます。 Atlas は、パーティションを使用して指定されたフィールドに対するクエリをサポートします。
たとえば、 sample_mflix
データベース内のmovies
コレクションに対してオンライン アーカイブを構成しているとします。 最もクエリされたフィールドがgenres
フィールドで、2 番目のクエリ フィールドがtitle
の場合、パーティションは次のようになります。
/genres/title
Atlas は最初にgenres
フィールド用のパーティションを作成し、次にtitle
フィールド用のパーティションを作成します。 Atlas は、次のフィールドのクエリにパーティションを使用します。
genres
フィールドgenres
フィールドとtitle
フィールド。
Atlas では、パーティションを使用してtitle
フィールドのみに対するクエリをサポートすることもできます。 ただし、この場合、クエリがgenres
フィールドのみ、またはgenres
フィールドとtitle
フィールドで処理されている場合には、Atlas でのクエリのサポートは効率的ではありません。 パーティションは順番に解析されます。クエリが特定のパーティションを省略する場合、Atlas はそれに続くパーティションの使用効率を低下させます。 title
のクエリではgenres
が省略されるため、Atlas ではこのクエリのサポートにgenres
パーティションは使用されません。 また、 title
フィールドとそれに続くgenres
フィールドに対するクエリをサポートするためにパーティションを使用する場合、Atlas では効率が悪くなります。
Atlas は、ここで指定されていないフィールドに対するクエリをサポートするためにパーティションを使用することはできません。
コレクションから最も頻繁にクエリされるフィールドをそれぞれ フィールドとSecond most commonly queried field Third most commonly queried fieldフィールドに入力します。ネストされたフィールドを指定するには、ドット表記を使用します。 ドット表記を使用して指定するネストされたフィールドの前後に引用符( ""
)を含めないでください。
警告
パーティション分割にはピリオド( .
)を含むフィールド名は指定できません。
指定されたフィールドは、アーカイブ データのパーティション分割に使用されます。 パーティションはフォルダーに似ています。 日付フィールドは、 Date Match条件のデフォルトでパーティションの最初の位置にあります。 頻繁にクエリを実行する場合は、別のフィールドをパーティションの最初の位置に移動できます。
パスにリストされるフィールドの順序は、複合インデックスの場合と同様に重要です。 指定されたパス内のデータは、最初に最初のフィールドの値で分割され、次に次のフィールドの値で分割されます。 Atlas は、パーティションを使用して指定されたフィールドに対するクエリをサポートします。
たとえば、 sample_mflix
データベース内のmovies
コレクションに対してオンライン アーカイブを構成しているとします。 アーカイブされたフィールドが 3 番目の位置に移動したreleased
日付フィールドで、最初のクエリされたフィールドがtitle
で、2 番目のクエリされたフィールドがplot
の場合、パーティションは次のようになります。
/title/plot/released
Atlas では、最初にtitle
フィールド、次にplot
フィールド、次にreleased
フィールドのパーティションが作成されます。 Atlas は、次のフィールドのクエリにパーティションを使用します。
title
フィールドtitle
フィールドとplot
フィールドtitle
フィールドとplot
フィールドとreleased
フィールド
Atlastitle
released
はパーティションを使用して、 フィールドと フィールドに対するクエリをサポートすることもできます。ただし、この場合、クエリが フィールドと フィールドのみを対象としている場合と同様に、Atlastitle
plot
でクエリをサポートする際の効率は低くなります。パーティションは順番に解析されます。クエリが特定のパーティションを省略する場合、Atlas はそれに続くパーティションの使用効率を低下させます。 title
とreleased
のクエリではplot
が省略されるため、Atlas はこのクエリをサポートするためにreleased
パーティションよりもtitle
パーティションをより効率的に使用します。
Atlas はパーティショニング戦略を使用して、ここで指定されていないフィールドに対するクエリを効率的にサポートすることはできません。 また、Atlas ではパーティションを使用して、 title
フィールドのない次のフィールドを含むクエリをサポートできません。
plot
フィールドreleased
フィールド、またはplot
フィールドとreleased
フィールド。
AWSでサポートされている文字のみを含むフィールドを選択します。 使用しない文字の詳細については、「 オブジェクト キー名の作成 」 参照してください。 。Atlas はスキップし、サポートされていない文字を含むドキュメントをアーカイブしません。
多形データを含まないフィールドを選択します。 Atlas は、コレクションから 10 個のドキュメントをサンプリングして、パーティション フィールドのデータ型を決定します。 ドキュメント内の指定されたフィールド値が同じコレクション内の他のドキュメントの値と一致しない場合、Atlas はドキュメントをアーカイブしません。
頻繁にクエリを実行するフィールドを選択し、最初の位置では最も頻繁にクエリが実行されるフィールドから、最後の位置では最もクエリが少ないフィールドの順に並べ替えます。 たとえば、日付フィールドを頻繁にクエリする場合は、日付フィールドを最初の位置のままにします。 ただし、別のフィールドを頻繁にクエリする場合は、そのフィールドを最初の位置に含める必要があります。
注意
年 6 月 日より前に作成されたオンライン アーカイブでは、MongoDB では、Atlas Online Archive のクエリ フィールドとして、濃度の高い2023 string
型フィールドを推奨しません。 濃度の高いstring
型のフィールドの場合、Atlas は多数のパーティションを作成します。 これは、 6 月2023以降に作成された Atlas Online Archive には適用されません。 詳しくは、 MongoDB Blogの記事 をお読みください。
Atlas は次のパーティション属性タイプをサポートしています。
date
double
int
long
objectId
string
boolean
サポートされているパーティション属性のタイプの詳細については、「パーティション属性のタイプ 」を参照してください。
注意
explainコマンドを使用して、クエリを満たすために使用されたデータパーティションに関する情報を返すことができます。 詳しくは、 explain
を参照してください。
パーティションを使用するとクエリのパフォーマンスは向上しますが、これらのフィールドを含まないクエリでは、アーカイブされたすべてのドキュメントのコレクション全体をスキャンする必要があり、時間がかかり、コストが増加します。 パーティションによって Atlas Data Federation でクエリ パフォーマンスが向上する方法の詳細については、「 S3 のデータ構造 」を参照してください。
オンライン アーカイブの設定を確認して確認するには、 Nextをクリックします。 次のアーカイブ ルールの設定を確認できます。
データベースとコレクションの名前
クラウドプロバイダーとクラウドプロバイダーのリージョンの名前
日付フィールドの名前( Date Matchのみ)
Atlas クラスターにデータを保持する日数( Date Matchのみ)
アーカイブ データを削除する日数
データをアーカイブする頻度と時間枠
アーカイブするデータを識別するために使用するカスタムクエリ( Custom Criteriaのみ)
パーティション フィールド
必要に応じてこれらの設定を編集するには、 Backをクリックします。
(任意)mongosh
に表示されたクエリをコピーして実行し、必要なインデックスを作成します。これにより、データが最適なパフォーマンスでインデックス化されます。
アーカイブ ルールを確認して確認します。
Begin ArchivingConfirm an online archive[ タブで をクリックします。
Begin ArchivingウィンドウでConfirmをクリックします。
注意
ドキュメントがアーカイブのキューに入れられると、ドキュメントを編集できなくなります。 アーカイブ データを本番環境の Atlas クラスターに移動するには、「アーカイブ データの復元」を参照してください。
制限
クラスターごとに最大 50 個のオンライン アーカイブを作成でき、クラスターごとに最大 20 個をアクティブにすることができます。 次の制限が適用されます。
同じ名前空間で複数のオンライン アーカイブを構成できますが、一度に アクティブ にできるのは 1 つだけです。
同じコレクション内の同じフィールドに複数のオンライン アーカイブを作成することはできません。
次のシナリオでは、オンライン アーカイブにアクセスできません。
クラスターのプライマリ リージョンが完全に停止しているとき
アーカイブされたデータが保存されるAmazon Web Services S3の停止時。
アーカイブ ルールを複数のコレクションに使用することはできません。
注意
複数のコレクションのデータをアーカイブすることが目的の場合は、コレクションごとにアーカイブ ルールを作成する必要があります。
5 MiB 未満のデータは 7 日後にはアーカイブできません。 Atlas がアーカイブを作成した直後の 7 日間、Atlas はすべてのデータをアーカイブします。 7 日後、データ サイズが 5 MiB に達した場合にのみ Atlas はデータをアーカイブします。
Atlas がデータをアーカイブする場合は、アーカイブ条件を満たすドキュメントの更新や挿入を避けてください。 そうしないと、Atlas はアーカイブの実行中にデータの一貫性のないスナップショットをキャプチャする可能性があります。 更新が発生した場合、アーカイブされるドキュメントのバージョンは確実ではありません。