

要获得与亚马逊 Timestream 类似的功能 LiveAnalytics，可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间，以实现实时分析。点击[此处](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)了解更多信息。

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

# 从 Timestream 卸载的示例用例 LiveAnalytics
<a name="export-unload-example-use-case"></a>

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

**Topics**
+ [导出不带任何分区的数据](#export-unload-example-sample-1)
+ [按通道对数据进行分区](#export-unload-example-sample-2)
+ [按事件对数据进行分区](#export-unload-example-sample-3)
+ [按通道和事件对数据进行分区](#export-unload-example-sample-4)
+ [清单和元数据文件](#export-unload-example-manifest-metadata)
+ [使用 Glue 爬网程序构建 Glue 数据目录](#export-unload-example-using-glue-crawlers)

## 导出不带任何分区的数据
<a name="export-unload-example-sample-1"></a>

您希望以 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')
```

## 按通道对数据进行分区
<a name="export-unload-example-sample-2"></a>

您希望以 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')
```

## 按事件对数据进行分区
<a name="export-unload-example-sample-3"></a>

您希望以 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')
```

## 按通道和事件对数据进行分区
<a name="export-unload-example-sample-4"></a>

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

```
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')
```

## 清单和元数据文件
<a name="export-unload-example-manifest-metadata"></a>

### 清单文件
<a name="export-unload-common-questions-what-information-manifest"></a>

清单文件提供有关执行 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" 
  }
}
```

### 元数据
<a name="export-unload-common-questions-what-information-metadata"></a>

元数据文件提供有关数据集的其他信息，例如列名、列类型及架构。元数据文件位于提供的 S3 存储桶中，文件名为：S3://bucket\$1name/<queryid>\$1<UUID>\$1metadata.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 数据目录
<a name="export-unload-example-using-glue-crawlers"></a>

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

1. 使用[此处](https://docs.aws.amazon.com/glue/latest/ug/tutorial-add-crawler.html)提供的指南，为 Glue 数据库创建爬网程序。请注意，要在数据源中提供的 S3 文件夹应为 `UNLOAD` 结果文件夹，例如 `s3://my_timestream_unloads/results`。

1. 按照[此处](https://docs.aws.amazon.com/glue/latest/ug/tutorial-add-crawler.html#tutorial-add-crawler-step2)的指南运行爬网程序。

1. 查看 Glue 表。
   + 转到 **AWS Glue** → **表**。
   + 创建爬网程序时，您将看到使用表前缀创建的新表。
   + 您可以通过点击表详情视图查看架构和分区信息。

以下是使用 AWS Glue 数据目录的其他 AWS 服务和开源项目。
+ **Amazon Athena**：有关更多信息，请参阅《Amazon Athena 用户指南》中的[了解表、数据库和数据目录](https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html)。
+ **Amazon Redshift Spectrum**：有关更多信息，请参阅《Amazon Redshift 数据库开发人员指南》中的[使用 Amazon Redshift Spectrum 查询外部数据](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html)。
+ **亚马逊 EMR** — 有关更多信息，请参阅《亚马逊 EMR 管理指南》中的 “[使用基于资源的策略，让 Amazon EMR 访问 Glue 数据目录”](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html)。 AWS 
+ **AWS 适用于 Apache Hive 元数据仓的 Glue 数据目录客户端 — 有关此 GitHub项目的更多信息，请参阅 Apache Hive Metastor** [e 的AWS Glue 数据目录客户端](https://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore)。