createStore
createStore
コマンドは、フェデレーティッドデータベースインスタンス ストレージ構成にストアを作成します。 データソース用のフェデレーティッドデータベースインスタンス ストアの作成の詳細については、以下のタブをクリックしてください。
このタブには、 Amazon Web Services S3バケットのデータ用にフェデレーティッドデータベースインスタンス ストアを作成するための構文とパラメータが含まれています。
重要
Amazon Web Services S3バケットとAzure Blob ストレージ コンテナの両方にマッピングするフェデレーティッドデータベースインスタンスは作成できません。 Atlas Data Federation は、異なるクラウドプロバイダーにわたるフェデレーティッドクエリをサポートしていません。
このタブには、Azure Blog Storage コンテナ内のデータ用にフェデレーティッドデータベースインスタンス ストアを作成するための構文とパラメータが含まれています。
注意
Azure Blog Storage コンテナとAmazon Web Services S3バケットの両方にマップするフェデレーティッドデータベースインスタンスは作成できません。 Atlas Data Federation は、異なるクラウドプロバイダーにわたるフェデレーティッドクエリをサポートしていません。
このタブには、Atlas クラスター内のデータ用にフェデレーティッドデータベースインスタンス ストアを作成するための構文とパラメーターが含まれています。
このタブには、一般にアクセス可能な URL でホストされているファイル内のデータ用に HTTP フェデレーティッドデータベースインスタンス ストアを作成するための構文とパラメータが含まれています。
注意
プレビュー
HTTP データ ストア のサポートはプレビュー機能として利用できます。 機能および関連するドキュメントは、プレビュー ステージ中にいつでも変更される可能性があります。
このタブには、Atlas Online Archive 用のフェデレーティッドデータベースインスタンス ストアを作成するための構文とパラメーターが含まれています。
構文
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, region: <region-name>, bucket: <bucket-name>, additionalStorageClasses: [ <storage-classes> ], delimiter: <delimiter>, public: true|false })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, region: <region-name>, serviceURL: <service-account-URL>, containerName: <storage-container-name>, delimiter: <delimiter>, public: true|false })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, clusterName: <cluster-name>, projectId: <project-id>, readPreference: {mode: <read-preference-mode>, tagSets: [[{name: <name>, value: <value>},...],...], maxStalenessSeconds: <number-of-seconds>}, readConcern: {level: <level>} })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, allowInsecure: true|false, urls: [ <url> ], defaultFormat: <file-extension> })
db.runCommand({ createStore: <store-name>, provider: "dls:aws", region: <online-archive-region> })
パラメーター
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
createStore | string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
provider | string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
region | string | bucket がホストされているリージョン。 有効なリージョン名のリストについては、「 Amazon Web Services ( Amazon Web Services ) 」を参照してください。 | はい |
bucket | string | データが保存されるバケットの名前。 構成されたAmazon Web Services IAM 認証情報を提供して、 がアクセスできる S3 バケットの名前と完全に一致する必要があります。Data Federation | はい |
additionalStorageClasses | 文字列の配列 | AWS S3 ストレージクラスの配列。Atlas Data Federation は、これらのストレージ クラスのファイルをクエリ結果に含めます。有効な値は以下のとおりです。
標準ストレージ クラス内のファイルはデフォルトでサポートされています。 | no |
delimiter | string | フェデレーティッドデータベースインスタンス ストア内のパス セグメントを区切るために使用される文字。 省略した場合、デフォルトは "/" になります。 | no |
public | ブール値 | バケットがパブリックかどうかを示すフラグ。 有効な値は以下のとおりです。
省略した場合、デフォルトは | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
createStore | string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
provider | string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
region | string | コンテナがホストされているリージョン。 有効なリージョン名のリストについては、「 Microsoft Azure 」を参照してください。 | はい | |
serviceURL | string | Blob コンテナを含む Azure Blog ストレージ アカウントのURL 。 例:
| はい | |
containerName | string | Name of the Azure Blob Storage container that contains the files. 詳細については、 Azure ドキュメントの「 コンテナの名前付けと参照 」を参照してください。 | はい | |
delimiter | string | フェデレーティッドデータベースインスタンス ストア内のパス セグメントを区切るために使用される文字。 省略した場合、デフォルトは "/" になります。 | no | |
public | ブール値 | Azure Blob Storage コンテナがパブリックかどうかを示すフラグ。 有効な値は以下のとおりです。
省略した場合、デフォルトは | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
createStore | string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
provider | string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
clusterName | string | ストアの基となる Atlas クラスターの名前。 | はい |
projectId | string | Atlas クラスターを含むプロジェクトの一意の識別子。 指定しない場合、Atlas Data Federation では、クラスターがフェデレーティッドデータベースインスタンスと同じプロジェクトにあると想定されます。 | no |
readPreference | ドキュメント | クラスターの読み込み設定 ( read preference ) では、読み取りリクエストをクラスターにルーティングする方法について説明します。 | no |
readPreference .mode | string | 読み取りリクエストをルーティングするレプリカセット メンバーを指定する 読み込み設定 ( read preference) モード 値は次のいずれかになります。
| no |
readPreference .tagSets | 文字列の配列 | レプリカセットの名前と値のペアを含む、タグセットまたはタグ仕様ドキュメントの配列。 指定すると、Atlas Data Federation は読み取りリクエストを、指定されたタグに関連付けられているレプリカセット ノードまたはノードにルーティングします。 詳しくは、「読み込み設定(read preference)タグセット 」を参照してください。 Atlas Data Federation は、シャーディングされたクラスターに対してこのパラメーターをサポートしていません。 | no |
readPreference .maxStalenessSeconds | 整数 | セカンダリからの読み取りの最大レプリケーションラグ、または「古い」 maxStalenessSeconds の詳細については、「読み込み設定(read preference) maxStalenessSeconds 」を参照してください。 | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
createStore | string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
provider | string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
allowInsecure | ブール値 | 指定されたURLのスキームを検証します。 値は次のいずれかになります。
true の場合、Atlas Data Federation は次のように動作します。
警告:これを 省略した場合、デフォルトは | no |
urls | 文字列または空の配列の配列 | 1 つ以上の一般にアクセス可能なURL 。 認証が必要なURLは指定できません。 | no |
defaultFormat | string | フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。
省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。 含まれている場合、指定された形式はストア内のURLにのみ適用されます。 | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
createStore | string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
provider | string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
region | string | オンライン アーカイブのリージョン。 異なるリージョンに複数のアーカイブがある場合は、各リージョンのストアを追加して、そのリージョンのデータをフェデレーティッドデータベースインスタンス内の仮想データベースとコレクションにマッピングする必要があります。 | はい |
出力
コマンドは成功した場合、次の出力を印刷します。 コマンドが失敗した場合、推奨される解決策については「 エラーのトラブルシューティング 」を参照してください。
{ "ok": 1, "store": { "name": "<store-name>", "region": "<region-name>", "bucket": "<bucket-name>", "additionalStorageClasses": ["<storage-classes>"] "delimiter": "<delimiter>", "provider": "<storage-provider>" } }
{ "ok": 1, "store": { "name": "<store-name>", "region": "<region-name>", "serviceURL": "<service-account-URL>", "containerName": "<storage-container-name>" "delimiter": "<delimiter>", "provider": "<storage-provider>" } }
{ "ok" : 1, "store" : { "name" : "<store-name>", "provider" : "<storage-provider>", "clusterName" : "<cluster-name>", "projectId" : "<project-id>", "readPreference" : { "mode" : "<read-preference-mode>", "tagSets" : [[{"name": "<name>", "value": "<value>"},...],...], "maxStalenessSeconds" : <number-of-seconds> } } }
{ "ok" : 1, "store" : { "name" : "<store-name>", "provider" : "<storage-provider>", "allowInsecure" : true|false, "urls" : [ "<url>" ], "defaultFormat: "<file-extension>" } }
{ ok: 1, store: { name: '<store-name>', provider: 'dls:aws', region: '<online-archive-region>' } }
例
次の例では、createStore
myStore
コマンドを使用して、 という新しいフェデレーティッドデータベースインスタンス ストアを作成します。
use sample db.runCommand({ createStore: "myStore", provider: "s3", region: "us-east-1", bucket: "my-bucket", "additionalStorageClasses" : ["STANDARD_IA","INTELLIGENT_TIERING"] })
{ "ok": 1, "store": { "name": "myStore", "region": "us-east-1", "bucket": "my-bucket", "additionalStorageClasses" : [ "STANDARD_IA", "INTELLIGENT_TIERING" ], "delimiter": "/", "provider": "s3" } }
use sample db.runCommand({ createStore: "myStore", provider: "azure", region: "eastus2", serviceURL: "https://mystorage.blob.core.windows.net/", "containerName" : "my-data-container" })
{ "ok": 1, "store": { "name": "myStore", "region": "eastus2", "serviceURL": "https://mystorage.blob.core.windows.net/", "containerName" : "my-data-container", "delimiter": "/", "provider": "azure" } }
use sample db.runCommand({ createStore: "myStore", provider: "atlas", clusterName: "myTestCluster", projectId: "<project-id>", "readPreference": {"mode": "secondary", "tagSets": [[{"name": "provider", "value": "AWS" }, {"name": "region", "value": "US_EAST_1"}]], "maxStalenessSeconds": 120} })
{ "ok" : 1, "store" : { "name" : "myStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>", "readPreference" : { "mode" : "secondary", "tagSets": [[{"name": "provider", "value": "AWS" }, {"name": "region", "value": "US_EAST_1"}]], "maxStalenessSeconds" : 120 } } }
use sample db.runCommand({ createStore: "myStore", provider: "http", urls: ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews","http://example.mongodb.com/sampleData"], allowInsecure: true, defaultFormat: ".json" })
{ "ok" : 1, "store" : { "name" : "http-store", "provider" : "http", "urls" : [ "https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews", "http://example.mongodb.com/sampleData" ], "defaultFormat" : ".json" "allowInsecure" : true } }
use sample db.runCommand({ createStore: "myStore", provider: "dls:aws", region: "us-east-1" })
{ ok: 1, store: { name: 'myStore', provider: 'dls:aws', region: 'us-east-1' } }
エラーのトラブルシューティング
コマンドが失敗した場合は、次のいずれかのエラーが返されます。
理由: createStore
で指定された名前のフェデレーティッドデータベースインスタンス ストアはすでに存在します。
{ "ok": 0, "errmsg": "store <store-name> already exists", "code": 2, "codeName": "BadValue" }
解決法:フェデレーティッドデータベースインスタンス ストアの一意の名前を指定します。
理由:指定されたprovider
は認識されません。
{ "ok": 0, "errmsg": "unrecognized store provider <storage-provider>", "code": 2, "codeName": "BadValue" }
解決策:有効なストレージプロバイダーを指定していることを確認します。
理由: 1 つ以上の指定されたURLに安全でないHTTPスキームが含まれています。
{ "ok" : 0, "errmsg" : "store 'httpStore': the insecure HTTP scheme is not supported by default - please add a 'allowInsecure: true' flag to the store or datasource to query from such URLs, correlationID = 16332c6eddf7b32776fde638", "code" : 72, "codeName" : "InvalidOptions" }
解決策: 安全な HTTPS スキームを使用して URL を指定します。指定されたURLのHTTPスキームが安全でない場合は、 allowInsecure
フラグをtrue
に設定します。 allowInsecure
フラグをtrue
に設定すると、データは中間者攻撃(man-in-the-middle attack)に対して脆弱なままになることに注意してください。