Atlas Data FederationGCPAtlas Data Federation は、フェデレーティッドデータベースインスタンスストアとしてGCPストレージ バケットをサポートします。データに対してクエリを実行するには、フェデレーティッドデータベースインスタンスで Cloud Storageバケットへのマッピングを定義する必要があります。
注意
このページでは、オブジェクトをファイルと指し、区切り文字で区切られたプレフィックスはディレクトリと指します。 ただし、これらのオブジェクトストレージサービスは実際にはファイルシステムではなく、すべてのケースでハードドライブ上のファイルと同じように動作するわけではありません。
構成ファイル形式
Google Cloud Platformを使用してフェデレーティッドデータベースインスタンスストアを定義するには、 JSON形式で構成パラメータを指定できます。 構成にはGoogle Cloud Platformデータストアが含まれており、それがクエリ可能な仮想コレクションにマッピングされています。
Google Cloud PlatformのデータのJSON構成では、次のフィールドが使用されます。
1 { 2 "stores" : [ 3 { 4 "name" : "<string>", 5 "provider" : "<string>", 6 "region" : "<string>", 7 "bucket" : "<string>", 8 "prefix": "<string>", 9 "delimiter": "<string>" 10 } 11 ], 12 "databases" : [ 13 { 14 "name" : "<string>", 15 "collections" : [ 16 { 17 "name" : "<string>", 18 "dataSources" : [ 19 { 20 "storeName" : "<string>", 21 "path" : "<string>", 22 "defaultFormat" : "<string>", 23 "provenanceFieldName": "<string>", 24 "omitAttributes": <boolean> 25 } 26 ] 27 } 28 ], 29 "maxWildcardCollections" : <integer>, 30 "views" : [ 31 { 32 "name" : "<string>", 33 "source" : "<string>", 34 "pipeline" : "<string>" 35 } 36 ] 37 } 38 ] 39 } 40
Google Cloud PlatformのJSON構成には、stores
と databases
の 2 つの最上位オブジェクトが含まれています。
stores
stores
オブジェクトは、 フェデレーティッドデータベースインスタンスに関連付けられた各データ ストアを定義します。フェデレーティッドデータベースインスタンスストアは、Google Cloud Platform内のファイルをキャプチャします。 Data Federation は、stores
オブジェクトで定義されたデータ ストアにのみアクセスできます。
stores
オブジェクトには次のフィールドが含まれています。
1 "stores" : [ 2 { 3 "name" : "<string>", 4 "provider" : "<string>", 5 "region" : "<string>", 6 "bucket" : "<string>", 7 "prefix": "<string>", 8 "delimiter": "<string>" 9 } 10 ]
次の表は、店舗オブジェクトのフィールドを説明しています。
フィールド | タイプ | 必要性 | 説明 | ||||
---|---|---|---|---|---|---|---|
配列 | 必須 | 各オブジェクトがフェデレーティッドデータベースインスタンスに関連付けるデータ ストアを表すオブジェクトの配列。 フェデレーティッドデータベースインスタンス ストアは以下をキャプチャします。
Atlas Data Federation は、 | |||||
string | 必須 | フェデレーティッドデータベースインスタンスストアの名前。 | |||||
string | 必須 | データが保存されるクラウドプロバイダーの名前。Google Cloud Platform Storageバケットの場合、値は | |||||
string | 必須 | Google Cloud PlatformGoogle Cloud PlatformGoogle Cloud Platform StorageバケットがホストされているGoogle Cloud Platformリージョンの名前。有効なリージョン名のリストについては、 Google Cloud Platform (GCP)を参照してください。 | |||||
string | 必須 | Google Cloud Platform Storageバケットの名前。Google Cloud PlatformAtlas Google Cloud PlatformData Federation がアクセスする必要があるGoogle Cloud Platform Storageバケットの名前と完全に一致する必要があります。Atlas Data Federation | |||||
string | 任意 | Atlas Data Federationプレフィックス「AtlasGoogle Cloud Platform Data Federation」は、 Google Cloud Platform Storageバケット内のファイルを検索するときに適用されます。例、次の構造を持つGoogleGoogle Cloud Platform Cloud Platform Storageバケット
フェデレーティッドデータベースインスタンスストアは、 デフォルトはGoogleGoogle Cloud Platform Cloud Platform Storageバケットのルートで、すべてのファイルを検索します。 | |||||
string | 任意 | フェデレーティッドデータベースインスタンスストア内の |
databases
databases
オブジェクトは、stores
で定義された各フェデレーティッドデータベースインスタンス ストアとデータベース内の MongoDB コレクションの間のマッピングを定義します。
databases
オブジェクトには次のフィールドが含まれています。
1 "databases" : [ 2 { 3 "name" : "<string>", 4 "collections" : [ 5 { 6 "name" : "<string>", 7 "dataSources" : [ 8 { 9 "storeName" : "<string>", 10 "path" : "<string>", 11 "defaultFormat" : "<string>", 12 "provenanceFieldName": "<string>", 13 "omitAttributes": <boolean> 14 } 15 ] 16 } 17 ], 18 "maxWildcardCollections" : <integer>, 19 "views" : [ 20 { 21 "name" : "<string>", 22 "source" : "<string>", 23 "pipeline" : "<string>" 24 } 25 ] 26 } 27 ]
以下の表は、データベースオブジェクトのフィールドを説明したものです。
フィールド | タイプ | 必要性 | 説明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
配列 | 必須 | 各オブジェクトがデータベース、そのコレクション、および任意でコレクション上のビューを表すオブジェクトの配列。各データベースには複数の | |||||||||||||
string | 必須 | Atlas Data Federation がデータ ストアに含まれるデータをマッピングするデータベースの名前。 | |||||||||||||
配列 | 必須 | 各オブジェクトが | |||||||||||||
string | 必須 | Atlas Data Federation が各 コレクション名に | |||||||||||||
配列 | 必須 | 各オブジェクトがコレクションでマッピングする | |||||||||||||
string | 必須 |
| |||||||||||||
string | 必須 | Atlas Data Federation が 例、次の構造を持つGoogle Cloud Platform という名前のGoogle Cloud Platform Storageバケットを考えてみましょう。
パスに
詳細については、「S3 データのパスの定義」を参照してください。
同じ型の属性を指定する場合は、以下のいずれかを行います。
| |||||||||||||
string | 任意 |
ファイル形式が 省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。 以下も参照してください。 サポートされているデータ形式 | |||||||||||||
string | 任意 | 結果にドキュメントの出所が含まれるフィールドの名前。ストレージ構成でこの設定を指定すると、Atlas Data Federation は結果の各ドキュメントに対して次のフィールドを返します。
Atlas UI のビジュアル エディターを使用してこの設定を構成することはできません。 | |||||||||||||
ブール値 | 任意 | Atlas Data Federation がコレクション内のドキュメントに追加する属性(キーと値のペア)を省略するかどうかを指定するフラグ。次のいずれかの値を指定できます。
省略した場合、デフォルトは 例、 |
Google Cloud PlatformストレージGoogle Cloud Platform バケットの構成例
データセンターから収集されたデータを含むGoogle Cloud Platform Storageバケット を例に考えてみましょう。Google Cloud Platformdatacenter-alpha
|--metrics |--hardware
/metrics/hardware
パスには、データセンターのハードウェアから取得したメトリクスを含む JSON ファイルが格納されます。各ファイル名は、以下のようにそのファイルがカバーする 24 時間の期間の UNIX タイムスタンプ(ミリ秒単位)です。
/hardware/1564671291998.json
以下は次のように構成されます。
Google Cloud Platformリージョンの Google Cloud Platform
datacenter-alpha
Google Cloud Platform Storageバケットにフェデレーティッドデータベースインスタンスストアを定義します。us-central1
Google Cloud Platformフェデレーティッドデータベースインスタンスストアには、metrics
ディレクトリパス内にデータファイルのみを含めるように明確に制限されています。/
の区切り文字は、ナビゲーションと検索を容易にするためにファイルシステム階層をシミュレートするために定義されています。hardware
ディレクトリのファイルを MongoDB databasedatacenter-alpha-metrics
とコレクションhardware
にマッピングします。 構成マッピングには、ファイル名に含まれるタイムスタンプを取得するための解析ロジックが含まれています。
{ "stores" : [ { "name" : "datacenter-alpha", "provider" : "gcs", "region" : "us-central1", "bucket" : "datacenter-alpha", "prefix": "metrics", "delimiter": "/" } ], "databases" : [ { "name" : "datacenter-alpha-metrics", "collections" : [ { "name" : "hardware", "dataSources" : [ { "storeName" : "datacenter-alpha", "path" : "/hardware/{date date}" } ] } ] } ] }
Atlas Data FederationAtlasGoogle Cloud Platform Data Federation はGoogle Cloud Platform Storageバケット を解析し、datacenter-alpha
/metrics/hardware/
配下にあるすべてのファイルを処理します。collections
オブジェクトは date
8601パス解析構文を使用して、ファイル名を各ドキュメントの フィールド(ISO- 日付)にマッピングします。一致する date
フィールドがドキュメント内に存在しない場合、Atlas Data Federation はそれを追加します。
MongoDBフェデレーティッドデータベースインスタンスに接続したユーザーは、GCP MongoDBクエリ言語とサポートされている集計を使用し、datacenter-alpha-metrics.hardware
コレクションを通じてGCPストレージバケット内のデータを分析できます。