Docs 菜单
Docs 主页
/ /

HTTP URL

Atlas Data Federation 支持可公开访问的 URL作为联合数据库实例存储。 您必须在联合数据库实例中定义到HTTP数据存储的映射,才能运行数据查询。

重要

存储配置中的信息在 MongoDB 内部可见,并存储为操作数据,以监控和提高 Atlas Data Federation 的性能。 因此,我们建议您不要在配置中使用PII

考虑包含从数据中心收集的数据的 https://www.datacenter-hardware.com/data.jsonhttps://www.datacenter-software.com/data.jsonhttps://www.datacenter-metrics.com/data.jsonURL 。 配置如下:

  • 指定包含作为联合数据库实例存储的文件中的数据的可公开访问的 URL。

  • 为每个URL创建一个分区。

{
"stores" : [
{
"name" : "httpStore",
"provider" : "http",
"allowInsecure" : false,
"urls" : [
"https://www.datacenter-hardware.com/data.json",
"https://www.datacenter-software.com/data.json"
],
"defaultFormat" : ".json"
}
],
"databases" : [
{
"name" : "dataCenter",
"collections" : [
{
"name" : "inventory",
"dataSources" : [
{
"storeName" : "httpStore",
"allowInsecure" : false,
"urls" : [
"https://www.datacenter-metrics.com/data"
],
"defaultFormat" : ".json"
}
]
}
]
}
]
}

提示

HTTPHTTPS URL 上查询数据

联合数据库实例配置的格式如下:

1{
2 "stores" : [
3 {
4 "name" : "<string>",
5 "provider": "<string>",
6 "defaultFormat" : "<string>",
7 "allowInsecure": <boolean>,
8 "urls": ["<string>"]
9 }
10 ],
11 "databases" : [
12 {
13 "name" : "<string>",
14 "collections" : [
15 {
16 "name" : "<string>",
17 "dataSources" : [
18 {
19 "storeName" : "<string>",
20 "allowInsecure" : <boolean>,
21 "urls" : ["<string>"],
22 "defaultFormat" : "<string>",
23 "provenanceFieldName": "<string>"
24 }
25 ]
26 }
27 ],
28 "views" : [
29 {
30 "name" : "<string>",
31 "source" : "<string>",
32 "pipeline" : "<string>"
33 }
34 ]
35 }
36 ]
37}
stores
stores对象定义与联合数据库实例关联的每个数据存储。 联合数据库实例存储捕获存储在可公开访问的URL中的文件。 Data Federation 只能访问stores对象中定义的数据存储。
databases
databases 对象定义 stores 中定义的每个联合数据库实例存储与数据库中的 MongoDB 集合之间的映射。
1"stores" : [
2 {
3 "name" : "<string>",
4 "provider" : "<string>",
5 "allowInsecure": <boolean>,
6 "urls" : ["<string>"],
7 "defaultFormat" : "<string>"
8 }
9]
字段
类型
必要性
说明
stores

阵列

必需

对象数组,其中每个对象代表一个与联合数据库实例关联的数据存储。联合数据库实例存储捕获存储在可公开访问的URL中的文件。Atlas Data Federation只能访问权限stores对象中定义的数据存储。

stores.[n].name

字符串

必需

联合数据库实例存储的名称。databases.[n].collections.[n].dataSources.[n].storeName字段引用此值作为映射配置的一部分。

stores.[n].provider

字符串

必需

定义数据的存储位置。值可以是以下值之一:
  • s3 用于Amazon Web Services S3存储桶。

  • atlas 用于 Atlas 集群中的集合。

  • http 用于托管在可公开访问的URL上的文件中的数据。

stores.[n].allowInsecure

布尔

必需

可选。 验证指定URL中的模式。 值可以是以下之一:

  • true 允许不安全的HTTP方案

  • false 仅允许安全的HTTPS方案(默认)

如果为 true,则 Atlas Data Federation:

  • 不验证服务器的证书链和主机名。

  • 接受服务器提供的具有任何主机名的任何证书。

警告:如果将其设立为true ,您的数据可能会容易受到中间人攻击,从而损害数据的机密性和完整性。 仅在测试和开始使用Atlas Data Federation时才将其设置为true

如果省略,则默认为false 。 如果设置为false ,则当指定的 URL 包含不安全的HTTP模式时,Data Federation 会返回类似于以下内容的错误:

The insecure HTTP scheme is not supported by default - please add a "allowInsecure: true" flag to query from such URLs.
stores.[n].urls

阵列

可选

以逗号分隔的存储数据的可公开访问的HTTP URL列表。不能指定需要身份验证的URL

stores.[n].defaultFormat

字符串

可选

Data Federation在搜索 databases.[n].collections.[n].dataSources.[n].storeName 时遇到不带扩展名的文件时采用的默认格式。

以下值对 defaultFormat 字段有效:

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

重要:如果您的文件格式为 CSVTSV,则必须在数据中包含标题行。有关详细信息,请参阅 CSV 和 TSV

如果省略,Data Federation 将尝试处理文件的几个字节来检测文件类型。

指定的格式仅适用于 对象中指定的URL stores

