代码之家  ›  专栏  ›  技术社区  ›  Robert

计数文件的flask dyanmo查询

  •  0
  • Robert  · 技术社区  · 7 年前

    考虑到dyanmo数据库中的这种模式,我们有很多疑问

    [
        {
            'TableName': "user_detail",
            'KeySchema': [
                {'AttributeName': "timestamp", 'KeyType': "HASH"},
                {'AttributeName': "question", 'KeyType': "RANGE"},
            ],
            'AttributeDefinitions': [
                {'AttributeName': "timestamp", 'AttributeType': "S"},
                {'AttributeName': "question", 'AttributeType': "N"},
            ],
            'ProvisionedThroughput': {
                'ReadCapacityUnits': 40,
                'WriteCapacityUnits': 40]            }
        }
    ]
    

    select count(question) from user_detail where question =1

    提前感谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   notionquest    7 年前

    我会抛出一些指针。DynamoDB有两种类型的API:-

    选项1:-

    1) 扫描API-将扫描整个表。当哈希键值未知时,应使用扫描api

    在您的情况下,哈希键值未知。因此,您不能使用查询API。然而,您可以使用扫描API,这在性能和成本方面是一个非常昂贵的操作。因此,如果你有一个包含数百万项的表,那么应该避免这种情况。

    另一种选择是创建 全球二级指数(GSI) question timestamp

    DynamoDB没有count、min和max等聚合函数。因此,您需要在客户端计算结果集中的项数。

    question - hash key
    timestamp - range key
    

    我见过许多用例使用 作为范围键。请分析您所有用例的查询访问模式(QAP),并做出相应的决定。