

Amazon Timestream for LiveAnalytics와 유사한 기능을 원하는 경우 Amazon Timestream for InfluxDB를 고려해 보세요. 간소화된 데이터 수집과 실시간 분석을 위한 10밀리초 미만의 쿼리 응답 시간을 제공합니다. [여기](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)에서 자세히 알아보세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Timestream for LiveAnalytics의 UNLOAD 사용 사례 예제
<a name="export-unload-example-use-case"></a>

전자상거래 웹사이트의 사용자 세션 지표, 트래픽 소스 및 제품 구매를 모니터링하고 있다고 가정해 보겠습니다. Timestream for 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 Data Catalog 구축](#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://bucket_name/<queryid>_<UUID>_manifest.json`인 제공된 S3 버킷에 있습니다. 매니페스트 파일에는 결과 폴더 내 파일의 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" 
  }
}
```

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

메타데이터 파일은 데이터세트에 대한 열 이름, 열 유형, 스키마 등의 추가 정보를 제공합니다. 메타데이터 파일은 파일 이름이 S3://bucket\$1name/<queryid>\$1<UUID>\$1metadata.json인 제공된 S3 버킷에서 사용할 수 있습니다.

다음은 메타데이터 파일의 예제입니다.

```
{
    "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" 
  }
}
```

메타데이터 파일에 공유된 열 정보는 `SELECT` 쿼리에 대한 쿼리 API 응답에서 전송되는 `ColumnInfo`와 동일한 구조를 가집니다.

## Glue 크롤러를 사용하여 Glue Data Catalog 구축
<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 폴더는 `s3://my_timestream_unloads/results`와 같은 `UNLOAD` 결과 폴더여야 합니다.

1. [여기](https://docs.aws.amazon.com/glue/latest/ug/tutorial-add-crawler.html#tutorial-add-crawler-step2)의 지침에 따라 크롤러를 실행합니다.

1. Glue 테이블을 봅니다.
   + **AWS Glue** → **테이블**로 이동합니다.
   + 크롤러를 생성하는 동안 제공된 테이블 접두사로 생성된 새 테이블이 표시됩니다.
   + 테이블 세부 정보 보기를 클릭하여 스키마 및 파티션 정보를 볼 수 있습니다.

다음은 Glue 데이터 카탈로그를 AWS 사용하는 다른 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)을 참조하세요.
+ **Amazon EMR** - 자세한 내용은 [Amazon EMR 관리 안내서의 AWS Glue 데이터 카탈로그에 대한 Amazon EMR 액세스에 리소스 기반 정책 사용을](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html) 참조하세요.
+ **AWS Apache Hive 메타스토어용 Glue 데이터 카탈로그 클라이언트** -이 GitHub 프로젝트에 대한 자세한 내용은 [AWS Apache Hive 메타스토어용 Glue 데이터 카탈로그 클라이언트](https://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore)를 참조하세요.