Dynamodb 내보내기를 트리거하고 CDK로 Athena 저장된 쿼리를 생성하는 방법의 예

게시물에서 데이터를 가져와 dynamodb 데이터의 변경 사항을 분석하는 방법을 설명합니다. 이 게시물에서는 dynamodb 테이블 데이터 내보내기를 (반) 자동화하고 Athena로 분석하는 방법을 설명합니다. This 게시물에서는 수동으로 수행할 수 있는 방법을 설명합니다.

한 가지 접근 방식은 람다를 사용하는 것이고 다른 접근 방식은 단계 함수를 사용하는 것입니다. 두 접근 방식 모두 S3 버킷으로 내보내기를 트리거하는 단계를 구현하고, 내보낸 해당 데이터에 대한 athena 테이블을 생성하고, 분석을 위한 namend 쿼리를 준비합니다.

이 예제의 데이터는 다음과 같습니다.



람다와 함께



This lambda SDK를 통해 내보내기를 트리거하고 명명된 쿼리를 생성하거나 업데이트합니다.

The query은 athena 테이블을 생성합니다. 내보내기 ID는 "s3location"을 s3://<<bucket name>>/ddb-exports/AWSDynamoDB/<<ddb-export-id>>/data/와 같은 것으로 대체하여 람다에 의해 설정됩니다.

CREATE EXTERNAL TABLE ddb_exported_table (
 Item struct<pk:struct<S:string>,
             person:struct<M:struct<
                jobArea:struct<S:string>,
                firstname:struct<S:string>,
                gender:struct<S:string>,
                jobType:struct<S:string>,
                jobDescriptor:struct<S:string>,
                lastname:struct<S:string>
                >>>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3Location'
TBLPROPERTIES ( 'has_encrypted_data'='true');


https://github.com/JohannesKonings/test-aws-dynamodb-athena-cdk/blob/main/cdk/lib/ddb-export/readTable.sql

SELECT 
item.pk.S as pk,
item.person.M.firstname.S as firstname,
item.person.M.lastname.S as lastname,
item.person.M.jobArea.S as jobArea,
item.person.M.gender.S as gender, 
item.person.M.jobType.S as jobType, 
item.person.M.jobDescriptor.S as jobDescriptor
FROM "db_name"."table_name";


람다를 시작한 후 내보내기가 완료될 때까지 기다려야 합니다. 그런 다음 athena 테이블 생성을 위한 쿼리를 실행할 수 있습니다. 람다는 이미 이전 테이블을 삭제했습니다. 그런 다음 분석을 위해 준비된 쿼리를 사용할 수 있습니다.

보다 조율된 접근 방식은 단계 기능을 사용하는 것입니다. 결과를 기다리는 것이 더 좋습니다 :)

단계 함수 사용



이것은 단계 함수에 의해 오케스트레이션되는 단계입니다.



결정적입니다here

단계 함수는 기본값으로 시작할 수 있습니다.





완료하는 데 몇 분 정도 걸립니다.



"최근 쿼리"섹션에는 이전 테이블을 삭제하고 새 테이블을 만드는 단계가 나열되어 있습니다.

ddb export sfn athena recent queries

완료되면 이름이 sfn-ddb-export-read-table 인 저장된 쿼리를 선택할 수 있습니다. dynamodb 테이블의 모든 데이터를 쿼리하는 데 사용할 수 있으며 보다 "복잡한"쿼리에 적용할 수 있습니다.


암호




JohannesKonings / 테스트-aws-dynamodb-athena-cdk


AWS CDK로 생성된 Kinesis를 통해 Athena로 DynamoDB 데이터를 분석하는 방법의 예





테스트-aws-dynamodb-athena-cdk


overview

전개하다

cd cdkQUICKSIGHT_USERNAME=<<Quicksight user name>> npx cdk deploy

설명


자세한 내용은 여기를 참조하십시오.

경고


⚠️ 테스트 후 파기하는 것을 잊지 마세요.
  • Kinesis Data Streams는 시간당 costs
  • Quicksight는 무료 평가판
  • 이후에 costs


    View on GitHub

    ( https://github.com/JohannesKonings/test-aws-dynamodb-athena-cdk )

    좋은 웹페이지 즐겨찾기