create
create
コマンドは、既存のstores
のコレクションまたはフェデレーティッドデータベースインスタンス ストレージ構成内のコレクションに対するビューを作成します。
ワイルドカード"*"
は、 create
コマンドで次の 2 つの方法で使用できます。
指定された
stores
フェデレーティッドデータベースインスタンス ストア内のファイルとフォルダーにマッピングするコレクションを動的に作成するためのコレクションの名前。path
パラメーターを使用して、stores
フェデレーティッドデータベースインスタンス ストア上の指定されたファイルパス内に複数のファイルとフォルダーにマッピングするコレクションを作成します。
コレクションまたはビューの作成の詳細については、 タブをクリックしてください。
このタブには、コレクションを作成するための構文とパラメータが含まれています。 フェデレーティッドデータベースインスタンス ストアの タブを選択して、そのフェデレーティッドデータベースインスタンス ストアの構文とパラメーターの詳細を確認します。
このタブには、 S 3フェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメータが含まれています。
このタブには、 Azureフェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメーターが含まれています。
このタブには、Google Cloudフェデレーティッドデータベースインスタンスストアのコレクションを作成するための構文とパラメータが含まれています。
このタブには、フェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメーターが含まれています。
このタブには、 HTTPフェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメータが含まれています。
このタブには、Atlas Online Archive フェデレーティッドデータベースインスタンス ストアのコレクションを作成するための構文とパラメータが含まれています。
このタブには、パイプライン内で SQL ステートメントを通じて指定するソース コレクションまたはコレクションのビューを作成するための構文とパラメーターが含まれています。
このタブでは、別のコレクションで集計パイプラインを実行する標準ビューを作成するための構文とパラメーターについて説明します。
このタブでは、 $sql
ステージを使用して SQL ビューを作成するための構文とパラメータについて説明します。
構文
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>"|"*", "dataSources" : [{ "storeName" : "<store-name>", "database" : "<atlas-database-name>", "collection" : "<atlas-collection-name>" | "collectionRegex": "<regex-pattern>" }]})
db.runCommand({ "create" : "<collection-name>", "dataSources" : [{ "storeName" : "<store-name>", "allowInsecure" : true|false, "urls" : [ "<url>" ], "defaultFormat" : "<file-extension>" }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "datasetName" : "<online-archive-dataset-name>", "datasetPrefix": "<prefix-name>", "trimLevel" : <trim-number>, "maxDatasets": <maximum-number-of-datasets> }]})
db.runCommand({ "create" : "<view-name>", "viewOn" :" <collection-name>", "pipeline" : ["<stage1>","<stage2>",...] })
db.runCommand({ "create" : "<view-name>", "pipeline" : ["$sql": {"statement": "<SQL-statement>", "excludeNamespaces": true | false ]} })
パラメーター
Parameter | タイプ | 説明 | 必要性 |
---|---|---|---|
<collection-name>|* | string | Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前、またはコレクションを動的に作成するためのワイルドカード コレクション名に | 必須 |
dataSources | オブジェクト | コレクションにマッピングするために、 | 必須 |
dataSources.storeName | string | コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値は | 必須 |
dataSources.path | string | 必須 | |
dataSources.defaultFormat | string | フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。
省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。 | 任意 |
dataSources.omitAttributes | ブール値 | Atlas Data Federation がコレクションに追加する属性(キーと値のペア)を省略するかどうかを指定するフラグ。 次のいずれかの値を指定できます。
省略した場合、デフォルトは | 任意 |
Parameter | タイプ | 説明 | 必要性 |
---|---|---|---|
<collection-name>|* | string | Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前、またはコレクションを動的に作成するためのワイルドカード コレクション名に | 必須 |
dataSources | オブジェクト | コレクションにマッピングするために、 | 必須 |
dataSources.storeName | string | コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値は | 必須 |
dataSources.path | string | 必須 | |
dataSources.defaultFormat | string | フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。
省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。 | 任意 |
dataSources.omitAttributes | ブール値 | Atlas Data Federation がコレクションに追加する属性(キーと値のペア)を省略するかどうかを指定するフラグ。 次のいずれかの値を指定できます。
省略した場合、デフォルトは | 任意 |
Parameter | タイプ | 説明 | 必要性 |
---|---|---|---|
<collection-name>|* | string | Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前、またはコレクションを動的に作成するためのワイルドカード コレクション名に | 必須 |
dataSources | オブジェクト | コレクションにマッピングするために、 | 必須 |
dataSources.storeName | string | コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値は | 必須 |
dataSources.path | string | 必須 | |
dataSources.defaultFormat | string | フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。
省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。 | 任意 |
dataSources.omitAttributes | ブール値 | Atlas Data Federation がコレクションに追加する属性(キーと値のペア)を省略するかどうかを指定するフラグ。 次のいずれかの値を指定できます。
省略した場合、デフォルトは | 任意 |
Parameter | タイプ | 説明 | 必要性 |
---|---|---|---|
<collection-name>|* | string | Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前、またはコレクションを動的に作成するためのワイルドカード コレクション名に 動的に生成されたデータベースの場合、コレクション名に
ワイルドカード( | 必須 |
dataSources | オブジェクト | コレクションにマッピングするために、 | 必須 |
dataSources.storeName | string | コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値は | 必須 |
dataSources.database | string | Atlas クラスター内のコレクションを含むデータベースの名前。 動的に生成されたデータベースのワイルドカード( * )コレクションを生成するには、このパラメーターを省略する必要があります。 | 条件付き |
dataSources.collection | string | Atlas データベース内のコレクションの名前。 ワイルドカード( * )コレクションを作成する場合は、このパラメータを省略する必要があります。 | 条件付き |
dataSources.collectionRegex | string | ワイルドカード( ワイルドカード( | 任意 |
Parameter | タイプ | 説明 | 必要性 |
---|---|---|---|
<collection-name> | string | Atlas Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前。 * を指定してコレクション名を動的に生成することはできません。 | 必須 |
dataSources | オブジェクト | コレクションにマッピングするために、 | 必須 |
dataSources.storeName | string | コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値は | 必須 |
dataSources.allowInsecure | ブール値 | 指定されたURLのスキームを検証します。 値は次のいずれかになります。
true の場合、Atlas Data Federation は次のように動作します。
警告:これを 省略した場合、デフォルトは | 任意 |
dataSources.urls | 文字列の配列または空の配列 | 一般にアクセス可能なデータファイルのURL 。 認証が必要なURLは指定できません。 Atlas Data Federation は、各URLのパーティションを作成します。 空または省略した場合、Atlas Data Federation は dataSources.storeName パラメータで指定されたストアのURLを使用します。 | 必須 |
dataSources.defaultFormat | string | フェデレーティッドデータベースインスタンス ストアのクエリ中に拡張子のないファイルを検出した場合に Atlas Data Federation がデフォルトで設定する形式。 次の値が有効です。
省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。 含まれている場合、指定された形式は | 任意 |
Parameter | タイプ | 説明 | 必要性 | |
---|---|---|---|---|
<collection-name> | string | Atlas Data Federation がフェデレーティッドデータベースインスタンス ストアに含まれるデータをマッピングするコレクションの名前。 コレクション名を動的に生成するには、次の操作を行う必要があります。
| 必須 | |
dataSources | オブジェクト | コレクションにマッピングするために、 コレクションのすべての | 必須 | |
dataSources.storeName | string | コレクションにマッピングするフェデレーティッドデータベースインスタンス ストアの名前。 値は | 必須 | |
datasetName | string | コレクションにマッピングするオンライン アーカイブ データセットの名前。 オンライン アーカイブ
ワイルドカード コレクションに | 条件付き | |
datasetPrefix | string | ワイルドカード コレクションにのみ必要です。 非ワイルドカード コレクションの場合は任意。 オンライン アーカイブ データセット名と照合するためのデータセット名のプレフィックス。 ワイルドカード コレクションにこのパラメーターを指定すると、Atlas Data Federation は、指定した 非ワイルドカード コレクションにこのパラメーターを指定すると、Atlas Data Federation は最新のデータセット(最後にキャプチャされたスナップショット)を コレクションにマッピングします。 非ワイルドカード コレクションでこのパラメータを指定するには、 | 条件付き | |
maxDatasets | 整数 | ワイルドカード コレクションのみ。 データソースのコレクションを動的に生成するデータセットの最大数。 値は | 任意 | |
trimLevel | 整数 | ワイルドカード コレクションのみ。 残りのフィールドをワイルドカード コレクション名にマッピングする前に、データセット名の左側から削除する文字数。 値は この設定は ワイルドカード コレクションでのみ設定できます。 | 任意 |
Parameter | タイプ | 説明 | 必要性 |
---|---|---|---|
<view-name> | string | ビューの名前。 ビュー名は一意である必要があります。 コレクション名または同じデータベース内の他のビュー名と同じにすることはできません。 | 必須 |
viewOn | string | ビューを作成するソース コレクションの名前。 | 必須 |
pipeline | ステージの配列 | ビューの作成に使用する集計パイプライン ステージの配列。 ビュー定義パイプラインには、 $lookup や $facet などのネストされたパイプライン ステージ内でも、 $out または $merge ステージを含めることはできません。 | 必須 |
出力
コマンドは、成功した場合、次の出力を返します。 コレクションの検証で コマンドを実行し、結果を検証できます。 失敗した場合に推奨される解決策については、以下の「 エラーのトラブルシューティング 」を参照してください。
{ ok: 1 }
例
次の例では、次の設定を持つAmazon Web Services S3ストアのサンプル airbnb
データを使用します。
店舗名 | egS3Store |
リージョン | us-east-2 |
バケット | test-data-federation |
Prefix | json |
Delimiter | / |
サンプルデータセット | airbnb |
次の例では、次の設定を持つ Azure Blog Storage コンテナ上のサンプルairbnb
データを使用します。
店舗名 | egAzureStore |
Prefix | sample |
Delimiter | / |
サンプルデータセット | airbnb |
次の例では、次の設定を持つ Google Cloud ストアでサンプルairbnb
データを使用します。
店舗名 | egGCStore |
リージョン | us-central1 |
バケット | test-data-federation |
Prefix | json |
Delimiter | / |
サンプルデータセット | airbnb |
次の例では、次の設定を持つ Atlas クラスター上のサンプル データセットのsample_airbnb.listingsAndReviews
コレクションを使用します。
店舗名 | egAtlasStore |
サンプルデータセット | sample_airbnb.listingsAndReviews |
「 Atlas クラスターへのサンプル データのロード 」を確認して、サンプル データセットをAtlas クラスターにロードします。
次の例では、次のURLを使用します。
https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json
https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json
次の例では、次の設定を持つオンライン アーカイブを使用します。
店舗名 | adlStore |
Atlas Online Archive の名前 | v1$atlas$archive$testCluster$sample_airbnb$219eb1cb-20a6-4ce3-800a-aaefd6c227c6$66d512939b1fa57fe057aa22 |
基本的な例
次のコマンドでは、 ストレージ構成のsampleDB
データベースにairbnb
という名前のコレクションが作成されます。
airbnb
コレクションは、 egS3Store
という名前のS 3ストアのjson
フォルダーにあるairbnb
サンプル データセットにマッピングします。
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }] }] }] } }
airbnb
コレクションは、 egAzureStore
という名前のAzureストアのsample
フォルダーにあるairbnb
サンプル データセットにマップされます。
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAzureStore", "path" : "/sample/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
airbnb
airbnb
コレクションは、 egGCStore
という名前の Google Cloud ストアのjson
フォルダにあるairbnb
サンプルデータセットにマッピングします。
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }] }] }] } }
airbnb
コレクションは、Atlas クラスターのsample_airbnb
データベース内のlistingsAndReviews
サンプル コレクションにマッピングします。
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
airbnb
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReview" }] }] }] } }
airbnb
コレクションには、コレクション内の各URLのパーティションが含まれています。 allowInsecure
フラグは設定されておらず、デフォルトでfalse
に設定されています。
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "http-store", "urls": ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json","https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json"], "defaultFormat" : ".json" }]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
airbnb
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "http-store", "provider" : "http", "urls" : [ "https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json", "https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json" ], "defaultFormat" : ".json" } ], "databases" : [ { "name" : "sampleDb", "collections" : [ { "name" : "airbnb", "dataSources" : [ { "storeName" : "http-store", "defaultFormat" : ".json", "urls" : [ "https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json", "https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json" ] } ] } ] } ] } }
airbnb
コレクションは、 sample_airbnb.listingsAndReviews
パイプラインのオンライン アーカイブ データセットにマッピングします。
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "adlStore", "datasetName" : "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews" }]})
{ "ok" : 1 }
ワイルドカードの使用例
これらの例では、ワイルドカード"*"
をcreate
コマンドで指定する方法を示しています。
次の例では、 create
コマンドを使用してコレクションを動的に作成します。
次の例では、 create
コマンドを使用して、 egS3Store
フェデレーティッドデータベースインスタンス ストア内のパス/json/
内のファイルのコレクションを動的に作成します。 collectionName()
関数を使用して、指定されたパス内のファイル名にちなんでコレクションに名前を付けます。
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/{collectionName()}" }] }] }] } }
次の例では、 create
コマンドを使用して、 egS3Store
という名前の Atlas Data Federation ストアにマッピングするegCollection
という名前のコレクションを作成します。 egS3Store
にはjson
という名前のフォルダーにサンプル データセットairbnb
が含まれています。
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/*"}]}})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
egCollection
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sample", "collections" : [{ "name" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/*" }] }] }] } }
次の例は、 create
コマンドでワイルドカード"*"
を指定する方法を示しています。
次の例では、 create
コマンドを使用して、 egAzureStore
フェデレーティッドデータベースインスタンス ストア内のパス/sample/
内のファイルのコレクションを動的に作成します。 collectionName()
関数を使用して、指定されたパス内のファイル名にちなんでコレクションに名前を付けます。
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
airbnb
次の例では、 create
コマンドを使用して、 egAzureStore
という名前の Atlas Data Federation ストアにマッピングするegCollection
という名前のコレクションを作成します。 egAzureStore
にはsample
という名前のフォルダーにサンプル データセットairbnb
が含まれています。
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/sample/*"}]}})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
egCollection
これらの例では、ワイルドカード"*"
をcreate
コマンドで指定する方法を示しています。
次の例では、 create
コマンドを使用してコレクションを動的に作成します。
次の例では、 create
コマンドを使用して、 egGCStore
フェデレーティッドデータベースインスタンス ストア内のパス/json/
内のファイルのコレクションを動的に作成します。 collectionName()
関数を使用して、指定されたパス内のファイル名にちなんでコレクションに名前を付けます。
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/{collectionName()}" }] }] }] } }
次の例では、 create
コマンドを使用して、 egGCStore
という名前の Atlas Data Federation ストアにマッピングするegCollection
という名前のコレクションを作成します。 egS3Store
にはjson
という名前のフォルダーにサンプル データセットairbnb
が含まれています。
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/*"}]}})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
egCollection
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sample", "collections" : [{ "name" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/*" }] }] }] } }
これらの例では、ワイルドカード"*"
をcreate
コマンドで指定する方法を示しています。
次の例では、 create
コマンドを使用して、Atlas クラスター名myTestCluster
上のsample_airbnb
データベース内のドキュメントのコレクションを動的に作成します。
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb"}]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb" }] }] }] } }
show collections
listingsAndReviews
次の例では、 create
コマンドを使用して、 myTestCluster
という名前の Atlas クラスター上のsample_airbnb
データベースに、指定された正規表現パターンと一致する名前を持つコレクションを動的に作成します。
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collectionRegex" : "^list" }]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" } ], "databases" : [ { "name" : "sbxDb", "collections" : [ { "name" : "*", "dataSources" : [ { "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collectionRegex" : "^list" } ] } ] } ] } }
show collections
listingsAndReviews
次の例では、 create
コマンドを使用して、動的に作成されるデータベースのコレクションを動的に作成します。
use * db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore" }]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" } ], "databases" : [ { "name" : "*", "collections" : [ { "name" : "*", "dataSources" : [ { "storeName" : "egAtlasStore" } ] } ] } ] } }
このデータストアでは、ワイルドカード"*"
コレクションはサポートされていません。
次の例では、 create
コマンドを使用して、オンライン アーカイブ用に指定されたプレフィックス名と一致する名前のコレクションを動的に作成します。
use sample db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "adlStore", "datasetPrefix": "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews", "trimLevel": 4 }]})
{ ok: 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
sample_airbnb_listingsAndReviews_20220602T124437Z sample_airbnb_listingsAndReviews_20220603T124603Z sample_airbnb_listingsAndReviews_20220604T124420Z sample_airbnb_listingsAndReviews_20220605T124454Z sample_airbnb_listingsAndReviews_20220606T124419Z sample_airbnb_listingsAndReviews_20220607T124515Z
複数のデータソースの例
次のコマンドでは、 ストレージ構成のsampleDB
データベースにegCollection
という名前のコレクションが作成されます。 egCollection
コレクションは、次のサンプル データセットにマッピングします。
airbnb
egS3Store
という名前のS 3ストアのjson
フォルダーにあるデータセットairbnb
myTestCluster
という名前の Atlas クラスター上のsample_airbnb.listingsAndReviews
コレクション内のデータセットairbnb
URLhttps://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json
のデータセット
警告
Amazon Web Services S3バケットとAzure Blob ストレージ コンテナの両方にマッピングするフェデレーティッドデータベースインスタンスは作成できません。 Atlas Data Federation は、異なるクラウドプロバイダーにわたるフェデレーティッドクエリをサポートしていません。
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb" },{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collection": "listingsAndReviews" },{"storeName" : "egHttpStore", "urls": ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"]}]})
{ "ok" : 1 }
次のコマンドは、コレクションが正常に作成されたことを示しています。
show collections
egCollection
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }, { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }, { "name" : "egHttpStore", "provider" : "http", "urls" : ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"] } ], "databases" : [ { "name" : "sampleDB", "collections" : [{ "name" : "egCollection", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/airbnb" }, { "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }, { "storeName" : "egHttpStore", "urls" : ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"] } ] }] } ] } }
次のコマンドを実行すると、listings
airbnb
sample
フィールドと フィールドを持つ データベース内の コレクションにname
property_type
という名前のビューが作成されます。
use sampleDB db.runCommand({ "create" : "listings", "viewOn" : "airbnb", "pipeline" : [{$project: {"property_type":1, "name": 1}}] })
{ "ok" : 1 }
use sampleDB db.runCommand({ "create" : "listings", "pipeline": [{$sql: {statement: "SELECT property_type, name FROM airbnb"} }] })
{ "ok" : 1 }
listCollections
コマンドとstorageGetConfig
コマンドは、次の出力を返します。
db.runCommand({"listCollections":1})
{ "ok" : 1, "cursor" : { "firstBatch" : [ { "name" : "airbnb", "type" : "collection", "info" : { "readOnly" : true } }, { "name" : "listings", "type" : "view", "info" : { "readOnly" : true } } ], "id" : NumberLong(0), "ns" : "egS3Store.$cmd.listCollections" } }
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/" } ], "databases" : [ { "name" : "sample", "collections" : [ { "name" : "airbnb", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/airbnb/*" } ] }, { "name" : "*", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/{collectionName()}" } ] } ], "views" : [ { "name" : "listings", "source" : "airbnb", "pipeline" : "[{\"$project\":{\"property_type\":{\"$numberInt\":\"1\"},\"name{\"$numberInt\":\"1\"}}}]" } ] } ] } }
コレクションを検証する
コマンドが コレクションまたはビューを正常に作成したことを確認するには、次のいずれかのコマンドを実行します。
show collections db.runCommand({ "storageGetConfig" : 1 }) db.runCommand({ "listCollections" : 1 })
エラーのトラブルシューティング
コマンドが失敗した場合は、次のいずれかのエラーが返されます。
店舗名が存在しない
{ "ok" : 0, "errmsg" : "store name does not exist", "code" : 9, "codeName" : "FailedToParse" }
解決策:指定されたstoreName
がstores
配列内の店舗の名前と一致していることを確認します。 フェデレーティッドデータベースインスタンス ストレージ構成内のストアのリストを取得するには、 listStores
コマンドを実行します。
コレクション名は すでに存在します
{ "ok" : 0, "errmsg" : "collection name already exists in the database", "code" : 9, "codeName" : "FailedToParse" }
解決策:コレクションname
が一意であることを確認します。 既存のコレクションのリストを取得するには、 show collections
コマンドを実行します。
コマンドが失敗した場合、次のエラーが返されます。
ビュー名が存在する
{ "ok" : 0, "errmsg" : "a view '<database>.<view>' already exists, correlationID = <1603aaffdbc91ba93de6364a>", "code" : 48, "codeName" : "NamespaceExists" }
解決法:ビュー名が一意であることを確認します。 コレクションの既存のビューのリストを取得するには、 listCollections
コマンドを実行します。