Docs 菜单
Docs 主页
/ /

优化查询性能

联合数据库实例的性能受以下因素影响:

  • 数据文件的大小。

  • 数据文件的格式和结构。

See the following sections to learn how to optimize your federated database instance query performance.

Atlas Data Federation 处理的每个文件都需要一定量的计算资源。 如果您的联合数据库实例存储包含许多小数据文件,则所需的资源会增加,并且可能会降低性能。 或者,许多大型数据文件会出现问题,因为 Data Federation 然后会下载并处理不必要的数据。

对于大多数使用案例,性能文件大小为100 到 200 MB

Federated Database Instances support several data file formats. You can improve performance by compressing certain file formats or by optimizing file contents for your queries.

压缩数据文件后,下载时间会缩短。 与解析未压缩数据相比,减少下载时间具有更大的性能优势。

You can compress the following file formats using gzip:

  • JSON

  • BSON

  • CSV

  • 制表符分隔值 (TSV)

ParquetAvroORC文件包含有关文件本身的元数据,以便应用程序可以以不同的方式遍历文件内容。如果您构建数据文件以与要运行的查询保持一致,Atlas Data Federation可以利用此元数据快速跳转到正确的数据。

在这些格式中,Parquet 文件为联合数据库实例提供了最佳性能和空间效率,因为它针对解析 Parquet 的行组和列组进行了优化。

In AWS S3 Buckets, the structure of your data and the way you define it in the configuration file affect the performance of your federated database instance.

为了便于管理,请确保您的数据在逻辑上分组为分区。 Atlas Data Federation 利用您通过分区语法中指定的字段值创建的分区。 您可以通过确保分区结构映射到查询模式并且在 databases.[n].collections.[n].dataSources.[n].path中定义分区结构来提高联合数据库实例的性能。 对于分区,选择您经常查询的字段,并从第一个位置查询最频繁的字段到最后一个位置查询次数最少的字段进行排序。

databases.[n].collections.[n].dataSources.[n].path中列出的字段顺序与在复合索引中一样重要。 指定的路径对应于首先按第一个字段的值分区的数据,然后按下一个字段的值分区,依此类推。

例子

考虑一个包含softwarecomputerOS字段的collection,在名为metricsS3存储桶上分区,首先是software字段,然后是computer字段,最后是OS字段。

metrics
|--software
|--computer
|--OS

Atlas Data Federation 使用分区对以下字段进行查询:

  • software 字段。

  • software 字段和 computer 字段,

  • software 字段、computer 字段和 OS 字段。

Atlas Data Federation 可以使用分区来支持对softwareOS字段的查询。 但是,在这种情况下,Atlas Data Federation 的查询效率不如仅对softwarecomputer字段进行查询时的效率。 按顺序解析分区;如果查询省略了特定分区,则 Atlas Data Federation 在使用该分区之后的任何分区时效率会降低。 由于对softwareOS的查询省略了computer ,因此 Atlas Data Federation 使用software分区比OS分区更有效地支持此查询。

Atlas Data Federation 无法使用分区来支持对databases.[n].collections.[n].dataSources.[n].path中未指定的字段的查询。此外,Atlas Data Federation 无法使用分区来支持包含以下字段但不包含software字段的查询:

  • computer 字段。

  • OS 字段,或

  • computerOS 字段。

您可以将分区映射到配置中的分区属性,从而使用分区来提高 Data Federation 性能。 通过将分区属性S3前缀中看起来像文件夹的部分)映射到查询属性,Atlas Data Federation 可以有选择地打开包含与查询相关的数据的文件。 这减少了查询所需的时间并降低了成本,因为 Data Federation 从Amazon Web Services读取和下载的文件减少了。

例子

考虑具有以下结构的S3存储桶metrics

metrics
|--hardware
|--software
|--computer
|--phone

您可以通过在配置中定义/metrics/{metric_type string}/*来设置“指标类型”的分区属性。 如果您发出包含{metric_type: software}的查询,Data Federation 仅处理前缀为/software的文件,而忽略前缀为/hardware的文件。

然后,您可以通过在配置中定义/metrics/{metric_type string}/{software_type string}来设置“软件类型”的分区属性。 如果您发出包含{metric_type: software, software_type: computer}的查询,Data Federation 将忽略前缀为/phone的文件。

For more information on mapping partition attributes to a collection databases.[n].collections.[n].dataSources.[n].path, see Define Path File Syntax.

后退

CSV 和 TSV

在此页面上