适用于 LiveAnalytics 的 Timestream 中 UNLOAD 使用案例示例 - Amazon Timestream
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

有关与适用于 LiveAnalytics 的 Amazon Timestream 类似的功能,可以考虑使用适用于 InfluxDB 的 Amazon Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。

适用于 LiveAnalytics 的 Timestream 中 UNLOAD 使用案例示例

假设您正在监控电子商务网站的用户会话指标、流量来源以及产品购买情况。您正在使用适用于 LiveAnalytics 的 Timestream,以获取有关用户行为、产品销售的实时见解,并对吸引客户访问网站的流量通道(自然搜索、社交媒体、直接访问、付费推广等)进行营销分析。

导出不带任何分区的数据

您希望以 CSV 格式导出过去两天的数据。

UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, query, quantity, product_id, channel FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/withoutpartition' WITH ( format='CSV', compression='GZIP')

按通道对数据进行分区

您希望以 CSV 格式导出过去两天的数据,但想要将每个流量通道的数据放在单独的文件夹中。为此,您需要使用 channel 列对数据进行分区,如下所示。

UNLOAD(SELECT user_id, ip_address, event, session_id, measure_name, time, query, quantity, product_id, channel FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbychannel/' WITH ( partitioned_by = ARRAY ['channel'], format='CSV', compression='GZIP')

按事件对数据进行分区

您希望以 CSV 格式导出过去两天的数据,但想要将每个事件的数据放在单独的文件夹中。为此,您需要使用 event 列对数据进行分区,如下所示。

UNLOAD(SELECT user_id, ip_address, channel, session_id, measure_name, time, query, quantity, product_id, event FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbyevent/' WITH ( partitioned_by = ARRAY ['event'], format='CSV', compression='GZIP')

按通道和事件对数据进行分区

您希望以 CSV 格式导出过去两天的数据,但想要将每个通道的数据以及通道内每个文件放在单独的文件夹中。为此,您需要使用 channelevent 列对数据进行分区,如下所示。

UNLOAD(SELECT user_id, ip_address, session_id, measure_name, time, query, quantity, product_id, channel,event FROM sample_clickstream.sample_shopping WHERE time BETWEEN ago(2d) AND now()) TO 's3://<bucket_name>/partitionbychannelevent/' WITH ( partitioned_by = ARRAY ['channel','event'], format='CSV', compression='GZIP')

清单和元数据文件

清单文件

清单文件提供有关执行 UNLOAD 时导出的文件列表信息。清单文件可在提供的 S3 存储桶中找到,文件名为:S3://bucket_name/<queryid>_<UUID>_manifest.json。清单文件将包含结果文件夹中文件的 URL、相应文件的记录数和大小,以及查询元数据(即该查询导出至 S3 的总字节数和总行数)。

{ "result_files": [ { "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", "file_metadata": { "content_length_in_bytes": 32295, "row_count": 10 } }, { "url":"s3://my_timestream_unloads/ec2_metrics/AEDAGANLHLBH4OLISD3CVOZZRWPX5GV2XCXRBKCVD554N6GWPWWXBP7LSG74V2Q_1448466917_szCL4YgVYzGXj2lS.gz", "file_metadata": { "content_length_in_bytes": 62295, "row_count": 20 } }, ], "query_metadata": { "content_length_in_bytes": 94590, "total_row_count": 30, "result_format": "CSV", "result_version": "Amazon Timestream version 1.0.0" }, "author": { "name": "Amazon Timestream", "manifest_file_version": "1.0" } }

元数据

元数据文件提供有关数据集的其他信息,例如列名、列类型及架构。元数据文件位于提供的 S3 存储桶中,文件名为:S3://bucket_name/<queryid>_<UUID>_metadata.json

以下是元数据文件的示例。

{ "ColumnInfo": [ { "Name": "hostname", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "region", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "measure_name", "Type": { "ScalarType": "VARCHAR" } }, { "Name": "cpu_utilization", "Type": { "TimeSeriesMeasureValueColumnInfo": { "Type": { "ScalarType": "DOUBLE" } } } } ], "Author": { "Name": "Amazon Timestream", "MetadataFileVersion": "1.0" } }

元数据文件中共享的列信息与查询 API 响应中针对 SELECT 查询发送的 ColumnInfo 具有相同结构。

使用 Glue 爬网程序构建 Glue 数据目录

  1. 使用管理员凭证登录您的账户,以进行后续验证。

  2. 使用此处提供的指南,为 Glue 数据库创建爬网程序。请注意,要在数据源中提供的 S3 文件夹应为 UNLOAD 结果文件夹,例如 s3://my_timestream_unloads/results

  3. 按照此处的指南运行爬网程序。

  4. 查看 Glue 表。

    • 转到 Amazon Glue

    • 创建爬网程序时,您将看到使用表前缀创建的新表。

    • 您可以通过点击表详情视图查看架构和分区信息。

以下是其他 Amazon 服务和使用 Amazon Glue 数据目录的开源项目。