提示

1"databases" : [
2 {
3 "name" : "<string>",
4 "collections" : [
5 {
6 "name" : "<string>",
7 "dataSources" : [
8 {
9 "storeName" : "<string>",
10 "allowInsecure" : <boolean>,
11 "urls" : ["<string>"],
12 "defaultFormat" : "<string>",
13 "provenanceFieldName": "<string>"
14 }
15 ]
16 }
17 ]
18 }
19]
字段
类型
必要性
说明
databases

阵列

必需

对象数组,其中每个对象代表一个数据库、其集合以及可选的集合上的任何 视图。每个数据库可以有多个 collectionsviews 对象。

databases.[n].name

字符串

必需

Atlas Data Federation 将数据存储中包含的数据映射到数据库的数据库名称。

databases.[n].collections

阵列

必需

对象数组,其中每个对象代表一个集合和映射到 stores 联合数据库实例存储的数据源。对于动态生成的数据库,您只能在存储配置中定义一个通配符 (*)集合对象。

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

字符串

必需

Atlas Data Federation将每个databases.[n].collections.[n].dataSources.[n].storeName中包含的数据映射到的集合名称。大量中的每个对象代表集合与stores 大量中对象之间的映射。

重要

通配符 * 集合不适用于HTTP (超文本传输协议)存储。

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

阵列

字符串

对象数组,其中每个对象代表要与集合的stores联合数据库实例存储。

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

字符串

必需

要映射到 <collection>的联合数据库实例存储的名称。必须匹配name 大量中对象的stores

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

布尔

必需

可选。 验证指定URL中的模式。 值可以是以下之一:

  • true 允许不安全的HTTP方案

  • false 仅允许安全的HTTPS方案(默认)

如果为 true,则 Atlas Data Federation:

  • 不验证服务器的证书链和主机名。

  • 接受服务器提供的具有任何主机名的任何证书。

警告:如果将其设立为true ,您的数据可能会容易受到中间人攻击,从而损害数据的机密性和完整性。 仅在测试和开始使用Atlas Data Federation时才将其设置为true

如果省略,则默认为false 。 如果设置为false ,则当指定的 URL 包含不安全的HTTP模式时,Data Federation 会返回类似于以下内容的错误:

The insecure HTTP scheme is not supported by default - please add a "allowInsecure: true" flag to query from such URLs.
databases.[n].collections.[n].dataSources.[n].urls

阵列

可选

以逗号分隔的存储数据的可公开访问的URL列表。联合数据库实例为每个URL创建一个分区。您可以指定不在 中的urls URL ;但是,该集合将包含 和 urls中 URLurls 的数据的并集。

如果省略, Data Federation将使用指定的urls 中的storeName

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

字符串

可选

Data Federation在搜索 databases.[n].collections.[n].dataSources.[n].storeName 时遇到不带扩展名的文件时采用的默认格式。

以下值对 defaultFormat 字段有效:

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

重要:如果您的文件格式为 CSVTSV,则必须在数据中包含标题行。有关详细信息,请参阅 CSV 和 TSV

如果省略,Data Federation 将尝试处理文件的几个字节来检测文件类型。

指定的格式仅适用于 对象中指定的URL databases.[n].collections.[n].dataSources

提示

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

字符串

必需

包含结果中文档来源的字段的名称。如果在存储配置中指定了此设置,Atlas Data Federation 则会为结果中的每个文档返回以下字段:

字段名称
说明

provider

联合数据库实例存储配置中的提供商 ()stores.[n].provider

uri

您无法使用 Atlas 用户界面中的可视化编辑器来配置此设置。

databases.[n].views

阵列

必需

对象数组,其中的每个对象代表一个集合上的一个聚合管道。要了解有关视图的更多信息,请参阅视图

databases.[n].views.[n].name

字符串

必需

视图名称。

databases.[n].views.[n].source

字符串

必需

视图源集合的名称。如果要创建带有$sql阶段的视图,则必须省略此字段,因为SQL声明将指定源集合。

databases.[n].views.[n].pipeline

阵列

必需

要应用 source集合的聚合管道阶段。您还可以使用$sql阶段创建视图。

考虑URL https://www.datacenter-hardware.com/data.jsonhttps://www.datacenter-software.com/data.jsonhttps://www.datacenter-metrics.com/data.json 包含从数据中心收集的数据。配置如下:

  • 指定包含作为联合数据库实例存储的文件中的数据的可公开访问的 URL。

  • 为每个URL创建一个分区。

{
"stores" : [
{
"name" : "httpStore",
"provider" : "http",
"allowInsecure" : false,
"urls" : [
"https://www.datacenter-hardware.com/data.json",
"https://www.datacenter-software.com/data.json"
],
"defaultFormat" : ".json"
}
],
"databases" : [
{
"name" : "dataCenter",
"collections" : [
{
"name" : "inventory",
"dataSources" : [
{
"storeName" : "httpStore",
"allowInsecure" : false,
"urls" : [
"https://www.datacenter-metrics.com/data"
],
"defaultFormat" : ".json"
}
]
}
]
}
]
}

后退

生成集合

在此页面上