2017-09-07 7 views
0

OLTP 시스템은 정규화되고 수백 개의 테이블을 포함합니다. 보고서를 디자인하는 동안 많은 테이블에 참여해야 할 수도 있습니다. 예를 들어 고객의 전자 메일 주소를 얻으려면 4 ~ 5 개의 테이블을 조인해야합니다. (우리가 사용하는 통신 모델 덕분에)큰 데이터에서 복잡한 조인 처리

나는 hdfs (또는 아마 s3)에 데이터웨어 하우스를 설계하려고한다.

emaill 주소와 사용자 지정 ID를 하이브의 테이블에 쓰려면 다음을 입력하십시오. sqoop import 명령을 사용하여 다섯 개의 테이블에서 전체 테이블을 hdfs로 추출해야합니다. 그런 다음이 테이블을 하이브에 참여시켜야합니다. 따라서 이러한 과정은 이메일 정보를받는 데 오래 걸릴 수 있습니다.

또는 sqoop query 명령을 사용하여 데이터를 가져올 수 있습니다. 이것은 더 쉬워 보이고 hdfs의 공간을 적게 차지하지만이 경우 쿼리 실행 시간이 중요합니다.

비슷한 상황에서 귀하가 선택한 것은 무엇입니까? 다른 접근법이 있습니까?

고맙습니다.

답변

0

스키마를 비정규 화하는 것을 고려해야합니다. 예 : sqoop로 하이브에 필요할 수있는 모든 테이블을 가져오고, 스타 스키마로 비정규 화하는 ETL 프로세스를 준비하고 쿼리에 대해 비정규 화 된 새 스키마를 사용하십시오.

예. 이메일이 필드 중 하나 일 뿐인 "고객"테이블을 목표로해야합니다.