• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iugo
V2EX  ›  程序员

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

  •  
  •   iugo ·
    iugo · Apr 9, 2019 · 1771 views
    This topic created in 2617 days ago, the information mentioned may be changed or developed.

    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 replies    2019-04-09 22:07:21 +08:00
    southwolf
        1
    southwolf  
       Apr 9, 2019   ❤️ 1
    结合 stream 用啊
    iugo
        2
    iugo  
    OP
       Apr 9, 2019
    AWS 文档中一般都是建议使用 Amazon EMR 的, 可是实时性太低.
    hearfish
        3
    hearfish  
       Apr 9, 2019   ❤️ 1
    为什么用 dynamodb? redshift 不好么
    iugo
        4
    iugo  
    OP
       Apr 9, 2019
    @southwolf Kinesis Data Streams?
    iugo
        5
    iugo  
    OP
       Apr 9, 2019
    @hearfish DynamoDB 是云原生的, 可以按需付费, 扩展性强, 不需要选机器配置.
    kayv
        6
    kayv  
       Apr 9, 2019   ❤️ 1
    这个场景确实不适合用 DDB 了,可以用#3 说的 redshift
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1028 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 19:13 · PVG 03:13 · LAX 12:13 · JFK 15:13
    ♥ Do have faith in what you're doing.