标签: amazon-timestream

AWS TimeStream:超过一天的记录将被拒​​绝

我在AWS TimeStream中创建了一个数据库表,其内存保留期为7天:

保留

但是,当我尝试上传 3 天前的数据时,它将被拒绝。似乎只接受超过 24 小时的数据:

2020-10-26T13:43:33.244+01:00: Rejected a record: The record timestamp is outside the time range [2020-10-25T12:38:33.242Z, 2020-10-26T13:18:33.242Z) of the memory store.
Run Code Online (Sandbox Code Playgroud)

这是我所期望的,还是我缺少配置选项?

amazon-web-services amazon-timestream

9
推荐指数
1
解决办法
5861
查看次数

我可以从 Amazon Timestream 中删除记录吗?

在 Amazon Timestream 数据库上执行删除查询。

执行此查询时:

delete from "data-api-timestream-test"."test_table" 
Run Code Online (Sandbox Code Playgroud)

我收到错误:

The query syntax is invalid at line 1:1
Run Code Online (Sandbox Code Playgroud)

我可以从 Amazon Timestream 中删除记录吗?

amazon-web-services amazon-timestream

8
推荐指数
1
解决办法
7156
查看次数

时间流 - 每个维度的透视数据

TimeStream 使用键:值方法存储数据。

是否有任何简单的方法可以根据维度对数据进行透视以获取例如名为度量名称的列中所有可用度量的最大值?

让我们举个例子,使用以下数据集:

| time                              | instance_id   | measure_name          | measure_value::double     | measure_value::bigint     |
|-------------------------------    |-------------  |--------------------   |-----------------------    |-----------------------    |
| 2019-12-04 19:00:00.000000000     | A             | cpu_utilization       | 35                        | null                      |
| 2019-12-04 19:00:01.000000000     | A             | cpu_utilization       | 38.2                      | null                      |
| 2019-12-04 19:00:02.000000000     | B             | cpu_utilization       | 45.3                      | null                      |
| 2019-12-04 19:00:00.000000000     | A             | memory_utilization    | 54.9                      | null                      |
| 2019-12-04 19:00:01.000000000     | A             | memory_utilization    | 42.6                      | null …
Run Code Online (Sandbox Code Playgroud)

sql amazon-timestream

6
推荐指数
1
解决办法
163
查看次数

AWS Timestream:无法将记录提取到 AWS Timestream

众所周知,AWS Timestream 已于上周正式发布。

从那时起,我一直在尝试对它进行试验并了解它如何建模和存储数据。

我在将记录摄取到 Timestream 时遇到问题。我有一些日期为 2020 年 4 月 23 日的记录。在尝试将这些记录插入时间流表时,我收到 RecordRejected 错误。根据链接,如果记录具有相同的维度、时间戳或时间戳超出表的内存存储的保留期,则会拒绝记录。

我已将表的内存存储的保留期设置为 12 个月。根据文档:任何时间戳超过 12 个月的记录都将被拒绝。然而,尽管上面提到的记录在 12 个月内有时间戳,但还是被拒绝了。

在进一步调查中,我注意到,今天日期(2020 年 10 月 5 日)的记录被成功摄取,但是,日期为 30 天前的记录(即 2020 年 9 月 5 日)不会被摄取。为确保这一点,我还尝试插入日期为 9 月 6 日和今天日期和 9 月 5 日之间还有几天的记录。所有这些都已成功插入。

有人可以解释为什么我无法在内存存储的保留期内插入具有时间戳的记录吗?它只允许我插入最多 30 天的记录。我也想知道是否有一种方法可以将历史数据直接插入到磁存储中。内存存储保留期可能不足以满足我的用例,我可能需要插入 2 年或更长时间的数据。我知道这不是时间流的经典用例,但我仍然很想知道。

我被困在这个问题上,非常感谢一些帮助。

先感谢您。

amazon-web-services data-ingestion amazon-timestream

5
推荐指数
1
解决办法
1068
查看次数

如何将 InfluxDb 迁移到 Amazon Timestream?

我一直在尝试将我的 InfluxDb 迁移到 Amazon Timestream。由于它是一项新服务,我无法找到将 Influx 迁移到 Timestream 的确切文档。我发现 Telegraf 可用于将 InfluxDB 连接到 Timestream,但找不到太多有关迁移的信息。谁能分享一下迁移步骤吗?非常感谢任何文档。

database-migration amazon-web-services influxdb telegraf amazon-timestream

5
推荐指数
0
解决办法
684
查看次数

如何使用 Python 或 Java 将查询参数安全地合并到 AWS TimeStream 查询中?

AWS TimeStream 开发工具包的 SQL 查询接口仅接受查询字符串。看起来,构建查询字符串(包括 where 子句中的任何参数值等)完全由 SDK 用户完成,这在 Python 和 Java 等语言中并不常见。

有哪些解决方案可以安全地引用不受信任的输入值,以用作具有 AWS 开发工具包的语言(例如 Python 和 Java)中 SQL 查询的一部分?

python java sql validation amazon-timestream

5
推荐指数
0
解决办法
512
查看次数

有没有办法在 Timestream 中获取记录的版本?

为了按时间流更新插入记录,新记录的版本号应高于现有记录的版本号。但我一直无法找到获取现有记录版本的方法。AWS 控制台中未返回版本。以编程方式查询时也不会返回。

