我应该如何更新 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,在“选择维度”下,第一个要点。