createStore
createStore
コマンドは、フェデレーティッドデータベースインスタンス ストレージ構成にストアを作成します。 データソース用のフェデレーティッドデータベースインスタンス ストアの作成の詳細については、以下のタブをクリックしてください。
このタブには、 Amazon Web Services S3バケットのデータ用にフェデレーティッドデータベースインスタンス ストアを作成するための構文とパラメータが含まれています。
重要
Atlas Data Federation は、異なるクラウドプロバイダーにわたるフェデレーティッドクエリをサポートしていません。 単一のクラウドプロバイダー上のストアにマッピングするフェデレーティッドデータベースインスタンスのみを作成できます。
このタブには、Azure Blog Storage コンテナ内のデータ用にフェデレーティッドデータベースインスタンス ストアを作成するための構文とパラメータが含まれています。
重要
Atlas Data Federation は、異なるクラウドプロバイダーにわたるフェデレーティッドクエリをサポートしていません。 単一のクラウドプロバイダー上のストアにマッピングするフェデレーティッドデータベースインスタンスのみを作成できます。
このタブには、 Google Cloud PlatformGoogle Cloud Platform Storage コンテナ内のデータ用にフェデレーティッドデータベースインスタンスストアを作成するための構文とパラメータが含まれています。
重要
Atlas Data Federation は、異なるクラウドプロバイダーにわたるフェデレーティッドクエリをサポートしていません。 単一のクラウドプロバイダー上のストアにマッピングするフェデレーティッドデータベースインスタンスのみを作成できます。
このタブには、Atlas クラスター内のデータ用にフェデレーティッドデータベースインスタンス ストアを作成するための構文とパラメーターが含まれています。
このタブには、一般にアクセス可能な URL でホストされているファイル内のデータ用に 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>, region: <region-name>, bucket: <bucket-name>, delimiter: <delimiter>, prefix: <prefix> })
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 | タイプ | 説明 | 必須 |
---|---|---|---|
| string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
| string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
| string |
| はい |
| string | データが保存されるバケットの名前。 Data Federation がAmazon Web Services IAM Amazon Web Services認証情報を使用してアクセスできる S3 バケットの名前と完全に一致する必要があります。Data Federation | はい |
| 文字列の配列 | AWS S3 ストレージクラスの配列。Atlas Data Federation は、これらのストレージ クラスのファイルをクエリ結果に含めます。有効な値は以下のとおりです。
標準ストレージ クラス内のファイルはデフォルトでサポートされています。 | no |
| string | フェデレーティッドデータベースインスタンス ストア内のパス セグメントを区切るために使用される文字。 省略した場合、デフォルトは | no |
| ブール値 | バケットがパブリックかどうかを示すフラグ。 有効な値は以下のとおりです。
省略した場合、デフォルトは | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
| string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
| string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
| string | コンテナがホストされているリージョン。 有効なリージョン名のリストについては、「 Microsoft Azure 」を参照してください。 | はい | |
| string | Blob コンテナを含む Azure Blog ストレージ アカウントのURL 。 例:
| はい | |
| string | Name of the Azure Blob Storage container that contains the files. 詳細については、 Azure ドキュメントの「 コンテナの名前付けと参照 」を参照してください。 | はい | |
| string | フェデレーティッドデータベースインスタンス ストア内のパス セグメントを区切るために使用される文字。 省略した場合、デフォルトは | no | |
| ブール値 | Azure Blob Storage コンテナがパブリックかどうかを示すフラグ。 有効な値は以下のとおりです。
省略した場合、デフォルトは | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
| string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
| string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
| string |
| はい | ||||
| string | データが保存されるバケットの名前。 Google Cloud Platform設定されたGoogle Cloud PlatformData Federation Google Cloud PlatformIAM 認証情報を使用して Data Federation がアクセスできるGoogle Cloud Platform Storageバケットの名前と完全に一致する必要があります。 | はい | ||||
| string | フェデレーティッドデータベースインスタンス ストア内のパス セグメントを区切るために使用される文字。 省略した場合、デフォルトは | no | ||||
| ブール値 | Atlas Data Federationプレフィックス「AtlasGoogle Cloud Platform Data Federation」は、 Google Cloud Platform Storageバケット内のファイルを検索するときに適用されます。例、次の構造を持つGoogleGoogle Cloud Platform Cloud Platform Storageバケット
フェデレーティッドデータベースインスタンスストアは、 デフォルトはGoogleGoogle Cloud Platform Cloud Platform Storageバケットのルートで、すべてのファイルを検索します。 | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
| string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
| string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
| string | ストアの基となる Atlas クラスターの名前。 | はい |
| string | Atlas クラスターを含むプロジェクトの一意の識別子。 指定しない場合、Atlas Data Federation では、クラスターがフェデレーティッドデータベースインスタンスと同じプロジェクトにあると想定されます。 | no |
| ドキュメント | クラスターの読み込み設定 ( read preference ) では、読み取りリクエストをクラスターにルーティングする方法について説明します。 | no |
readPreference .mode | string | 読み取りリクエストをルーティングするレプリカセット メンバーを指定する 読み込み設定 ( read preference) モード 値は次のいずれかになります。
| no |
readPreference .tagSets | 文字列の配列 | レプリカセットの名前と値のペアを含む、タグセットまたはタグ仕様ドキュメントの配列。 指定すると、Atlas Data Federation は読み取りリクエストを、指定されたタグに関連付けられているレプリカセット ノードまたはノードにルーティングします。 詳しくは、「読み込み設定(read preference)タグセット 」を参照してください。 Atlas Data Federation は、シャーディングされたクラスターに対してこのパラメーターをサポートしていません。 | no |
readPreference .maxStalenessSeconds | 整数 | セカンダリからの読み取りの最大レプリケーションラグ、または「古い」 | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
| string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
| string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
| ブール値 | 指定されたURLのスキームを検証します。 値は次のいずれかになります。
true の場合、Atlas Data Federation は次のように動作します。
警告:これを 省略した場合、デフォルトは | no |
| 文字列または空の配列の配列 | 1 つ以上の一般にアクセス可能なURL 。 認証が必要なURLは指定できません。 | no |
| string | フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。
省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。 含まれている場合、指定された形式はストア内のURLにのみ適用されます。 | no |
Parameter | タイプ | 説明 | 必須 |
---|---|---|---|
| string | 新しいフェデレーティッドデータベースインスタンス ストアの名前。 フェデレーティッドデータベースインスタンスのストア名は一意である必要があります。 | はい |
| string | データが保存されるサービスの名前。 値は次のいずれかになります。
| はい |
| 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>", "region": "<region-name>", "bucket": "<storage-container-name>" "delimiter": "<delimiter>", "prefix": "<prefix>", "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: "azure", region: "us-central1", "bucket" : "my-data-container" })
{ "ok": 1, "store": { "name": "myStore", "region": "us-central1", "bucket" : "my-data-container", "delimiter": "/", "provider": "gcp" } }
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)に対して脆弱なままになることに注意してください。