部署一个联合数据库实例。
本页介绍如何部署联邦数据库实例来访问 Amazon Web Services S3存储桶中的数据。
必需的访问权限
要部署联合数据库实例,您必须对项目拥有 Project Owner
访问权限。 在部署联合数据库实例之前,具有Organization Owner
访问权限的用户必须将自己作为Project Owner
添加到项目中。
先决条件
在开始之前,您需要:
创建一个 MongoDB Atlas帐户(如果您还没有帐户)。
配置Amazon Web ServicesCLI 访问您的Amazon Web Services 帐户。或者,您必须有权访问Amazon Web Services 管理控制台并有权创建 IAM 角色。
步骤
要使用 Atlas CLI 创建新的 Data Federation 数据库,请运行以下命令:
atlas dataFederation create <name> [options]
要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI AtlasdataFederation create 的 文档。
指定您的Amazon Web ServicesAmazon Web Services S3 数据存储,并配置映射到您的数据存储的联合数据库和虚拟集合。
从Data Sources部分选择联合数据库实例的数据集。
单击Add Data Sources选择您的数据存储。
指定您的数据存储。
选择 Amazon S3 可为Amazon Web Services S3存储桶中的数据配置联合数据库实例。
与
stores.[n].provider
JSON 配置设置对应。为 Atlas 选择一个 AWS IAM 角色。
您可以从角色选择下拉列表中选择 Atlas 已获得授权的现有AWS IAM 角色,也可以选择Authorize an AWS IAM Role以授权新角色。
如果您选择了一个已经被 Atlas 授权的现有角色,请继续下一步,列出您的 AWS S3 存储桶。
如果要为现有角色授权 Atlas 或创建新角色, 请先完成以下步骤, 然后再继续下一步:
选择Authorize an AWS IAM Role以授权新角色,或从下拉列表中选择现有角色并单击Next 。
在Add Atlas to the trust relationships of your AWS IAM role部分中使用AWS ARN和唯一外部 ID,将 Atlas 添加到现有或新AWS IAM 角色的信任关系中。
在 Atlas 用户界面中,单击并展开以下选项之一:
Create New Role with the AWS CLI 演示如何使用ARN和唯一外部ID将Atlas添加到新Amazon Web Services IAM角色的信任关系中。 按照 Atlas 用户界面中的步骤创建新角色。 要了解更多信息,请参阅使用Amazon Web Services CLI创建新角色。
授权新角色时,如果退出
Configure a New Data Lake
工作流程:Add Trust Relationships to an Existing Role展示如何使用ARN和唯一外部 ID 将 Atlas 添加到现有Amazon Web Services IAM角色的信任关系。按照 Atlas 用户界面中的步骤操作,将 Atlas 添加到现有角色的信任关系。 要了解更多信息,请参阅为现有角色添加信任关系。
重要
如果您之后想要修改自定义 AWS 角色的 ARN,则请确保在此角色的访问策略中,对联合数据库实例所用 S3 资源拥有适当的访问权限。
单击 Next(连接)。
输入 S 3存储桶信息。
输入 S 3存储桶的名称。
与
stores.[n].bucket
JSON 配置设置对应。指定存储桶是Read-only还是同时是Read and write 。
Atlas只能查询Read-only存储桶;如果您希望查询并将查询结果保存到S 3存储桶,请选择Read and write 。 要将查询结果保存到S3存储桶,授予Atlas访问权限Amazon Web Services资源的角色策略必须包含
s3:PutObject
和s3:DeleteObject
权限,此外还有s3:ListBucket
、s3:GetObject
、s3:GetObjectVersion
和s3:GetBucketLocation
权限,可授予读取访问权限。 请参阅下面的步骤 4,学习;了解有关为Amazon Web Services IAM角色分配访问权限策略的更多信息。选择S 3存储桶的地区。
与
stores.[n].region
JSON 配置设置对应。注意
如果Atlas Data Federation无法检索指定S 3存储桶的地区,则无法创建联合数据库实例。
可选。 指定Data Federation在S 3存储桶中搜索文件时应使用的前缀。 如果省略, Data Federation将从S 3存储桶的根开始递归搜索所有文件。
与
stores.[n].prefix
JSON 配置设置对应。单击 Next(连接)。
为您的 AWS IAM 角色指定访问策略。
按照Atlas user界面中的步骤为您的Amazon Web Services IAM角色分配访问权限策略。
只读或读写访问权限的角色策略应如下所示:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ <role arn> ] } ] } { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ <role arn> ] } ] } 单击 Next(连接)。
为S 3存储桶中的文件定义路径结构,然后单击Next 。
例如:
s3://<bucket-name>/<path>/<to>/<files>/<filename>.<file-extension> 要为S 3存储桶上的数据添加其他路径,请单击Add Data Source并输入路径。 要学习;了解有关路径的更多信息,请参阅为 S 3数据定义路径。
与
databases.[n].collections.[n].dataSources.[n].path
JSON 配置设置对应。创建虚拟数据库、集合和视图,并将数据库、集合和视图映射到数据存储。
(可选)单击对于:
数据库,用于编辑数据库名称。默认值为
VirtualDatabase[n]
。与
databases.[n].name
JSON 配置设置对应。集合,可编辑集合名称。 默认值为
VirtualCollection[n]
。与
databases.[n].collections.[n].name
JSON 配置设置对应。视图,用于编辑视图名称。
您可以单击:
从Data Sources部分的下拉列表中选择AWS S3 。
拖放数据存储以与集合映射。
与
databases.[n].collections.[n].dataSources
JSON 配置设置对应。
Amazon Web Services S3数据存储的配置应如下所示:
{ "stores" : [ { "name" : "<string>", "provider": "<string>", "region" : "<string>", "bucket" : "<string>", "additionalStorageClasses" : ["<string>"], "prefix" : "<string>", "includeTags": <boolean>, "delimiter": "<string>", "public": <boolean> } ], "databases" : [ { "name" : "<string>", "collections" : [ { "name" : "<string>", "dataSources" : [ { "storeName" : "<string>", "path" : "<string>", "defaultFormat" : "<string>", "provenanceFieldName": "<string>", "omitAttributes": true | false } ] } ], "maxWildcardCollections" : <integer>, "views" : [ { "name" : "<string>", "source" : "<string>", "pipeline" : "<string>" } ] } ] }
有关配置设置的更多信息,请参阅为联合数据库实例定义数据存储。
定义您的Amazon Web Services S3 数据存储。
编辑
stores
用户界面中显示的JSON配置设置。 您的stores
配置设置应如下所示:"stores" : [ { "name" : "<string>", "provider" : "<string>", "region" : "<string>", "bucket" : "<string>", "additionalStorageClasses" : ["<string>"], "prefix" : "<string>", "delimiter" : "<string>", "includeTags": <boolean>, "public": <boolean> } ] 要学习;了解有关这些配置设置的更多信息,请参阅
stores
。定义联合数据库实例虚拟数据库、集合和视图。
编辑
databases
用户界面中显示的JSON配置设置。 您的databases
配置设置应如下所示:"databases" : [ { "name" : "<string>", "collections" : [ { "name" : "<string>", "dataSources" : [ { "storeName" : "<string>", "defaultFormat" : "<string>", "path" : "<string>", "provenanceFieldName": "<string>", "omitAttributes": <boolean> } ] } ], "maxWildcardCollections" : <integer>, "views" : [ { "name" : "<string>", "source" : "<string>", "pipeline" : "<string>" } ] } ] 要学习;了解有关这些配置设置的更多信息,请参阅
databases
。
可选:重复上述“可视化编辑器”或“ JSON编辑器”标签页中的步骤,定义其他Azure Azure Blob 存储数据存储。
要为联合查询添加其他数据存储,请参阅:
注意
无法连接 Azure Blob 存储数据存储来跨云提供商运行联合查询。