Docs Menu
Docs Home
/
Atlas
/ /

Google Cloud PlatformGoogle Cloud Platformストレージ バケット

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構成には、storesdatabases の 2 つの最上位オブジェクトが含まれています。

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]

次の表は、店舗オブジェクトのフィールドを説明しています。

フィールド
タイプ
必要性
説明
stores

配列

必須

各オブジェクトがフェデレーティッドデータベースインスタンスに関連付けるデータ ストアを表すオブジェクトの配列。 フェデレーティッドデータベースインスタンス ストアは以下をキャプチャします。

  • GoogleGoogle Cloud Platform Cloud Platform Storageバケット内のファイル

  • Atlas クラスター内のドキュメント

  • 一般にアクセス可能な URLに保存されているファイル

Atlas Data Federation は、 storesオブジェクトで定義されたデータ ストアにのみアクセスできます。

stores.[n].name

string

必須

フェデレーティッドデータベースインスタンスストアの名前。databases.[n].collections.[n].dataSources.[n].storeNameフィールドは、マッピング構成の一部としてこの値を参照します。

stores.[n].provider

string

必須

データが保存されるクラウドプロバイダーの名前。Google Cloud Platform Storageバケットの場合、値は gcs である必要があります。

stores.[n].region

string

必須

Google Cloud PlatformGoogle Cloud PlatformGoogle Cloud Platform StorageバケットがホストされているGoogle Cloud Platformリージョンの名前。有効なリージョン名のリストについては、 Google Cloud Platform (GCP)を参照してください。

stores.[n].bucket

string

必須

Google Cloud Platform Storageバケットの名前。Google Cloud PlatformAtlas Google Cloud PlatformData Federation がアクセスする必要があるGoogle Cloud Platform Storageバケットの名前と完全に一致する必要があります。Atlas Data Federation

stores.[n].prefix

string

任意

Atlas Data Federationプレフィックス「AtlasGoogle Cloud Platform Data Federation」は、 Google Cloud Platform Storageバケット内のファイルを検索するときに適用されます。例、次の構造を持つGoogleGoogle Cloud Platform Cloud Platform Storageバケットmetrics を考えてみましょう。

metrics
|--hardware
|--software
|--computed

フェデレーティッドデータベースインスタンスストアは、prefix の値を databases.[n].collections.[n].dataSources.[n].path の先頭に追加して、取り込むファイルの完全パスを作成します。prefix/software に設定すると、フェデレーティッドデータベースインスタンスを使用するすべてのdatabases オブジェクトが /software のサブパスのみに制限されます。

デフォルトはGoogleGoogle Cloud Platform Cloud Platform Storageバケットのルートで、すべてのファイルを検索します。

stores.[n].delimiter

string

任意

フェデレーティッドデータベースインスタンスストア内の databases.[n].collections.[n].dataSources.[n].path セグメントを区切る区切り文字。Atlas Data Federation は区切り文字を使用して、シミュレートされた階層ディレクトリ構造のGoogle Cloud Platform Storage バケットを効率的に走査します。

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]

以下の表は、データベースオブジェクトのフィールドを説明したものです。

フィールド
タイプ
必要性
説明
databases

配列

必須

各オブジェクトがデータベース、そのコレクション、および任意でコレクション上のビューを表すオブジェクトの配列。各データベースには複数の collections および views オブジェクトを保持できます。

databases.[n].name

string

必須

Atlas Data Federation がデータ ストアに含まれるデータをマッピングするデータベースの名前。

databases.[n].collections

配列

必須

各オブジェクトが stores フェデレーティッドデータベースインスタンスストアにマッピングするコレクションとデータソースを表すオブジェクトの配列。

databases.[n].collections.[n].name

string

必須

Atlas Data Federation が各 databases.[n].collections.[n].dataSources.[n].storeName に含まれるデータをマッピングするコレクションの名前。配列内の各オブジェクトは、コレクションと stores 配列内のオブジェクトとの間のマッピングを表します。

コレクション名に * を指定し、パスフィールドに collectionName() 関数を指定することで、ファイルパスからコレクション名を動的に生成できます。例については、「 ファイルパスからの動的コレクション名の生成 」を参照してください。

databases.[n].collections.[n].dataSources

配列

必須

各オブジェクトがコレクションでマッピングするstoresフェデレーティッドデータベースインスタンスストアを表すオブジェクトの配列。

databases.[n].collections.[n].dataSources.[n].storeName

string

必須

<collection> にマッピングするフェデレーティッドデータベースインスタンスストアの名前。stores 配列内のオブジェクトの name と一致する必要があります。

databases.[n].collections.[n].dataSources.[n].path

string

必須

Atlas Data Federation が databases.[n].collections.[n].dataSources.[n].storeName のファイルを <collection> にマッピングする前に、それらのファイルを検索して解析する方法を制御します。フェデレーティッドデータベースインスタンスは、path の先頭に stores.[n].prefix を追加して、検索するための完全パスを構築します。/ を指定して、prefix パスからのすべてのファイルとフォルダをキャプチャします。

例、次の構造を持つGoogle Cloud Platform という名前のGoogle Cloud Platform Storageバケットを考えてみましょう。metrics

