Table Kusto/ADX 个集群之间的编码策略差异
Table Encoding Policy difference between Kusto/ADX clusters
我在 2 个不同的 ADX/Kusto 集群中有完全相同的 table -- data/schema 是相同的,但如果我计算 1 天数据的 ExtentSize,则两者之间的差异是巨大的。集群上的 table 有 10TB,而另一个集群上的 table 有 15TB。这是一个很大的不同。当我检查 table 上的编码策略时,略有不同。第一个集群上的 table 具有以下编码策略:-
"ColumnIndexRangeGranularity": 0,
"ShardFieldCompressionCodec": "DEFAULT",
而另一个集群上的 table 具有以下内容:-
"ColumnIndexRangeGranularity": 32,
"ShardFieldCompressionCodec": "LZ4",
我的目标是将其他 table 的大小降低到与第一个 table 相同的大小,这样我就可以使用较少的缓存策略。所以理想情况下,我想更改这两个参数。但是当我执行以下命令时,它对 table:-
的编码策略没有影响
.alter table MyTable policy encoding @'{ "ShardFieldCompressionCodec": "Default" }'
也没有错误。
所以我有两个问题。
- 每当我们尝试更改的编码策略时,ADX 是否会简单地忽略
table?这些编码策略我们没有明确设置,当
table 已创建 这些默认情况下由集群分配。
- 这是否意味着如果我们在 2 个不同的集群中具有相同的 table
具有相同的 schema/table -- 它们的范围大小将始终
不同(因为底层 table 压缩不同)?
可以在不同的实体上设置编码策略:
- 列 - 仅影响策略更改后提取到列的数据。
- table - 仅影响政策更改后将添加到 table 的列。
- 数据库 – 仅影响策略更改后将在数据库中创建的 tables。
看来您感兴趣的是更改 列 级别策略,而不是 table 级别政策。不过,您应该明白,这不会更改已摄取数据的编码。
我在 2 个不同的 ADX/Kusto 集群中有完全相同的 table -- data/schema 是相同的,但如果我计算 1 天数据的 ExtentSize,则两者之间的差异是巨大的。集群上的 table 有 10TB,而另一个集群上的 table 有 15TB。这是一个很大的不同。当我检查 table 上的编码策略时,略有不同。第一个集群上的 table 具有以下编码策略:-
"ColumnIndexRangeGranularity": 0,
"ShardFieldCompressionCodec": "DEFAULT",
而另一个集群上的 table 具有以下内容:-
"ColumnIndexRangeGranularity": 32,
"ShardFieldCompressionCodec": "LZ4",
我的目标是将其他 table 的大小降低到与第一个 table 相同的大小,这样我就可以使用较少的缓存策略。所以理想情况下,我想更改这两个参数。但是当我执行以下命令时,它对 table:-
的编码策略没有影响.alter table MyTable policy encoding @'{ "ShardFieldCompressionCodec": "Default" }'
也没有错误。
所以我有两个问题。
- 每当我们尝试更改的编码策略时,ADX 是否会简单地忽略 table?这些编码策略我们没有明确设置,当 table 已创建 这些默认情况下由集群分配。
- 这是否意味着如果我们在 2 个不同的集群中具有相同的 table 具有相同的 schema/table -- 它们的范围大小将始终 不同(因为底层 table 压缩不同)?
可以在不同的实体上设置编码策略:
- 列 - 仅影响策略更改后提取到列的数据。
- table - 仅影响政策更改后将添加到 table 的列。
- 数据库 – 仅影响策略更改后将在数据库中创建的 tables。
看来您感兴趣的是更改 列 级别策略,而不是 table 级别政策。不过,您应该明白,这不会更改已摄取数据的编码。