Fra*_*ois 7 azure graph-databases gremlin azure-cosmosdb
想象一下社交网络应用程序.用户关注其他用户和用户拍照.照片上有其他用户的标签.
我正在尝试为该应用程序获得有效的Cosmos数据库实现.我提供了SQL Server版本以及基准测试.
这是它的表格版本:
这是Gremlin查询:
g.V('c39f435b-350e-4d08-a7b6-dfcadbe4e9c5')
.out('follows').as('name')
.out('took').order(local).by('postedAt', decr).as('id', 'postedAt')
.select('id', 'name', 'postedAt').by(id).by('name').by('postedAt')
.limit(10)
Run Code Online (Sandbox Code Playgroud)
这是等效的SQL查询(实际上是linq):
Follows
.Where(f => f.FollowerId == "c39f435b-350e-4d08-a7b6-dfcadbe4e9c5")
.Select(f => f.Followees)
.SelectMany(f => f.Photos)
.OrderByDescending(f => f.PostedAt)
.Select(f => new { f.User.Name, f.Id, f.PostedAt})
.Take(10)
Run Code Online (Sandbox Code Playgroud)
该用户跟随136个用户,他们共同拍摄了257张照片.
SQL Server和Cosmos db都位于West Europe Azure位置.我在法国.我在Linpad上做了一些测试.
如何使用cosmos db更快更便宜地获取Feed?
注意:为了让RU充电,我正在使用Microsoft.Azure.Graph.但我也可以使用Gremlin.Net并得到类似的结果.
| 归档时间: |
|
| 查看次数: |
2301 次 |
| 最近记录: |