metrics
|--hardware
|--software
|--computed

path/ の場合、Atlas Data Federation は metrics バケット内のすべてのファイルとフォルダーを検索します。

path/hardware の場合、Atlas Data Federation は、取り込むファイルのパスのみを検索します。

stores.[n].prefixsoftware の場合、Atlas Data Federation は、パス /software/computed 上にあるファイルのみを検索します。

パスに * ワイルドカード文字を追加すると、Atlas Data Federation はパスのそのポイントからのすべてのファイルとフォルダーを含めます。たとえば、 /software/computed*/software/computed-detailed/software/computedArchive、および /software/computed/errors などのファイルと一致します。

databases.[n].collections.[n].dataSources.[n].path は、ファイル名を解析するために次のような追加構文をサポートします。

  • ファイル名からドキュメントフィールドの生成。

  • 正規表現を使用したフィールド生成の制御。

  • タイムスタンプでファイル名をバケット化するための境界の設定。

詳細については、「S3 データのパスの定義」を参照してください。

pathを指定する場合

同じ型の属性を指定する場合は、以下のいずれかを行います。

  • 属性の間に定数のセパレーターを追加します。

  • 正規表現を使用して、検索パターンを記述します。詳細については、「サポートされていない解析関数」を参照してください。

databases.[n].collections.[n].dataSources.[n].defaultFormat

string

任意

databases.[n].collections.[n].dataSources.[n].storeName を検索中に拡張子のないファイルを検出した場合に Atlas Data Federation が想定するデフォルトの形式。

defaultFormat フィールドでは、次の値が有効です。

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

ファイル形式が CSV または TSV の場合、データにヘッダー行を含める必要があります。詳細については、「CSV および TSV」を参照してください。

省略した場合、Atlas Data Federation はファイルの数バイトを処理することでファイル タイプの検出を試みます。

以下も参照してください。 サポートされているデータ形式

databases.[n].collections.[n].dataSources.[n].provenanceFieldName

string

任意

結果にドキュメントの出所が含まれるフィールドの名前。ストレージ構成でこの設定を指定すると、Atlas Data Federation は結果の各ドキュメントに対して次のフィールドを返します。

フィールド名
説明

provider

フェデレーティッドデータベースインスタンスストレージ構成のプロバイダー(stores.[n].provider

region

Google Cloud Platformリージョン(stores.[n].region

bucket

Google Cloud Platform Storageバケットの名前(stores.[n].bucket

key

ドキュメントへのパス(databases.[n].collections.[n].dataSources.[n].path

lastModified

ドキュメントが最後に変更された日時。

Atlas UI のビジュアル エディターを使用してこの設定を構成することはできません。

databases.[n].collections.[n].dataSources.[n].omitAttributes

ブール値

任意

Atlas Data Federation がコレクション内のドキュメントに追加する属性(キーと値のペア)を省略するかどうかを指定するフラグ。次のいずれかの値を指定できます。

  • false - 属性を追加する

  • true - 属性を省略する

省略した場合、デフォルトはfalseになり、Atlas Data Federation は属性を追加します。

例、/employees/949-555-0195.json という名前のファイルに databases.[n].collections.[n].dataSources.[n].path /employees/{phone string} を構成する場合を考えます。Atlas Data Federation は、omitAttributesfalse の場合、キーと値のペアがドキュメントに既に存在するかどうかにかかわらず、このファイル内のドキュメントに属性 phone: 949-555-0195 を追加します。omitAttributestrue に設定すると、Atlas Data Federation は仮想コレクション内のドキュメントにこの属性を追加しません。

データセンターから収集されたデータを含むGoogle Cloud Platform Storageバケット を例に考えてみましょう。Google Cloud Platformdatacenter-alpha

|--metrics
|--hardware

/metrics/hardware パスには、データセンターのハードウェアから取得したメトリクスを含む JSON ファイルが格納されます。各ファイル名は、以下のようにそのファイルがカバーする 24 時間の期間の UNIX タイムスタンプ(ミリ秒単位)です。

/hardware/1564671291998.json

以下は次のように構成されます。

  • Google Cloud Platformリージョンの Google Cloud Platformdatacenter-alphaGoogle Cloud Platform Storageバケットにフェデレーティッドデータベースインスタンスストアを定義します。us-central1Google Cloud Platformフェデレーティッドデータベースインスタンスストアには、metricsディレクトリパス内にデータファイルのみを含めるように明確に制限されています。/ の区切り文字は、ナビゲーションと検索を容易にするためにファイルシステム階層をシミュレートするために定義されています。

  • hardwareディレクトリのファイルを MongoDB database datacenter-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オブジェクトは date8601パス解析構文を使用して、ファイル名を各ドキュメントの フィールド(ISO- 日付)にマッピングします。一致する dateフィールドがドキュメント内に存在しない場合、Atlas Data Federation はそれを追加します。

MongoDBフェデレーティッドデータベースインスタンスに接続したユーザーは、GCP MongoDBクエリ言語とサポートされている集計を使用し、datacenter-alpha-metrics.hardware コレクションを通じてGCPストレージバケット内のデータを分析できます。

戻る

配置

項目一覧