Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / /

部署一个联合数据库实例。

在此页面上

  • 必需的访问权限
  • 先决条件
  • 步骤

本页介绍如何部署联邦数据库实例来访问 Amazon Web Services S3存储桶中的数据。

要部署联合数据库实例,您必须对项目拥有 Project Owner访问权限。 在部署联合数据库实例之前,具有Organization Owner访问权限的用户必须将自己作为Project Owner添加到项目中。

在开始之前,您需要:

  • 创建一个 MongoDB Atlas帐户(如果您还没有帐户)。

  • 安装 AWS CLI。

  • 配置Amazon Web ServicesCLI 访问您的Amazon Web Services 帐户。或者,您必须有权访问Amazon Web Services 管理控制台并有权创建 IAM 角色。

  • 可选。 设置统一 Amazon Web Services 访问。

要使用 Atlas CLI 创建新的 Data Federation 数据库,请运行以下命令:

atlas dataFederation create <name> [options]

要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI AtlasdataFederation create 的 文档。

提示

请参阅:相关链接

1
2
3
  1. 点击 Create New Federated Database(新建联合数据库)下拉列表。

  2. 选择 Manual Setup

4

您可以选择AmazonAmazon Web Services AzureGoogle Cloud PlatformWeb Services 、 Azure或Google Cloud Platform 。创建联合数据库实例后,您无法更改Atlas Data Federation处理查询的云提供商。

如果要为Amazon Web Services S3存储桶中的数据配置联合数据库实例,则不能选择与托管数据的云提供商不同的云提供商。 也就是说,您必须选择Amazon Web Services

5

默认值为 FederatedDatabaseInstance[n]。一旦联合数据库实例被创建, 您将无法更改它的名称。

6
  • 要获得引导式体验,请单击 Visual Editor(可视化编辑器)。

  • 要编辑原始JSON ,请单击JSON Editor

7
  1. Data Sources部分选择联合数据库实例的数据集。

    单击Add Data Sources选择您的数据存储。

  2. 指定您的数据存储。

    选择 Amazon S3 可为Amazon Web Services S3存储桶中的数据配置联合数据库实例。

    stores.[n].provider JSON 配置设置对应。

  3. 为 Atlas 选择一个 AWS IAM 角色。

    您可以从角色选择下拉列表中选择 Atlas 已获得授权的现有AWS IAM 角色,也可以选择Authorize an AWS IAM Role以授权新角色。

    如果您选择了一个已经被 Atlas 授权的现有角色,请继续下一步,列出您的 AWS S3 存储桶。

    如果要为现有角色授权 Atlas 或创建新角色, 请先完成以下步骤, 然后再继续下一步:

    1. 选择Authorize an AWS IAM Role以授权新角色,或从下拉列表中选择现有角色并单击Next

    2. 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工作流程:

        • 在验证角色之前, Atlas不会创建联合数据库实例。 您可以Go Atlas Integrations 页面授权新角色。 当您拥有Amazon Web Services IAM角色 ARN 时,可以 恢复 工作流程。

        • 验证角色后,Atlas 将不会创建联合数据库实例。 但是,此角色可在角色选择下拉列表找到, 可用于创建联合数据库实例。您无需 重新授权此角色。

      • Add Trust Relationships to an Existing Role展示如何使用ARN和唯一外部 ID 将 Atlas 添加到现有Amazon Web Services IAM角色的信任关系。按照 Atlas 用户界面中的步骤操作,将 Atlas 添加到现有角色的信任关系。 要了解更多信息,请参阅为现有角色添加信任关系

      重要

      如果您之后想要修改自定义 AWS 角色的 ARN,则请确保在此角色的访问策略中,对联合数据库实例所用 S3 资源拥有适当的访问权限。

    3. 单击 Next(连接)。

  4. 输入 S 3存储桶信息。

    1. 输入 S 3存储桶的名称。

      stores.[n].bucket JSON 配置设置对应。

    2. 指定存储桶是Read-only还是同时是Read and write

      Atlas只能查询Read-only存储桶;如果您希望查询并将查询结果保存到S 3存储桶,请选择Read and write 。 要将查询结果保存到S3存储桶,授予Atlas访问权限Amazon Web Services资源的角色策略必须包含 s3:PutObjects3:DeleteObject 权限,此外还有 s3:ListBuckets3:GetObjects3:GetObjectVersions3:GetBucketLocation 权限,可授予读取访问权限。 请参阅下面的步骤 4,学习;了解有关为Amazon Web Services IAM角色分配访问权限策略的更多信息。

    3. 选择S 3存储桶的地区。

      stores.[n].region JSON 配置设置对应。

      注意

      如果Atlas Data Federation无法检索指定S 3存储桶的地区,则无法创建联合数据库实例。

    4. 可选。 指定Data Federation在S 3存储桶中搜索文件时应使用的前缀。 如果省略, Data Federation将从S 3存储桶的根开始递归搜索所有文件。

      stores.[n].prefix JSON 配置设置对应。

    5. 单击 Next(连接)。

  5. 为您的 AWS IAM 角色指定访问策略。

    1. 按照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>
      ]
      }
      ]
      }
    2. 单击 Next(连接)。

  6. 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 配置设置对应。

  7. 创建虚拟数据库、集合和视图,并将数据库、集合和视图映射到数据存储。

    1. (可选)单击对于:

      • 数据库,用于编辑数据库名称。默认值为 VirtualDatabase[n]

        databases.[n].name JSON 配置设置对应。

      • 集合,可编辑集合名称。 默认值为 VirtualCollection[n]

        databases.[n].collections.[n].name JSON 配置设置对应。

      • 视图,用于编辑视图名称。

      您可以单击:

      • Add Database 添加数据库和集合。

      • 与数据库关联, 以便将集合添加到数据库中。

      • 与集合关联,以添加关于集合的视图。 要创建视图,必须指定:

        • 视图的名称。

        • 应用于视图的管道

          视图定义管道不能包含$out$merge阶段。 如果视图定义包含嵌套管道阶段,例如$lookup$facet ,则此限制也适用于这些嵌套管道。

        要学习;了解有关视图的更多信息,请参阅:

      • 与数据库、集合或视图关联, 以便予以删除。

    2. Data Sources部分的下拉列表中选择AWS S3

    3. 拖放数据存储以与集合映射。

      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>"
}
]
}
]
}

有关配置设置的更多信息,请参阅为联合数据库实例定义数据存储。

  1. 定义您的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

  2. 定义联合数据库实例虚拟数据库、集合和视图。

    编辑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

8

要为联合查询添加其他数据存储,请参阅:

注意

无法连接 Azure Blob 存储数据存储来跨云提供商运行联合查询

9

后退

AWS S3 存储桶