2017-10-03 3 views
2

사용자가 데이터에 대한 보고서를 실행할 수있는 웹 응용 프로그램이 있습니다. 문제는 우리가 작업하고있는 데이터 때문에 쿼리가 너무 느리다는 것입니다.보고서 데이터를 AWS DynamoDB에 임시 저장 하시겠습니까? 이것이 가능한 솔루션입니까?

프로세스를 비동기로 만들고 그 스레드에서 다른 머신이 작동하도록 생각했습니다. 데이터를 쿼리하고 AWS DynamoDB에 넣은 다음 사용자에게 알리는 것입니다.

데이터는 대부분 평탄합니다 (행과 열만). 일반적으로 레코드 크기는 100s, 1000s, 10,000s는 거의 없습니다.

이것은 좋은 아이디어입니까? 공연은 어떻습니까?

+1

레코드 크기 단위는 무엇입니까? 다시 쿼리하고 DynamoDB의 쿼리 특성을 어떻게 계획합니까? – Ashan

+0

나는 조금 혼란 스럽다. 당신이 묻고있는 것을 더 명확히 할 수 있습니까? – mute

+0

레코드 크기가 100s, 1000s & 등인 보고서 데이터를 저장할 때 100이 무엇입니까? MB 또는 KB 또는 행 또는 열 등입니까? – Ashan

답변

1

고전 건축의 대답은 : 당신의 장기 실행 쿼리 디나모 어떤 의미가에 그 결과를 저장하는 다른 디나모 테이블 (들)에있는 경우

  1. "그것은 달려있다." (당신이 이미 사용하고있는 친숙한 기술).

  2. 쿼리가 다른 데이터베이스에 대해 실행중인 경우 해당 데이터베이스의 새 테이블이나 동일한 플랫폼의 새 전용 데이터베이스에 결과를 저장하지 않으시겠습니까?

  3. 또는 간단하게 결과를 S3 파일에 기록하십시오 (json, xml, csv, ...).

+0

DynamoDB에서 데이터를 가져 오는 것이 새 데이터베이스 테이블에서 데이터를 검색하는 것보다 빠르다는 것을 생각하고있었습니다 (이 경우에는 MS SQL Server를 사용하고 있습니다). 그리고 ... # 3 번 접근법에 대해서도 생각조차하지 않았습니다. – mute

+0

이상적으로 성능은 세 가지 솔루션 모두에서 유사해야합니다 (프로덕션 클래스 하드웨어 및 결과 세트가 크지 않다고 가정). 그러나 정적 파일을 반환 항상 항상 빠를 것입니다 ... – Scrappydog

1

@ Skrappydog 언급 한 것과 유사합니다. DynamoDB와 S3를 함께 사용할 수 있습니다.

  • S3 파일의 실제 쿼리 결과를 저장하는 것
  • 이것은 당신이 모든 넥타이 DynamoDB의 사용을 허용 할을 사용자 ID 및 S3 파일 이름과 같은 -

    1. DynamoDB의 쿼리 메타 데이터를 저장하는 것 함께 조각을 움직입니다. 또한 비용을 낮추기 위해 DynamoDB에서 많은 양의 쓰기를 유지합니다.

    관련 문제