时间流客户端不接受TIMESTAMP作为度量值类型



我有一个简单的负载,我想使用AWS Lambda将其写入Timestream。由于某些原因,如果我尝试添加TIMESTAMP类型的度量值,它会被拒绝,并出现以下错误:

ERROR   RejectedRecords:  ValidationException: Invalid value 2022-10-03 06:55:38.175000000 for timestamp measure value type.
at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:52:27)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:686:14)
at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:688:12)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18) 

这是有效载荷本身:

{
"DatabaseName": "mydbname",
"TableName": "mytable",
"Records": [{
"MeasureName": "m",
"MeasureValueType": "MULTI",
"Time": "1665042286800",
"Dimensions": [{
"Name": "d",
"Value": "v"
}],
"MeasureValues": [{
"Name": "EventName",
"Value": "PhotoTaken",
"Type": "VARCHAR"
},
{
"Name": "EventDate",
"Value": "2022-10-03 06:55:38.175000000",
"Type": "TIMESTAMP"
}
]
}]
}

以下是编写它的javascript代码(相当标准(

let writeClient = new AWS.TimestreamWrite({ region: "us-west-2" });
const params = {
DatabaseName: databaseName,
TableName: tableName,
Records: records
};
return writeClient.writeRecords(params)

不确定它是否与我的数据保留设置有关,但如果有,我将其设置为1小时用于内存存储保留,1天用于磁性存储保留(目前这都是测试内容,所以我不需要保留太长时间(

您可以尝试将时间戳值从Date字符串转换为毫秒吗?例如:

"Value": "1664780157030"

而不是

"Value": "2022-10-03 06:55:38.175000000"

最新更新