如何在Azure Data Explorer表中写入永久持久化数据?
解决Azure Data Explorer手动插入永久留存数据的问题
嗨,我完全懂你的需求——就是想直接给已经创建好的MyCows表手动插入几条固定记录,让数据永久保存在集群里,不用每次登录都重新跑查询,也不需要从外部文件摄入数据对吧?
你之前用let的方式之所以没效果,是因为let定义的只是临时数据集,只会在当前查询会话中生效,根本不会写入到实际的物理表中,会话结束就没了,这肯定不是你想要的。而ingest命令确实主要用于批量导入外部文件/存储里的数据,对你这种少量手动输入的场景来说大材小用了。
其实用Kusto的.set-or-append命令就能完美解决你的问题,它可以直接把你构造的小批量数据写入已有的表,而且数据会永久留存。具体命令如下:
.set-or-append MyCows <| datatable(CowName:string, CowType:string) [ "Bill", "Vanilla", "Bela", "Rum", "Clark", "Smooth", "Randy", "Chocolate" ]
简单解释下这个命令:
.set-or-append:这个命令会自动检查表结构和你定义的datatable结构是否匹配(字段名、数据类型都要对应),如果匹配就把数据追加到表中;如果表目前是空的,效果就和首次插入一样。相比.set命令(会覆盖表中已有数据),.set-or-append更安全,避免误删已有数据。datatable(...):用来临时构造你要插入的4条记录,字段类型要和MyCows表的定义完全一致。
运行完这个命令后,你可以执行MyCows或者MyCows | count来验证数据是否已经成功写入,而且下次登录集群时,这些数据依然会保存在表中,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

