저는 SQL Datawarehouse에서 왔으며 플랫 피드에서 차원 및 팩트 테이블을 생성합니다. 일반적인 데이터웨어 하우스 프로젝트에서 우리는 피드를 사실과 차원으로 나눕니다. 예 :하이브에서 스타 스키마 생성
나는 하둡 완전히 새로운 오전과 내가 하이브에서 데이터웨어 하우스를 구축 할 수 있음을 알게되었습니다. 이제 하이브에서 기본 키로 적용 할 수있는 guid 사용에 익숙합니다. 따라서 아래의 전략은 하이브에 사실과 차원을로드하는 올바른 방법입니까?
- 하이브 테이블로 소스 데이터로드. 말하십시오 Sales_Data_Warehouse
sales_data_warehouse에서 차원 생성; 예 :
SELECT New_Guid(), Customer_Name 제, Customer_Address Sales_Data_Warehouse 모든 치수는 다음 수행 'Fact_Key'AS
SELECT New_Guid()와 같은 팩트 테이블을로드하는
, Customer.Customer_Key, 상점에서 .Store_Key ... Sales_Data_Warehouse AS '소스'FROM 는 는 source.Customer_Name = Customer.Customer_Name에 Customer_Dimension 고객을 가입하고 source.Customer_Address = Customer.Customer_Address Store.Store_Name = Source.St ON Store_Dimension AS '스토어'가입 ore_Name 가 ON Product_Dimension AS '제품'을 가입 .....
이 내 사실과 차원 테이블 하이브를로드해야하는 방법이 있나요?
또한 일반적으로웨어 하우스 프로젝트에서 차원 속성을 업데이트해야합니다 (예 : Customer_Address가 다른 것으로 변경됨) 또는 사실 테이블 외래 키를 업데이트해야합니다 (거의 발생하지 않지만 발생합니다). 그래서 어떻게 하이브에 INSERT-UPDATE로드를 할 수 있습니까? (우리가 TSQL의 SSIS 또는 MERGE 문에서 Lookup을 수행하는 것처럼)?
당신이하는 방식이 정확합니다. Hive는 버전 0.14 –
에서 업데이트 쿼리를 지원합니다. 핵심 개념은 없습니다 –
고객 이름이 변경된 경우 두 테이블 "고객"테이블과 파생 테이블을 모두 업데이트해야합니다 –