기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Timestream for LiveAnalytics의 UNLOAD 사용 사례 예제
전자 상거래 웹 사이트의 사용자 세션 지표, 트래픽 소스 및 제품 구매를 모니터링하고 있다고 가정합니다. Timestream for LiveAnalytics를 사용하여 사용자 행동, 제품 판매에 대한 실시간 인사이트를 도출하고 고객을 웹 사이트로 유도하는 트래픽 채널(유기 검색, 소셜 미디어, 다이렉트 트래픽, 유료 캠페인 등)에 대한 마케팅 분석을 수행합니다.
주제
파티션 없이 데이터 내보내기
데이터의 지난 2일을 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')
채널별 데이터 분할
지난 2일 동안의 데이터를 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')
이벤트별 데이터 분할
지난 2일 동안의 데이터를 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')
채널 및 이벤트별 데이터 분할
지난 2일 동안의 데이터를 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')
매니페스트 및 메타데이터 파일
매니페스트 파일
매니페스트 파일은 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://bucket_name/<queryid>_<UUID>_metadata.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 데이터 카탈로그 빌드
-
다음 검증을 위해 관리자 자격 증명으로 계정에 로그인합니다.
-
여기에 제공된 지침에 따라 Glue 데이터베이스용 크롤러를 생성합니다. 데이터 소스에 제공할 S3 폴더는와 같은
UNLOAD
결과 폴더여야 합니다s3://my_timestream_unloads/results
. -
여기 지침에 따라 크롤러를 실행합니다.
-
Glue 테이블을 봅니다.
-
AWS Glue → Tables로 이동합니다.
-
크롤러를 생성하는 동안 제공된 테이블 접두사로 생성된 새 테이블이 표시됩니다.
-
테이블 세부 정보 보기를 클릭하면 스키마 및 파티션 정보를 볼 수 있습니다.
-
다음은 Glue 데이터 카탈로그를 AWS 사용하는 다른 AWS 서비스 및 오픈 소스 프로젝트입니다.
-
Amazon Athena - 자세한 내용은 Amazon Athena 사용 설명서의 테이블, 데이터베이스 및 데이터 카탈로그 이해를 참조하세요.
-
Amazon Redshift Spectrum – 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 Amazon Redshift Spectrum을 사용하여 외부 데이터 쿼리를 참조하세요.
-
Amazon EMR - 자세한 내용은 Amazon EMR 관리 안내서의 AWS Glue 데이터 카탈로그에 대한 Amazon EMR 액세스를 위한 리소스 기반 정책 사용을 참조하세요.
-
AWS Apache Hive 메타스토어용 Glue 데이터 카탈로그 클라이언트 -이 GitHub 프로젝트에 대한 자세한 내용은 AWS Apache Hive 메타스토어용 Glue 데이터 카탈로그 클라이언트
를 참조하세요.