0

일련의 Dynamo DB 테이블이 있습니다. 그리고이 테이블의 데이터에 대해 동적 실시간 (또는 거의 실시간) 대시 보드를 구축 할 수있는 적절한 솔루션을 설계하려고합니다.DynamoDB에서 데이터에 대한 적절한 분석 대시 보드를 작성하는 방법은 무엇입니까?

예를 들어 테이블 "사용자"가 있고 각 사용자 항목에 "성별"속성이있는 경우 필자는 남성/여성 사용자의 수를 모니터링하여 기능을 공개 한 후 증가/감소하는 방식을 확인하는 실시간 대시 보드를 만들고 싶습니다.

일부 연구 끝에 다음 해결책을 찾았습니다. - DynamoDB에 연결된 EMR 클러스터를 사용하십시오. - EMR의 출력을 Amazon QuickSight에 연결하십시오.

이 솔루션이 효율적입니까? 방대한 양의 데이터 (예 : 100M 행)가 있으면 제대로 작동합니까?

답변

1

전체 DynamoDB 테이블을 EMR에 덤프 할 계획이라면 대역폭, 리소스 등의 낭비를 줄이십시오. 모든 Dynamodb 읽기 용량에 대해 비용을 지불해야합니다.

가장 간단한 형식으로 테이블을 쿼리하고 쿼리 수를 "남성"/ "여성"()으로 지정할 수 있습니다. 단,이을 수행하지 마십시오.

디자인을 다시 생각하십시오. 만약 내가 끊임없이 변화하는 것의 합을 알 필요가 있다면, 나는 다른 테이블을 만들고 메인 테이블에서 항목이 추가/삭제/수정 될 때마다 업데이트 할 것입니다. 그런 다음 전체 데이터베이스를 검색하는 대신 하나의 행만 포함하는 간단한 쿼리를 수행 할 수 있습니다.

DynamoDB를 실제로 덤프해야하는 경우 S3에 덤프 한 다음 Amazon Athena를 사용하여 S3에서 직접 데이터를 처리합니다. 이러한 간단한 작업을 위해 Amazon EMR은 큰 과잉입니다.

+1

OP에서 DynamoDB에 대한 100M 행 ... 쿼리를 고려하지 않아야합니다. 그러나 아마 다른 테이블을 만드는 것이 갈 길입니다. –

0

"실시간"이란 무엇을 의미합니까? 5 초 또는 5 시간의 지연 같이? 왜냐하면 5 초 또는 5 분이면 EMR이 작동하지 않기 때문입니다. 왜냐하면 EMR은 hadoop을 기반으로하고 일괄 처리이기 때문입니다.

DynamoDB 자체는 NoSQL 데이터베이스입니다. 이 대시 보드에서 DynamoDB 테이블을 직접 쿼리하지 않는 이유는 무엇입니까?

+1

DynamoDB는 프로비저닝 된 용량으로 분석/보고서에 사용할 수 없습니다. –

+0

어쩌면 나는 "실시간"이라는 용어를 잘못 사용했을 수도 있지만, 이것이 비용과 직접 관련이 있다는 것을 완전히 이해하고 있기 때문에 1 시간이 최소라고 말하고 싶습니다. DynamoDB를 쿼리하는 것이 좋습니다. 그러나 대부분의 분석은 관계형 쿼리입니다. 그것이 가능하더라도, DynamoDB는 그렇게 설계되지 않았다고 생각합니다. 그것은 효율성과 비용 관점에서 나쁜 것입니다. – hatemfaheem

+0

나는 문서 저장 또는 no-sql db가 분석 목적으로 적합하지 않다고 생각합니다. –