Google Cloud Storage 存储桶
Atlas Data Federation支持将 Google Cloud Storage 存储桶作为联合数据库实例存储。您必须在联合数据库实例中定义到 Cloud Storage 存储桶的映射,才能运行数据查询。
注意
在此页面中,我们将对象称为文件,将分隔符分隔的前缀称为目录。但是,这些对象存储服务实际上并不是文件系统,并且在所有情况下都不具有与硬盘驱动器上的文件相同的行为。
Google Cloud Storage 存储桶的配置示例
考虑包含从数据中心收集的数据的 Google Cloud Storage 存储桶 datacenter-alpha
:
|--metrics |--hardware
/metrics/hardware
路径存储 JSON 文件,其中包含源自数据中心硬件的指标,每个文件名是该文件所涵盖的 24 小时周期的 UNIX 时间戳(毫秒):
/hardware/1564671291998.json
配置如下:
在
us-central1
Google Cloud地区中的datacenter-alpha
Google Cloud Storage 存储桶上定义联合数据库实例存储。联合数据库实例存储被明确限制为仅包含metrics
目录路径中的数据文件。定义分隔符/
来模拟文件系统层次结构,以便于导航和检索。将
hardware
目录中的文件映射到 MongoDB 数据库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 Federation解析 Google Cloud Storage 存储桶datacenter-alpha
并处理/metrics/hardware/
下的所有文件。 collections
对象使用路径解析语法将文件名映射到每个文档中的date
字段,即 ISO- 8601日期。如果文档中不存在匹配的date
字段, Atlas Data Federation会添加该字段。
连接到联合数据库实例的用户可以使用MongoDB查询语言和支持的聚合,通过datacenter-alpha-metrics.hardware
集合分析Google Cloud Storage 存储桶中的数据。
配置格式
为了支持Google Cloud 上的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 | 阵列 | 必需 | 对象数组,其中每个对象代表一个与联合数据库实例关联的数据存储。联合数据库实例存储捕获:
Atlas Data Federation 只能访问 | ||||||||||||
stores.[n].
name | 字符串 | 必需 | 联合数据库实例存储的名称。 databases.[n].collections.[n].dataSources.[n].storeName 字段引用此值作为映射配置的一部分。 | ||||||||||||
stores.[n].
provider | 字符串 | 必需 | 存储数据的云提供商名称。对于 Google Cloud Storage 存储桶,值必须为 gcs 。 | ||||||||||||
stores.[n].
region | 字符串 | 必需 | 托管 Google Cloud Storage 存储桶的 Google Cloud地区的名称。有关有效地区名称的列表,请参阅Google Cloud Platform (GCP)。 | ||||||||||||
stores.[n].
bucket | 字符串 | 必需 | Google Cloud Storage 存储桶的名称。必须与Atlas Data Federation必须访问权限的 Google Cloud Storage 存储桶的名称完全匹配。 | ||||||||||||
stores.[n].
prefix | 字符串 | Optional | Prefix Atlas Data Federation在 Google Cloud Storage 存储桶中搜索文件时适用。示例,考虑具有以下结构的 Google Cloud Storage 存储桶
联合数据库实例存储将 默认为 Google Cloud Storage 存储桶的根,检索所有文件。 | ||||||||||||
stores.[n].
delimiter | 字符串 | Optional | 用于分隔联合数据库实例存储中的 databases.[n].collections.[n].dataSources.[n].path 段的分隔符。 Atlas Data Federation使用分隔符,通过模拟的分层目录结构高效地遍历 Google Cloud Storage 存储桶。 | ||||||||||||
databases | 阵列 | 必需 | |||||||||||||
databases.[n].
name | 字符串 | 必需 | Atlas Data Federation 将数据存储中包含的数据映射到数据库的数据库名称。 | ||||||||||||
databases.[n].
collections | 阵列 | 必需 | 对象数组,其中每个对象代表一个集合和映射到 stores 联合数据库实例存储的数据源。 | ||||||||||||
databases.[n].
collections.[n].
name | 字符串 | 必需 | Atlas Data Federation将每个 您可以通过为集合名称指定 | ||||||||||||
databases.[n].
collections.[n].
dataSources | 阵列 | 必需 | 对象数组,其中每个对象代表要与集合映射的 stores 联合数据库实例存储。 | ||||||||||||
databases.[n].
collections.[n].
dataSources.[n].
storeName | 字符串 | 必需 | 要映射到 <collection> 的联合数据库实例存储的名称。必须匹配name stores 大量中对象的 。 | ||||||||||||
databases.[n].
collections.[n].
dataSources.[n].
path | 字符串 | 必需 | 控制Atlas Data Federation在将文件映射到 示例,假设有一个名为
如果 将
请参阅为 S3 数据定义路径以了解更多信息。 指定
在指定相同类型的属性时,请执行以下任一操作:
| ||||||||||||
databases.[n].
collections.[n].
dataSources.[n].
defaultFormat | 字符串 | Optional | Data Federation在搜索 以下值对
注意如果您的文件格式为 如果省略,Data Federation 将尝试处理文件的几个字节来检测文件类型。 | ||||||||||||
databases.[n].
collections.[n].
dataSources.[n].
provenanceFieldName | 字符串 | Optional | 包含结果中文档来源的字段的名称。如果在存储配置中指定了此设置,Atlas Data Federation 则会为结果中的每个文档返回以下字段:
您无法使用 Atlas 用户界面中的可视化编辑器来配置此设置。 | ||||||||||||
databases.[n].
collections.[n].
dataSources.[n].
omitAttributes | 布尔 | Optional | 标志,指定是否省略Atlas Data Federation添加到集合中文档的属性(键和值对)。您可以指定以下值之一:
如果省略,则默认为 示例,考虑一个名为 |