有没有办法在 Kusto 中克隆 table?

Is there a way to clone a table in Kusto?

有没有办法在 Kusto 中准确地克隆 table,使其具有原始 table 的所有范围?即使不可能保留范围,至少有一种高效的方法可以将 table 复制到新的 table。我尝试了以下操作:-

.set new_table <| existing_table;

一直 运行 并且出现超时错误。有没有办法进行复制,以便 Kusto 引擎识别出这只是一个转储副本,而不是使用 Kusto 引擎,它只会从后端执行一个简单的 blob 复制,只需将新的 table 指向复制的 blob从而绕过整个 Kusto 处理路线?

1. 可以使用您提到的命令将一个 table 的架构和数据复制到另一个(复制数据的另一个选项是 export its content into cloud storage, then ingest the result storage artifacts using Kusto's ingestion API or a tool that uses it, e.g. LightIngest or ADF)

当然,如果源 table 有很多数据,那么你会想把这个命令分成多个,每个处理源数据的一个子集(你可以 'partition',例如,按时间)。

下面只是一个例子(这显然取决于你在源中有多少数据table):

.set-or-append [async] new_table <| existing_table | where ingestion_time() > X and ingestion_time() < X + 1h

.set-or-append [async] new_table <| existing_table | where ingestion_time() >= X+1h and ingestion_time() < X + 2h

...

请注意,async 是可选的,用于避免潜在的客户端超时(默认为 10 分钟后)。该命令本身在后端继续 运行 长达 60 分钟的不可配置超时(尽管强烈建议避免这种长时间的 运行ning 命令,例如通过执行 "partitioning" 上面提到过)。

2. 你的另一个问题:没有选项可以在 table 秒之间复制数据而不重新摄取数据(范围/数据分片目前可以' t 属于超过 1 table).

3. 如果您需要 "duplicate" 数据被摄入 table T1 连续进入 table T2,以及 T1 和 T2在同一个数据库中,您可以使用 update policy.

来实现