【发布时间】:2020-12-03 16:49:56
【问题描述】:
希望有人能帮忙.. 我是 Kusto 的新手,必须从正常工作的 Azure Blob 存储帐户获取一个读取数据的外部表,但我拥有的一个表是独一无二的,因为时间戳列的数据被拆分为 2 个单独的列,即 LogDate 和 LogTime (见下面的脚本)。
我的数据存储在 Azure Storage 帐户容器中的以下结构中(例如,容器名为“employeedata”): {employeename}/{year}/{month}/{day}/{hour}/{minute}.csv,采用简单的 CSV 格式。
我知道 CSV 很好,因为如果我将它导入到普通的 Kusto 表中,它可以完美运行。
用于创建外部表的 KQL 脚本如下所示:
.create-or-alter external table EmpLogs (Employee: string, LogDate: datetime, LogTime:timestamp)
kind=blob
partition by (EmployeeName:string = Employee, yyyy:datetime = startofday(LogDate), MM:datetime = startofday(LogDate), dd:datetime = startofday(LogDate), HH:datetime = todatetime(LogTime), mm:datetime = todatetime(LogTime))
pathformat = (EmployeeName "/" datetime_pattern("yyyy", yyyy) "/" datetime_pattern("MM", MM) "/" datetime_pattern("dd", dd) "/" substring(HH, 0, 2) "/" substring(mm, 3, 2) ".csv")
dataformat=csv
(
h@'************************'
)
with (folder="EmployeeInfo", includeHeaders="All")
我不断收到以下错误,这不是很有帮助(从完全错误中编辑,基本上归结为某处存在语法错误):
语法错误:无法解析查询:{ “错误”: { "code": "BadRequest_SyntaxError", "message": "请求无效,无法执行。", "@type": "Kusto.Data.Exceptions.SyntaxException", "@message": "语法错误:无法解析查询:. 查询:'.create-or-alter external table ........
我知道todatetime() 函数适用于时间跨度,我用另一个表对其进行了测试,它创建了一个类似于以下内容的日期:0001-01-01 20:18:00.0000000。
我尝试在时间戳/LogTime 列上使用 bin() 函数,但出现与上述相同的错误,甚至尝试将时间值作为字符串导入并对其进行一些字符串操作,但没有运气。得到相同的语法错误。
任何帮助/指导将不胜感激。
谢谢!!
【问题讨论】:
标签: azure csv datetime timespan azure-data-explorer