Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

HTTP URL

在此页面上

  • HTTP 数据存储的配置示例
  • 配置格式
  • stores
  • databases

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

对象数组,其中每个对象代表一个与联合数据库实例关联的数据存储。联合数据库实例存储可捕获 S3 存储桶中的文件、Atlas 集群中的文档或存储在可公开访问的 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 数组中对象之间的映射。

注意

无法生成通配符*collection。

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

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

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

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

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 ;但是,该集合将包含urlsurls中URL的数据的并集。 如果省略,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阶段创建视图。

后退

生成集合