database-design - 在我的 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" )),
有人吗??
解决方案
PowerBI不支持与 Azure 表存储的 DirectQuery/Live 连接。
这意味着,表存储中的数据缓存在 PowerBI 中,当您在报表上筛选数据时,直接从缓存而不是表中查询。因此,如果 PowerBI 是唯一使用表中数据的客户端,那么如何设计 PartitionKey 和 RowKey 并不是特别重要。
要访问表中的其他列并在视觉对象和过滤器中使用它们,请展开内容组。
推荐阅读
- codenameone - 使用代号一的文本输入期间的基本文本格式
- node.js - 使用 nodejs 将文件复制到 NFS NAS,读/写流包含在 promise 中
- android-studio - Android Studio 模拟器没有正确显示颜色
- mongodb - 尝试从 RedHAt Linux 运行 mongodb-compass 时找不到 libgtk-3.so.0
- linux - 在 LINUX/BASH 中另一个文件的特定行号处插入文件内容
- nativescript - 使用底部导航导航时会弹出 radautocomplete 菜单
- arrays - MongoDB客户端加入多个集合
- java - 如何以编程方式隐藏 Android 操作栏上的菜单?
- django - 弹性豆茎没有创建超级用户,语法无效
- visual-studio-code - VS Code Java 编程缺少“源操作”上下文菜单