在 MongoDB Atlas 搜索索引上使用星型查询的 HTAP

主要观点:

  • MongoDB 因灵活的文档模型常被用于在线事务处理(OLTP),其支持通过 Atlas Search 进行搜索,结合聚合管道可实现有限的在线分析处理(OLAP)功能,适用于某些混合事务和分析(HTAP)工作负载,本文在医疗保健背景下进行了探讨。
  • 传统关系数据库采用“星型转换”等复杂查询优化方法,而 MongoDB 可通过文档模式支持类似查询,添加 Atlas Search 索引可在不重构模式的情况下支持某些分析查询。
  • 以 MedSynora DW 数据集为例,展示了如何利用事实集合上的单个索引进行高效查询,包括导入数据集、创建新集合、创建 Atlas Search 索引、进行星型查询等步骤。
  • 星型查询分三个阶段,先在维度集合上应用过滤器获取维度键,再在事实集合上使用搜索索引进行搜索,最后可能检索额外维度进行聚合或投影。
  • 可通过搜索聚合管道优化事实集合处理,添加更多过滤器,估计搜索索引返回的记录数以避免昂贵查询,还可在第三阶段进行维度连接以获取更多属性。
  • 过滤后的文档集可进行额外聚合,如按医生分组统计患者数量和严重程度范围等。

关键信息:

  • MongoDB 文档模型及 Atlas Search 索引的特点与优势。
  • MedSynora DW 数据集的结构与导入方法。
  • 星型查询的三个阶段及具体操作。
  • 搜索聚合管道的使用及注意事项。

重要细节:

  • 展示了如何创建新集合以替代从规范化 CSV 导入的集合,以及新集合中文档的结构。
  • 详细说明了 Atlas Search 索引的创建及字段类型设置。
  • 给出了星型查询各阶段的具体代码示例,包括在维度集合上获取维度键、在事实集合上进行搜索等。
  • 介绍了如何估计搜索索引返回的记录数,以及在聚合管道中添加更多操作的情况。
  • 展示了在第三阶段进行维度连接以获取更多属性的具体代码及结果。
阅读 127
0 条评论