我应该如何更新 Amazon Timestream 中的记录字段?
How should I update a field of a record in Amazon Timestream?
我正在尝试更新 Timestream 记录中的字段,但它一直在插入新记录。
这是我的代码:
$dimensions= [];
$dimensions[] = [
'Dimensions' => [
[
'DimensionValueType' => 'VARCHAR',
'Name' => 'id',
'Value' => '123456',
],
[
'DimensionValueType' => 'VARCHAR',
'Name' => 'remark',
'Value' => 'Remark test text',
],
],
];
$query = [
'CommonAttributes' => [
'MeasureName' => 'table_cnt',
'MeasureValue' => 'table_cnt',
'MeasureValueType' => 'VARCHAR',
'Time' => '1651501311000',
'TimeUnit' => 'MILLISECONDS',
'Version' => 1,
],
'DatabaseName' => 'mydb',
'Records' => $dimensions,
'TableName' => 'table',
];
$db->WriteRecords($query);
现在在这里我如何尝试更新插入上面插入的相同记录:
$dimensions= [];
$dimensions[] = [
'Dimensions' => [
[
'DimensionValueType' => 'VARCHAR',
'Name' => 'id',
'Value' => '123456',
],
[
'DimensionValueType' => 'VARCHAR',
'Name' => 'remark',
'Value' => 'New Remark test text', // new text
],
],
];
$query = [
'CommonAttributes' => [
'MeasureName' => 'table_cnt',
'MeasureValue' => 'table_cnt',
'MeasureValueType' => 'VARCHAR',
'Time' => '1651501311000', // same time
'TimeUnit' => 'MILLISECONDS',
'Version' => 2, // changed to version 2 when upserting
],
'DatabaseName' => 'mydb',
'Records' => $dimensions,
'TableName' => 'table',
];
$db->WriteRecords($query);
我不明白我在这里做错了什么,而且缺少文档和示例使得查找起来更加困难!
感谢您的任何建议!
在Timestream中,维度和时间是upserting的“关键”。如果您有不同的维度,它将插入具有新维度的新记录。
仅当所有维度和时间完全相同时才使用版本字段。然后,将使用新值更新度量。
您可以在这里找到更好的信息:https://docs.aws.amazon.com/timestream/latest/developerguide/data-modeling.html#data-modeling-dimensionsmeasures,在“选择维度”下,第一个要点。
我正在尝试更新 Timestream 记录中的字段,但它一直在插入新记录。 这是我的代码:
$dimensions= [];
$dimensions[] = [
'Dimensions' => [
[
'DimensionValueType' => 'VARCHAR',
'Name' => 'id',
'Value' => '123456',
],
[
'DimensionValueType' => 'VARCHAR',
'Name' => 'remark',
'Value' => 'Remark test text',
],
],
];
$query = [
'CommonAttributes' => [
'MeasureName' => 'table_cnt',
'MeasureValue' => 'table_cnt',
'MeasureValueType' => 'VARCHAR',
'Time' => '1651501311000',
'TimeUnit' => 'MILLISECONDS',
'Version' => 1,
],
'DatabaseName' => 'mydb',
'Records' => $dimensions,
'TableName' => 'table',
];
$db->WriteRecords($query);
现在在这里我如何尝试更新插入上面插入的相同记录:
$dimensions= [];
$dimensions[] = [
'Dimensions' => [
[
'DimensionValueType' => 'VARCHAR',
'Name' => 'id',
'Value' => '123456',
],
[
'DimensionValueType' => 'VARCHAR',
'Name' => 'remark',
'Value' => 'New Remark test text', // new text
],
],
];
$query = [
'CommonAttributes' => [
'MeasureName' => 'table_cnt',
'MeasureValue' => 'table_cnt',
'MeasureValueType' => 'VARCHAR',
'Time' => '1651501311000', // same time
'TimeUnit' => 'MILLISECONDS',
'Version' => 2, // changed to version 2 when upserting
],
'DatabaseName' => 'mydb',
'Records' => $dimensions,
'TableName' => 'table',
];
$db->WriteRecords($query);
我不明白我在这里做错了什么,而且缺少文档和示例使得查找起来更加困难! 感谢您的任何建议!
在Timestream中,维度和时间是upserting的“关键”。如果您有不同的维度,它将插入具有新维度的新记录。 仅当所有维度和时间完全相同时才使用版本字段。然后,将使用新值更新度量。 您可以在这里找到更好的信息:https://docs.aws.amazon.com/timestream/latest/developerguide/data-modeling.html#data-modeling-dimensionsmeasures,在“选择维度”下,第一个要点。