Docs 菜单
Docs 主页
/
MongoDB Atlas
/

Atlas Data Federation 概述

在此页面上

  • 关于 Atlas Data Federation
  • 关键概念
  • Atlas Data Federation 架构
  • 用途示例
  • Atlas Data Federation 区域

Atlas Data Federation 是一个分布式查询引擎,允许您在 MongoDB Atlas 内部和外部的各种源之间以原生方式查询、转换和移动数据。

Federated Database Instance

联合数据库实例是 Atlas Data Federation 的部署。每个联合数据库实例都包含虚拟数据库和集合,这些虚拟数据库和集合映射到数据存储中的数据。

Data Store

数据存储是指数据所在的位置。Atlas Data Federation 支持以下数据存储:

  • Atlas 集群

  • Atlas 在线存档

  • Atlas Data Lake 数据集

  • AWS S3 存储桶

  • Azure Blob 存储

  • HTTPHTTPS 端点

Storage Configuration

存储配置包含了虚拟数据库和集合与 JSON 格式的数据源之间的映射。您可以在存储配置中定义这些映射,以便访问和查询数据。

Atlas Data Federation 架构
点击放大

上图中的数据平面是数据所在的位置。您可以通过配置 Atlas Data Federation 来访问各种存储服务中的数据。具体来说,可以通过配置 Atlas Data Federation 来跨 AWS 区域、Azure Blob Storage 容器、Atlas 集群、HTTPHTTPS URL、Atlas Online Archives 和 Atlas Data Lake 数据集访问 AWS S3 存储桶中的数据。要详细了解如何配置 Atlas Data Federation 以访问您的数据存储,请参阅为联合数据库实例定义数据存储

然后,您可以为联合数据库实例设置基于角色的访问控制。您可以通过全局连接选项或将其固定到特定区域来控制客户端连接到联合数据库实例的方式。要了解详情,请参阅为联合数据库实例配置连接

Atlas Data Federation 保留数据局部性并最大限度地利用本地计算,从而最大限度地减少数据传输并优化性能。上图中的计算平面显示了 Atlas Data Federation 处理所有请求的位置。 Atlas Data Federation 在距离您的数据最近的区域提供一个弹性代理池,Atlas Data Federation 可以在其中处理您的查询数据。要了解有关支持区域的更多信息,请参阅 Atlas Data Federation 区域。

Atlas Data Federation 不会将数据持久保留在系统内,一旦处理完您的查询,它只会将元数据存储在您的联合数据库实例中。这使您能够遵守数据主权法规,并确保您的数据的存储和处理符合法律要求。

上图中的控制平面与 Atlas 控制平面相同,是 Atlas Data Federation 平衡用户请求并聚合最终结果的地方。

Atlas Data Federation 直接在底层存储服务上执行查询的某些部分,而不是将所有数据都传输到计算节点进行处理。此外,当您执行查询时,它首先由 Data Federation 前端组件处理,该组件负责规划查询,然后将其分发到后端的节点。之后,后端节点会直接访问您的数据存储以执行查询逻辑并将结果返回给前端。此过程减少了需要移动的数据量,从而使整个过程的速度更快、成本更低。要了解详情,请参阅查询联合数据库实例。

为了优化查询性能,Atlas Data Federation 会执行以下操作:

  • 对于云对象存储,它使用数据分区来根据查询参数选择需要处理的文件。要了解详情,请参阅为 S3 数据定义路径使用分区属性类型。此外,它还使用 Parquet 元数据来减少通过行组选择或列投影从 Parquet 文件扫描的数据量。要了解详情,请参阅Parquet 数据格式。

  • 对于 Atlas 集群,它会尝试将尽可能多的查询“下推”到集群。例如,如果您的聚合管道有一个$match阶段,并且可以在本地处理,则 Atlas Data Federation 会尝试在 Atlas 集群中处理该阶段,并且仅将生成的文档返回到联合层以处理后续阶段。要了解更多信息,请参阅在 Atlas 集群中查询数据。

  • 对于 Atlas Data Lake 数据集,它使用分区索引来加快对数据集的查询速度。Atlas Data Lake 分区索引包含其返回的计数,而不是扫描底层文件存储来满足查询需求。要了解更多信息,请参阅Atlas Data Lake 数据集或在线存档。

要了解更多信息,请参阅优化查询性能。

您可以使用 MongoDB 语言特定的驱动程序mongoshAtlas SQL连接到 Atlas Data Federation。要了解更多信息,请参阅连接到您的联合数据库实例。

您可以使用 Atlas Data Federation 执行以下操作:

  • 将 Atlas 集群数据复制到已写入 AWS S3 存储桶的 Parquet 或 CSV 文件中。

  • 跨多个 Atlas 集群和在线归档进行查询,以获得 Atlas 数据的整体视图。

  • 将 Atlas 集群和 AWS S3 存储桶的聚合结果物化为数据。

  • AWS S3 存储桶读取数据并将其导入到 Atlas 集群中。

注意

为了防止产生过多费用,请在与 S3 或 Azure Blob Storage 数据源相同的 AWSAzure 区域中创建 Atlas Data Federation。只能使用在 AWS 中创建的联合数据库实例来查询 AWS S3,并且只能使用在 Azure 中创建的联合数据库实例来查询 Azure Blob Storage。

Atlas Data Federation 通过以下区域之一路由您的联合数据库请求:

注意

运行联合查询时将产生费用。更多信息,请参阅 Data Federation 成本。

← 设置和查询 Data Federation