반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

DevOps Tasks

DynamoDB 데이터를 AWS 데이터 파이프라인으로 QuickSight에서 시각화하기 본문

AWS

DynamoDB 데이터를 AWS 데이터 파이프라인으로 QuickSight에서 시각화하기

데밥스 2024. 8. 4. 21:07
728x90
반응형

DynamoDB는 AWS에서 제공하는 NoSQL 데이터베이스로, 짧은 대기 시간과 고가용성을 제공하여 원활한 확장이 필요한 애플리케이션에 최적의 선택입니다.

AWS는 DynamoDB를 통해 증가하는 워크로드를 손쉽게 처리할 수 있도록 다양한 기능을 제공합니다.

Athena는 AWS 생태계 내에서 강력한 데이터 분석 도구로, 사용자가 익숙한 SQL을 사용하여 다양한 데이터 소스를 쿼리 할 수 있게 해 줍니다.

BI 작업이나 기타 분석 작업을 수행할 때, Athena는 프로세스를 단순화하고 데이터에서 인사이트를 도출할 수 있는 기능을 제공합니다.

이제 DynamoDB의 정보를 시각화해야 하는 요구가 생겼습니다.

아래와 같은 흐름을 통해, DynamoDB에 있는 데이터를 Athena로 옮기고 S3에 저장한 후, QuickSight로 시각화할 수 있습니다.

 

Data Flow

 

 


DynamoDB와 Athena를 연결해 주는 Connector Lambda는 AWS에서 제공해 주는 CloudFormation으로 생성 가능합니다.

 

 

데이터 원본을 DynamoDB로 선택하면 Cloudformation으로 DynamoDB와 Athena를 연결시켜 주는 Lambda Application를 생성할 수 있습니다.

 

 

데이터를 저장할 버킷과 프리픽스(Prefix) 등은 Lambda 환경 변수로 커스텀할 수 있습니다.

  • AthenaCatalogName: Lambda 함수의 이름입니다.
  • SpillBucket: Lambda 함수 응답 크기 제한을 초과하는 데이터를 저장할 S3 버킷입니다.
  • SpillPrefix: Lambda 함수 응답 크기 제한을 초과하는 데이터는 이 프리픽스(Prefix) 아래에 저장됩니다.

 

 

 

Amazon Athena DynamoDB 커넥터 - Amazon Athena

AWS Glue 콘솔의 테이블 작성 프로세스의 일부인 테이블 속성 설정 페이지에는 분류 필드가 있는 데이터 형식 섹션이 있습니다. 여기서는 dynamodb를 입력하거나 선택할 수 없습니다. 대신, 테이블을

docs.aws.amazon.com

 

하지만 Lambda를 사용할 때 "Column not found" 에러로 인해 샘플 컬럼만 가져오고 전체 컬럼을 가져오지 못하는 문제가 발생할 수 있습니다.

 

🔥 How can I resolve the "Column not found" error with the Athena DynamoDB connector?

 

 

Troubleshoot "Column not found" error in Athena DynamoDB connector

When I use the Amazon Athena DynamoDB connector, I get a "Column not found" error.

repost.aws

 

이를 해결하기 위해 AWS Glue Crawler를 사용하여 DynamoDBAthena를 연결해 줍니다.

AWS Glue는 완전 관리형 데이터 추출, 변환 및 적재(ETL) 서비스입니다.

서버리스이기 때문에 설정하거나 관리할 인프라가 없으며, 원본 데이터의 변경을 감지하여 저장할 별도의 저장소가 필요 없습니다.

원하는 데이터 원본과 Glue가 해당 데이터 원본에 접근할 수 있도록 IAM Role을 연결해 줍니다.

 

 

크롤러가 데이터 원본의 스키마 변경을 감지하면, AWS GlueData Catalog의 테이블을 자동으로 업데이트합니다.

또한, 데이터 원본에서 삭제된 객체에 대해 어떻게 처리할지 설정할 수 있는 다양한 옵션을 제공합니다.

크롤러 스케줄러는 필요에 따라 on-demand로 실행하거나, cron 기반으로 일정에 맞춰 자동 실행되도록 설정할 수 있습니다.

 

처음에는 Lambda를 사용하여 DynamoDBAthena를 연결하려 했지만, "Column not found" 에러로 인해 전체 컬럼을 가져오지 못하는 문제가 발생했습니다.

이 문제를 해결하기 위해 AWS Glue Crawler를 도입하여 DynamoDBAthena를 연결하여 데이터를 시각화할 수 있었습니다.

AWS Glue는 완전 관리형 서버리스 ETL 서비스로, 데이터 원본의 스키마 변경을 자동으로 감지하고 Data Catalog를 업데이트해 주어 더 안정적이고 효율적인 데이터 파이프라인을 구축할 수 있었습니다.

또한, 크롤러 스케줄러를 활용하여 데이터 업데이트를 자동화함으로써 관리 부담을 줄일 수 있었습니다.

이 과정을 통해 DynamoDB 데이터를 AthenaQuickSight로 시각화하는 파이프라인을 성공적으로 구축할 수 있었습니다.

이 방법은 비슷한 데이터 시각화 요구 사항이 있는 경우에 유용하게 사용할 수 있습니다.

 

728x90
반응형