- gochannel
- aws ses
- kubernetesstudyguide
- SAA-CO3
- kubernetesscheduling
- containerorchestration
- CKA
- Lambda
- go
- DevOps
- kubernetesadmin
- SPF
- nodeaffinity
- JVM
- dMarc
- DKIM
- Fargate
- 메일 인증 프로토콜
- SAA-CO2
- EKS
- Datadog
- Java
- SMTP
- eventbridge
- cloudnative
- K8S
- Certified Solutions Architect
- Kubernetes
- aws
- Today
- Total
DevOps Tasks
DynamoDB 데이터를 AWS 데이터 파이프라인으로 QuickSight에서 시각화하기 본문
DynamoDB는 AWS에서 제공하는 NoSQL 데이터베이스로, 짧은 대기 시간과 고가용성을 제공하여 원활한 확장이 필요한 애플리케이션에 최적의 선택입니다.
AWS는 DynamoDB를 통해 증가하는 워크로드를 손쉽게 처리할 수 있도록 다양한 기능을 제공합니다.
Athena는 AWS 생태계 내에서 강력한 데이터 분석 도구로, 사용자가 익숙한 SQL을 사용하여 다양한 데이터 소스를 쿼리 할 수 있게 해 줍니다.
BI 작업이나 기타 분석 작업을 수행할 때, Athena는 프로세스를 단순화하고 데이터에서 인사이트를 도출할 수 있는 기능을 제공합니다.
이제 DynamoDB의 정보를 시각화해야 하는 요구가 생겼습니다.
아래와 같은 흐름을 통해, DynamoDB에 있는 데이터를 Athena로 옮기고 S3에 저장한 후, QuickSight로 시각화할 수 있습니다.
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를 사용하여 DynamoDB와 Athena를 연결해 줍니다.
AWS Glue는 완전 관리형 데이터 추출, 변환 및 적재(ETL) 서비스입니다.
서버리스이기 때문에 설정하거나 관리할 인프라가 없으며, 원본 데이터의 변경을 감지하여 저장할 별도의 저장소가 필요 없습니다.
원하는 데이터 원본과 Glue가 해당 데이터 원본에 접근할 수 있도록 IAM Role을 연결해 줍니다.
크롤러가 데이터 원본의 스키마 변경을 감지하면, AWS Glue는 Data Catalog의 테이블을 자동으로 업데이트합니다.
또한, 데이터 원본에서 삭제된 객체에 대해 어떻게 처리할지 설정할 수 있는 다양한 옵션을 제공합니다.
크롤러 스케줄러는 필요에 따라 on-demand로 실행하거나, cron 기반으로 일정에 맞춰 자동 실행되도록 설정할 수 있습니다.
처음에는 Lambda를 사용하여 DynamoDB와 Athena를 연결하려 했지만, "Column not found" 에러로 인해 전체 컬럼을 가져오지 못하는 문제가 발생했습니다.
이 문제를 해결하기 위해 AWS Glue Crawler를 도입하여 DynamoDB와 Athena를 연결하여 데이터를 시각화할 수 있었습니다.
AWS Glue는 완전 관리형 서버리스 ETL 서비스로, 데이터 원본의 스키마 변경을 자동으로 감지하고 Data Catalog를 업데이트해 주어 더 안정적이고 효율적인 데이터 파이프라인을 구축할 수 있었습니다.
또한, 크롤러 스케줄러를 활용하여 데이터 업데이트를 자동화함으로써 관리 부담을 줄일 수 있었습니다.
이 과정을 통해 DynamoDB 데이터를 Athena와 QuickSight로 시각화하는 파이프라인을 성공적으로 구축할 수 있었습니다.
이 방법은 비슷한 데이터 시각화 요구 사항이 있는 경우에 유용하게 사용할 수 있습니다.
'AWS' 카테고리의 다른 글
AWS Step Functions 를 이용한 Lambda 처리 전략 (1) | 2024.09.28 |
---|---|
Event Driven Architecture with AWS Infra Monitoring (0) | 2024.08.04 |
AWS RDS Proxy 와 Serverless (1) | 2024.03.02 |
AWS Lambda 마스터리북 구매하기 (1) | 2024.01.05 |
AWS ECS Fargate 컨테이너에 노크하고 들어가기 (1) | 2023.12.24 |