2012-08-28 4 views
0

매우 방대한 양의 데이터에 어떤 종류의 저장 용량을 권장합니까? (하루에 약 50 억 레코드). Hadoop이나 RDBMS와 같은 시스템이이 목적을 달성하기에 여전히 적절한 상황입니까?방대한 양의 데이터에 적합한 저장 방법

+0

데이터 보관 기간은 얼마나 되나요? 스키마가 얼마나 복잡합니까? 하나의 큰 팩트 테이블과 작은 (-ish) 차원 테이블이있는 스타 스키마입니까? 어떤 종류의 쿼리를 데이터에 적용 할 예정입니까? 전체 테이블 또는 날짜 범위의 특정 데이터 (일별, 주별, 월별 등) 만 포함합니까? – Olaf

+0

원시 데이터를 사전 처리하여 구문 분석하고 보고서 데이터로 집계해야합니다. 보고서는 삭제되지 않고 원시 데이터는 처리 후 삭제됩니다. 보고서는 숫자 데이터로 저장됩니다. 쿼리 - 기본 특정 데이터 범위에 대한 통계적 쿼리 (평균, 합계, 최소, 최대)가 있습니다. – Artegon

답변

1

설명하는 데이터의 양에 따라 실제로 빅 데이터 테라토리얼을 사용할 수 있습니다. 제공 한 세부 정보의 양을 기반으로 원시 데이터를 Hadoop 클러스터에로드하고 map/reduce 작업을 실행하여 구문 분석하고 날짜 기반 디렉토리에로드하는 것이 좋습니다. 그런 다음지도/축소 작업 결과에 매핑 된 날짜별로 분할 된 외부 Hive 테이블을 정의 할 수 있습니다 (매일? 매주?).

다음 단계는 보고서의 복잡성과 필요한 응답 시간에 따라 달라집니다. SQL로 쉽게 표현할 수 있다면 Hive 테이블에서 쿼리를 실행할 수 있습니다. 그들이 더 정교한 경우에, 당신은 주문지도 또는 감소 일을 써야 할지도 모르다. 많은 사람들이 그것을 위해 돼지를 제안하지만 나는 곧바로 자바에 대해 개인적으로 더욱 만족 스럽습니다.

보고서의 응답 시간에 신경 쓰지 않는다면 필요할 때 실행할 수 있습니다. 관심이 있지만 수십 초 또는 수분 동안 결과를 기다리려면 하이브에 보고서 결과를 저장할 수 있습니다. 보고서를 빠르게 표시하려면 웹 기반 또는 모바일 UI에서 보고서 데이터를 관계형 데이터베이스에 저장할 수 있습니다.

+0

지금 우리가 프로토 타입을 작성하고 엄청난 양의 데이터가 없으면 관계형 데이터베이스에 데이터가 저장됩니다. 프로덕션 환경에서는 프로덕션 사용에있어 미래의 데이터 흐름에 대해 생각하고 있습니다. 웹 기반 UI를 통해 보고서를 제공해야하며 속도가 중요 할 경우 어떤 것이 좋습니다? 원시 데이터를 Hadoop에 저장하고 관계형 데이터베이스에 데이터 저장소를 처리하는 아이디어가 있습니다. 귀하의 조언에 감사드립니다. – Artegon

+0

"원시 데이터를 Hadoop에 저장하고 관계형 데이터베이스에 처리 된 데이터 저장소"- 내 대답을 요약합니다. 요약을 SQL 쿼리로 표현할 수 있다면 Hive를 사용하여 Hadoop에서 데이터 쿼리를 고려하십시오. 나는 Java로 map/reduce를 작성하는 것을 좋아하지만, 하나의 SQL 문으로 요약을 표현할 수 있다면 어떤 방법으로 갈지는 의문의 여지가 없습니다. – Olaf

관련 문제