如何获取记录的当前版本?

amazon-web-services amazon-timestream

5
推荐指数
0
解决办法
832
查看次数

如何在AWS Timestream中使用时间戳

我有一个带有时间字段的表,我试图在 2 个时间戳之间进行选择,格式如下:

“2020-10-10 09:00:00.000000000”

我尝试过这里列出的一些功能,但没有成功。

编辑:数据就在那里,如图所示。但该示例显示使用 7 天前而不是传递时间戳。

在此输入图像描述

amazon-timestream

3
推荐指数
1
解决办法
5090
查看次数

如何查询IoT设备的总活跃时间?

我是 SQL 和 AWS Timestream 的新手,我想编写一个查询来获取设备处于活动状态的总时间。然后我想根据设备的千瓦时额定值将其转换为能源使用量。

数据点的时间间隔不是固定的。数据看起来像这样:

时间戳(秒) 活动(布尔值)
1617697080 (10点18分) 错误的
1617697920 (10点32分) 真的
1617698280 (10点38分) false(活跃 6 分钟)
1617699000 (10点50分) 真的
1617699120 (10点52分) false(活跃 2 分钟)
ETC。

上面的总活跃时间是8分钟。

我想提出的查询类型是这样的,

  • 上个月(或其他时期)的总活跃时间(能源使用量)
  • 上个月每天的总活跃时间(能源使用量)

什么样的查询会给我这个信息并且能够容忍可变的间隔?

我正在考虑但还没有完全弄清楚两条路,

  1. 对数据进行插值并填充值,以获得具有一致间隔的新时间流(然后就像计算值一样简单),或者
  2. 使用某些日期/时间函数查看数据点之间的时间戳并添加其活动的总时间。

我一直在尝试获取正确的查询来插入数据,但尚未成功。我正在遵循 AWS Timestream SQL 文档中的模式,但还不太理解它。

我什至不知道从哪里开始或在哪里寻找求和时间戳差异的示例。逻辑过程会是这样的,

if (this_point == true) then
    total_active_time += next_point_timestamp - this_point_timestamp
Run Code Online (Sandbox Code Playgroud)

可能的解决方案#1:插值

插值在一定范围内效果很好,尽管对于解决方案来说感觉有点矫枉过正。设备的开/关分辨率为 10 秒,因此如果插值采样时间太大,数据就会开始出现偏差。当插值时间序列超过 10k 点时,这会出现问题 - AWS Timestream 会抛出错误“序列函数的结果不得超过 10000 个条目”。因此,在短时间内,这是可行的,但如果我想计算出一个月内的能源使用情况,那么它永远不会成功(至少在 10 秒分辨率下不行)。使用 1m 分辨率可以提供足够好的精度来处理超过 6 天的时间。可以在不同的日期范围内多次使用此查询来获取数据。

WITH active_timeseries AS (
SELECT time, COUNT_IF(measure_value::boolean) AS Active …
Run Code Online (Sandbox Code Playgroud)

aws-iot amazon-timestream

2
推荐指数
1
解决办法
1382
查看次数

插入无服务器堆栈上的 Aws Timestream 时出现访问被拒绝错误

我正在尝试将记录插入到我的 aws 时间流表中。它的获取导致了访问被拒绝错误。

这是serverless.yml上的权限

    - Effect: Allow
      Action:
        - timestream:*
      Resource:
        - arn:aws:timestream:${self:provider.region}:*:database/*
        - arn:aws:timestream:${self:provider.region}:*:database/*/*/*
Run Code Online (Sandbox Code Playgroud)

我是 lambda 的角色详细信息。

{
            "Action": [
                "timestream:*"
            ],
            "Resource": [
                "arn:aws:timestream:us-east-1:*:database/*",
                "arn:aws:timestream:us-east-1:*:database/*/*/*"
            ],
            "Effect": "Allow"
        },

Run Code Online (Sandbox Code Playgroud)

记录样本

{
    "DatabaseName": "developmentreportsdb",
    "TableName": "developmenteventstable",
    "Records": [
        {
            "Dimensions": [
                {
                    "Name": "accountId",
                    "Value": "6921e43e-266c-4adf-8a69-d90bd8743d1b"
                },
                {
                    "Name": "userId",
                    "Value": "6921e43e-266c-4adf-8a69-d90bd8743d1b"
                }
            ],
            "MeasureName": "ACCOUNT.NEW",
            "MeasureValue": "6921e43e-266c-4adf-8a69-d90bd8743d1b",
            "MeasureValueType": "VARCHAR",
            "Time": "1644234263813",
            "TimeUnit": "MILLISECONDS",
            "Version": 1
        }
    ]
}

Run Code Online (Sandbox Code Playgroud)

错误详情:

Error writing records: AccessDeniedException: User: arn:aws:sts::344128203239:assumed-role/development-us-east-1-lambdaRole/development-worker is not authorized …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation serverless amazon-timestream

1
推荐指数
1
解决办法
1661
查看次数

我应该如何更新 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);
Run Code Online (Sandbox Code Playgroud)

现在我如何尝试更新插入上面插入的相同记录:

$dimensions= [];

$dimensions[] = [
 'Dimensions' …
Run Code Online (Sandbox Code Playgroud)

php amazon-web-services nosql amazon-timestream

1
推荐指数
1
解决办法
1431
查看次数