如何在同一Kusto群集上的不同数据库的2个表之间计划数据移动

时间:2019-05-02 02:23:22

标签: kusto azure-data-explorer

是否存在任何一种自动(计划的)方式来在同一Kusto群集上属于不同数据库的两个表之间定期移动数据? “连续数据导出”功能不适用于不同的数据库。一个人可以通过Azure数据工厂以某种方式对其进行编排,但这听起来像是一个过大的杀伤力。在Kusto级别上没有什么东西可以安排这种数据移动吗?如果连续数据导出不受不跨数据库工作的限制,那么听起来非常理想。

2 个答案:

答案 0 :(得分:1)

您可以运行.set-or-append命令,其中命令的查询部分是跨数据库查询,以便在不同数据库中的表之间复制数据(原始或已处理)(然后将数据删除到源表中) ,如果不再需要,如您提到的那样,目的是move而不是copy

可以对集群发出控制命令(例如.set-or-append)的任何调度程序/协调器都是有效的选项。一种流行的Microsoft Flow:https://docs.microsoft.com/en-us/azure/kusto/tools/flow

答案 1 :(得分:1)

严格来说,ADX中没有此类功能。

但是,使用您喜欢的调度程序(例如Azure Schedular)或简单地使用Azure Timed Functions进行设置很容易。

从某种意义上讲,Azure功能更易于使用,因为它们非常易于设置(并提供对ADX群集资源的访问)。

完成后,您可以:

  1. 使用.set-or-append作为Yoni的建议(来自docs):
.set-or-append async ArchiveTable <| 
   LiveTable 
   | where CreatedOn < now() - time(30d) 

请注意async标志,以便您的函数在等待完成时不会阻塞。

您应该知道这是一项繁重的操作,可能需要花费一些时间来处理一张重表。

  1. 按照您的建议触发导出,并在导出位置上建立事件网格连接,以便ADX将数据重新分配到您的集群中。您可以read more about it here