将导出的数据存储在 Amazon S3 中 - Amazon Monitron

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将导出的数据存储在 Amazon S3 中

使用预定义的 CloudFormation模板

Amazon Monitron 提供了一个预定义的AWS CloudFormation模板,可帮助快速设置 Firehose,将数据从 Kinesis 数据流传输到 Amazon S3 存储桶。该模板支持动态分区,并且传输的 Amazon S3 对象将使用 Amazon Monitron 推荐的以下键格式:/project={projectName}/site={siteName}/time={yyyy-mm-dd 00:00:00}/{filename}

  1. 登录您的 AWS 账户。

  2. 使用以下 URL 打开一个新的浏览器标签页:

    https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/review?templateURL=https://s3.us-east-1.amazonaws.com/monitron-cloudformation-templates-us-east-1/monitron_kinesis_data_export.yaml&stackName=monitron-kinesis-live-data-export
  3. 在打开的 AWS CloudFormation 页面的右上角,选择您要使用 Amazon Monitron 的区域。

  4. 默认情况下,该模板将创建新的 Kinesis 数据流和 S3 桶,并创建将数据传输到 Amazon S3 所需的其他资源。您可以更改参数以使用现有资源。

  5. 勾选‭我确认 AWS CloudFormation 可能会创建 IAM 资源框。

  6. 选择创建堆栈

  7. 在下一页上,按照任意频率单击刷新图标,直到堆栈的状态变为“CREATE_COMPLETE”为止。

在控制台中手动配置 Kinesis

  1. 登录 AWS 管理控制台并打开 Kinesis 控制台,网址为 https://console.aws.amazon.com/kinesis。

  2. 在导航窗格中,选择传输流

  3. 选择创建传输流

  4. 对于“源”,选择 Amazon Kinesis Data Streams

  5. 对于“目标”,选择 Amazon S3

  6. 源设置、Kinesis 数据流下,输入 Kinesis 数据流的 ARN。

  7. 传输流名称下,输入 Kinesis 数据流的名称。

  8. 目标设置下,选择一个 Amazon S3 桶或输入一个桶 URI。

  9. (可选)启用使用 JSON 内联解析的动态分区。如果您想基于源信息和时间戳对流测量数据进行分区,则可以选择此选项。例如:

    • 针对动态分区选择启用

    • 针对换行分隔符选择启用

    • 针对 JSON 内联解析选择启用

    • 动态分区键下,添加:

      键名称 JQ 表达式

      项目

      。 projectDisplayName| “project=\ (.)”

      site

      。 siteDisplayName| “site=\ (.)”

      time

      .timestamp| sub("[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}$"; "00:00:00")| "time=\(.)"

  10. 选择应用动态分区键并确认生成的 Amazon S3 桶前缀为 !{partitionKeyFromQuery:project}/!{partitionKeyFromQuery:site}/!{partitionKeyFromQuery:time}/

  11. 在 Amazon S3 中,对象将使用以下键格式:/project={projectName}/site={siteName}/time={yyyy-mm-dd 00:00:00}/{filename}

  12. 选择创建传输流

  13. (可选)使用更精细的路径。

    如果您选择了一个动态分区,并打算使用 AWS Glue 和 Athena 来查询数据,请使用前面的 Amazon S3 键格式。您也可以选择更精细的键格式,但 Amazon Athena 查询的效率会降低。以下是设置更精细的 Amazon S3 键路径的示例。

    动态分区键下,添加:

    键名称 JQ 表达式

    项目

    。 projectDisplayName| “project=\ (.)”

    site

    。 siteDisplayName| “site=\ (.)”

    asset

    。 assetDisplayName| “asset=\ (.)”

    position

    。 sensorPositionDisplay名称| “位置=\ (.)”

    sensor

    .sensor.physicalId | "sensor=\(.)"

    date

    .timestamp| sub(" [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}$"; "")| "date=\(.)"

    在 Amazon S3 中,对象将使用以下键格式: /project={projectName}/site={siteName}/asset={assetName}/position={positionName}/sensor={sensorId}/date={yyyy-mm-dd}/time={HH:MM:SS}/{filename}