我想要做的是使用这个查询创建一个工作:
SQL查询:
SELECT execution_id, top_level_execution_id, process_id, atom_id, message, node_id, pay_load, environment_name, status, date_created, custom_message, dynamic_field1, dynamic_field2, dynamic_field3, RecordID FROM [boomi.process_errors]
之后,使用生成的 ID 运行作业并获取结果。
用于创建作业的 JSON:
{
"configuration":{
"query":{
"defaultDataset":{
"datasetId":"XXX",
"projectId":"XXX",
"tableId":"process_errors"
},
"query":"SELECT execution_id, top_level_execution_id, process_id, atom_id, message, node_id, pay_load, environment_name, status, date_created, custom_message, dynamic_field1, dynamic_field2, dynamic_field3, RecordID FROM [boomi.process_errors]"
}
}
}
样本返回记录:
{
"execution_id":"execution-c5723421-0fd9-47e3-9241-3520dfebf21d-2021.02.08",
"top_level_execution_id":"execution-c5723421-0fd9-47e3-9241-3520dfebf21d-2021.02.08",
"process_id":"b8fb913d-26da-40bc-bce4-11bf65db03db",
"atom_id":"eae5dcd2-af12-4c99-805e-12ae5bc5a5c5",
"message":"Error Messae\n",
"node_id":"atom01",
"pay_load":"TBD",
"environment_name":"TEST",
"status":"ERROR",
"date_created":"1.612789722974E9",
"custom_message":"Error hapened in Process",
"dynamic_field1":"abc123",
"dynamic_field2":"bca123",
"dynamic_field3":"abc321",
"RecordID":null
}
如您所见,日期为 FLOAT64:1.612789722974E9。当我尝试从 bigQuery 控制台将日期格式化为时间戳时,它已经以时间戳的形式出现:2021-02-08 13:08:42.974 UTC。
我试图做的是改用这个查询:
SELECT execution_id, top_level_execution_id, process_id, atom_id, message, node_id, pay_load, environment_name, status, CONCAT(DATE(USEC_TO_TIMESTAMP(CAST(date_created AS INTEGER))), 'T', TIME(USEC_TO_TIMESTAMP(CAST(date_created AS INTEGER)))) as date_created, custom_message, dynamic_field1, dynamic_field2, dynamic_field3, RecordID FROM [boomi.process_errors]
这会给我日期和时间,但不是毫秒。我认为时间也返回毫秒。尝试使用 bigQuery 库中的各种函数,但它们都不适用于 float64。
顺便说一句,我使用 Dell Boomi 作为中间件层来创建作业、检索作业 ID 并运行它。我需要根据从该表中选择的内容自动创建报告,这就是为什么我需要日期时间,包括毫秒。
我认为您可以在用于创建作业的配置中添加一些内容,以便以正常时间戳格式返回日期,但同样,什么也没找到。