V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iugo
V2EX  ›  程序员

如何优化 DynamoDB 以应对订单类型数据的查询?

  •  
  •   iugo ·
    iugo · 2019-04-09 10:55:39 +08:00 · 1320 次点击
    这是一个创建于 2047 天前的主题,其中的信息可能已经有所发展或是发生改变。

    SQL 能很好处理查询, 但是效率一般.

    以前用 CouchDB, map/reduce 挺好, 但是没有事务.

    DynamoDB 有一定的事务, 但是没有 map/reduce. 如何应对订单数据的查询?

    设想使用 trigger + lambda 写数据到新表, 但是一致性不能保证.

    数据例子:

    [
        {
            "orderNum": "123",
            "selesperson": "张三",
            "department": "总店",
            "products": [
                {
                    "id": 1,
                    "price": 998
                },
                {
                    "id": 2,
                    "price": 0
                }
            ],
            "payments": [
                {
                    "type": "现金",
                    "amount": 900
                },
                {
                    "type": "积分",
                    "amount": 98
                }
            ],
            "time": "2019-04-09T02:32:30.450Z"
        }
    ]
    

    一些常用统计:

    • 时间段内各部门的销售数量及金额总和
    • 时间段内各商品的销售数量及金额总和
    • 时间段内各营业员的销售数量及金额总和
    • 时间段内各支付方式的金额总和
    6 条回复    2019-04-09 22:07:21 +08:00
    southwolf
        1
    southwolf  
       2019-04-09 11:52:05 +08:00   ❤️ 1
    结合 stream 用啊
    iugo
        2
    iugo  
    OP
       2019-04-09 12:16:00 +08:00
    AWS 文档中一般都是建议使用 Amazon EMR 的, 可是实时性太低.
    hearfish
        3
    hearfish  
       2019-04-09 12:56:47 +08:00   ❤️ 1
    为什么用 dynamodb? redshift 不好么
    iugo
        4
    iugo  
    OP
       2019-04-09 20:36:27 +08:00
    @southwolf Kinesis Data Streams?
    iugo
        5
    iugo  
    OP
       2019-04-09 20:38:12 +08:00
    @hearfish DynamoDB 是云原生的, 可以按需付费, 扩展性强, 不需要选机器配置.
    kayv
        6
    kayv  
       2019-04-09 22:07:21 +08:00   ❤️ 1
    这个场景确实不适合用 DDB 了,可以用#3 说的 redshift
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3703 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.