首页 > 解决方案 > 在我的 Azure 表存储中设计 PartitionKey 和 RowKey

问题描述

我正在设计我的数据模型,它将使用 Azure 表存储作为数据库。我正在定义我的分区键和行键,根据良好的做法,我的分区键和行键应该设计得很好,以便查询我的数据库并在 Power Bi 等可视化工具中查询。

我得出的结论是,我的 PartitionKey 和 Rowkey 可以是我数据中几个不同列的组合。分区键 ( testclass|testid ) 和 RowKey 到 ( testname|testEndtime|testVoltage|index )。这里 testclass,testid,testname,testEndtime,testVoltage 是我现有表的列,索引将是行号(为了使其唯一)

我的问题:

如果我有上面定义的这样的 Rowkey,我如何查询。例如,如果我想在两个 testEndtime 值之间查询我的数据,我该如何使用 Rowkey?请记住,在像 Power bi 这样的可视化工具中,我们只有 3 列(PartitionKey、RowKey 和时间戳)来在服务器端查询和过滤我们的数据。(可以知道他们是否使用过 Azure 表存储)

我检查了一个示例,他们确实在 Power Bi 中进行了这样的查询

#"Filtered Rows" = Table.SelectRows(tablename, each ([PartitionKey] >= "XXXX" and [PartitionKey] <= "YYYYY" )),

有人吗??

标签: database-designazure-table-storage

解决方案


PowerBI不支持与 Azure 表存储的 DirectQuery/Live 连接。

这意味着,表存储中的数据缓存在 PowerBI 中,当您在报表上筛选数据时,直接从缓存而不是表中查询。因此,如果 PowerBI 是唯一使用表中数据的客户端,那么如何设计 PartitionKey 和 RowKey 并不是特别重要。

要访问表中的其他列并在视觉对象和过滤器中使用它们,请展开内容组。

在此处输入图像描述


推荐阅读