【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

微软发布 Azure Cosmos DB 中 MongoDB 聚合功能的公开预览版本

  • 2018-03-27
  • 本文字数:1216 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

去年十一月,微软宣布在Azure Cosmos DB 中支持MongoDB 的更多功能。随着Cosmos DB 服务最新版本的部署,微软包含了对MongoDB 聚合管道支持的预览版本,允许开发人员通过联合多个聚合“stage”,创建更复杂的查询和数据操作。

微软的Azure Cosmos DB 是一个全球的分布式多模型、多API 的数据库服务。多模型支持Graph、列族(column family)、key-value 和文档。除了多模型的支持以外,它还提供了对多种API 访问的支持,包括MongoDB API,这意味着Mongo 应用可以直接与Cosmos DB 进行通信。除此之外,各种原生的MongoDB 特性也内置到了Cosmos DB 的MongoDB API 中。

Mongo 开发了聚合管道(aggregation pipeline) 功能,这是map-reduce 的替代方案,它是一个更加轻量级和更自然的编程模型。该特性是微软为Cosmos DB 提供的众多特性之一,他们希望通过这些特性促使客户从原生MongoDB 中迁移出来。另外,Cosmos DB 工程团队还将用户要求的MongoDB 原生特性直接构建到了Cosmos DB 中。Azure Cosmos DB 目前还没有完全支持所有的MongoDB 原生特性,当然它正在朝着这个方向努力。在Channel 9 Azure Friday 合辑中,有关 Azure Cosmos DB 为 MongoDB 提供了哪些新功能的访谈里面,来自 Cosmos DB 工程团队的 Emily Lawton 这样告诉 Scott Hanselman:

在最近的几个月和几周的时间内,我们正在做一些新的特性,这些特性能够让 Mongo 客户将更复杂更强大的应用迁移至 Cosmos。随着这些更新的发布,我们可以自信地说,我们支持了所有最受欢迎的 Mongo 特性并且将投入花费到了最适当的地方,我们可以向任何从 Mongo 迁移过来的客户保证,我们有适当的工具和资源确保他们能够在 Cosmos 中获得成功。

借助 MongoDB 的聚合管道,在将结果返回给客户端之前,更多的数据处理会在服务端完成。这项特性的明显收益就是在网络上数据传输会更少,发起调用的客户端所接收到的数据量会更加易于管理。举例来说,典型的聚合管道可以是在 MongoDB 实例中查找记录,这样能够通过一个查询来实现,该查询会基于表达式进行匹配和分组以及计数:


图片来源: https://azure.microsoft.com/en-us/blog/azure-cosmosdb-extends-support-for-mongodb-aggregation-pipeline-unique-indexes-and-more/

MongoDB 聚合管道是通过聚合命令 aggregate、count 或 distinct 来实现的,命令后面紧接着的是一个或多个聚合 stage,其中可以使用表达式、累加器(accumulator)和操作符。关于更多细节信息,请参考微软网站上的文档。

开源的MongoDB 客户端驱动允许开发人员与Cosmos DB 中的MongoDB API 进行通信。对聚合管道的支持已经发布公开预览,开发人员可以在Azure 门户中通过任意MongoDB API 账户的Preview Features 页面启用该特性。

查看英文原文 Microsoft Announces a Public Preview of the MongoDB Aggregation Feature in Azure Cosmos DB

2018-03-27 19:001324

评论

发布
暂无评论
发现更多内容

一个程序猿应该具备哪些能力?

锐哥

程序员 1024讲话 1024

二十二、 深入Python的进程和线程(上篇)

刘润森

Python

javaCV学习-1-环境搭建及测试多张图片合成一个mp4的视频

诸葛小猿

Java 图片合成视频 机器视觉

架构师训练营 1 期第 5 周:技术选型(一) - 总结

piercebn

极客大学架构师训练营

【高并发】面试官问我:为什么局部变量是线程安全的?

冰河

多线程 高并发 高性能 线程安全 签约计划第二季

1024|推荐一个开源免费的Spring Boot教程

Java旅途

Java 开源 Spring Boot

Netty源码解析 -- ChannelPipeline机制与读写过程

binecy

Netty nio 源码剖析

架构师训练营 -week05-总结

大刘

极客大学架构师训练营

代码作业

Geek_4c1353

极客大学架构师训练营

Git:使用Git之前的配置

bobo

git

架构师训练营第1周学习总结

菜青虫

极客大学架构师训练营

架构师训练营第 1 期 week5 总结

张建亮

极客大学架构师训练营

架构师训练营 - 第五周 - 作业一

行者

周练习 5

何毅曦

第五周 技术选型(1)作业

蓝黑

极客大学架构师训练营

golang实现一致性 hash 算法

Jacky.Chen

架构师训练营第一周作业

TONNY

架构师训练营 第一课作业

文江

介绍几种微商常见的引流方式

boshi

营销 电商

关于Java面试必备的Java集合知识,终于有大佬总结整理出来了!

Java架构之路

Java 程序员 架构 面试 编程语言

2020年的Java程序员面试三件套:多线程+算法+微服务

Java架构师迁哥

第13周作业

Vincent

极客时间 极客大学

学习总结

TONNY

第13周总结

Vincent

极客时间 极客大学

第五周 实现一致性 hash 算法

Geek_fabd84

ping TCP端口的实用小工具tcping

网络 ping tcping

架构师训练营第五周作业

我是谁

极客大学架构师训练营

架构师训练营 - 第五周 - 作业二

行者

并发环境下,先操作数据库还是先操作缓存?

捡田螺的小男孩

数据库 缓存 后端 并发

架构师1期-技术选型(一)作业

ltl3884

极客大学架构师训练营

食堂就餐卡系统设计

菜青虫

微软发布Azure Cosmos DB中MongoDB聚合功能的公开预览版本_数据库_Steef-Jan Wiggers_InfoQ精选文章