Docs Menu
Docs Home
/
MongoDB Atlas
/ /

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

項目一覧

  • Google Cloud PlatformストレージGoogle Cloud Platform バケットの構成例
  • 構成フォーマット

Atlas Data FederationGCPAtlas Data Federation は、フェデレーティッドデータベースインスタンスストアとしてGCPストレージ バケットをサポートします。データに対してクエリを実行するには、フェデレーティッドデータベースインスタンスで Cloud Storageバケットへのマッピングを定義する必要があります。

注意

このページでは、オブジェクトをファイルと指し、区切り文字で区切られたプレフィックスはディレクトリと指します。 ただし、これらのオブジェクトストレージサービスは実際にはファイルシステムではなく、すべてのケースでハードドライブ上のファイルと同じように動作するわけではありません。

データセンターから収集されたデータを含むGoogle Cloud Platform Storageバケット{0 を例に考えてみましょう。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ストレージバケット内のデータを分析できます。

Atlas Data FederationGoogle Cloud PlatformGoogle Cloud Platformで Atlas Data Federation をサポートするために、フェデレーティッドデータベースインスタンス構成には次のプロトタイプ形式があります。

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
フィールド
タイプ
必要性
説明

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

必須

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

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 FederationAtlasGoogle Cloud Platform Data Federation は区切り文字を使用して、シミュレートされた階層ディレクトリ構造のGoogle Cloud Platform Storage バケットを効率的に走査します。

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 が <collection> にマッピングする前に、databases.[n].collections.[n].dataSources.[n].storeName 内のファイルを検索して解析する方法を制御します。フェデレーティッドデータベースインスタンスは、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 PlatformGoogle Cloud Platformリージョン(stores.[n].region

bucket

GoogleGoogle Cloud Platform 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 は仮想コレクション内のドキュメントにこの属性を追加しません。

戻る

配置