查看热缓存中数据实际占用大小的可靠方法
Reliable method to check actual size occupied by data in hot cache
我有一个 table,上面有 1 天的热缓存策略。并假设 ADX 集群的缓存利用率低于 80%。考虑到这一点,什么是准确知道 table 实际占用的缓存量 space (TB) 的可靠方法?我想出了以下两种方法,但它们都 return 明显不同的数字:-
.show table <TableName> extents hot | summarize sum(ExtentSize)/pow(1024,4)
.show table <TableName> extents | where MaxCreatedOn >= ago(1d) | summarize extent_size=sum(ExtentSize) | project size_in_TB=((extent_size)/pow(1024,4))
第二个命令 returns 计数比第一个命令高 10 倍以上。怎么会这么不一样?
你 运行 的两个命令应该产生相同的值,假设:
- 你运行他们同时(或快速一个接一个)
- 有效 缓存策略确实是 1 天(您确认确实如此吗?)
无论如何 - 获取该数据点的最有效方法是使用以下命令:
.show table TABLENAME details
| project HotExtentSizeTb = HotExtentSize/exp2(40), CachingPolicy
这是我的 table 的示例,它的缓存策略为 4 天(设置为 table 级别),保留策略的软删除期限为 3650 天:
// option 1
// --------
.show table yonis_table extents hot
| summarize HotExtentSizeTb = sum(ExtentSize)/exp2(40)
// returns: HotExtentSizeTb: 0.723723856871402 <---
// option 2: least efficient
// -------------------------
.show table yonis_table extents
| where MaxCreatedOn >= ago(4d)
| summarize HotExtentSizeTb = sum(ExtentSize)/exp2(40)
// returns: HotExtentSizeTb: 0.723723856871402 <---
// option 3: most efficient
// ------------------------
.show table yonis_table details
| project HotExtentSizeTb = HotExtentSize/exp2(40), CachingPolicy, RetentionPolicy
// returns:
HotExtentSizeTb: 0.723723856871402, <---
CachingPolicy: {
"DataHotSpan": "4.00:00:00"
},
RetentionPolicy: {
"SoftDeletePeriod": "3650.00:00:00",
"Recoverability": "Enabled"
}
我有一个 table,上面有 1 天的热缓存策略。并假设 ADX 集群的缓存利用率低于 80%。考虑到这一点,什么是准确知道 table 实际占用的缓存量 space (TB) 的可靠方法?我想出了以下两种方法,但它们都 return 明显不同的数字:-
.show table <TableName> extents hot | summarize sum(ExtentSize)/pow(1024,4)
.show table <TableName> extents | where MaxCreatedOn >= ago(1d) | summarize extent_size=sum(ExtentSize) | project size_in_TB=((extent_size)/pow(1024,4))
第二个命令 returns 计数比第一个命令高 10 倍以上。怎么会这么不一样?
你 运行 的两个命令应该产生相同的值,假设:
- 你运行他们同时(或快速一个接一个)
- 有效 缓存策略确实是 1 天(您确认确实如此吗?)
无论如何 - 获取该数据点的最有效方法是使用以下命令:
.show table TABLENAME details
| project HotExtentSizeTb = HotExtentSize/exp2(40), CachingPolicy
这是我的 table 的示例,它的缓存策略为 4 天(设置为 table 级别),保留策略的软删除期限为 3650 天:
// option 1
// --------
.show table yonis_table extents hot
| summarize HotExtentSizeTb = sum(ExtentSize)/exp2(40)
// returns: HotExtentSizeTb: 0.723723856871402 <---
// option 2: least efficient
// -------------------------
.show table yonis_table extents
| where MaxCreatedOn >= ago(4d)
| summarize HotExtentSizeTb = sum(ExtentSize)/exp2(40)
// returns: HotExtentSizeTb: 0.723723856871402 <---
// option 3: most efficient
// ------------------------
.show table yonis_table details
| project HotExtentSizeTb = HotExtentSize/exp2(40), CachingPolicy, RetentionPolicy
// returns:
HotExtentSizeTb: 0.723723856871402, <---
CachingPolicy: {
"DataHotSpan": "4.00:00:00"
},
RetentionPolicy: {
"SoftDeletePeriod": "3650.00:00:00",
"Recoverability": "Enabled"
}