我来自 SQL Datawarehouse 世界,我从平面提要生成维度和事实表。在一般数据仓库项目中,我们将提要分为事实和维度。前任:
我对 Hadoop 完全陌生,我开始知道我可以在 hive 中构建数据仓库。现在,我熟悉使用 guid,我认为它适用于 hive 中的主键。那么,以下策略是在 hive 中加载事实和维度的正确方法吗?
- 将源数据加载到配置单元表中;比如说 Sales_Data_Warehouse
从 sales_data_warehouse 生成维度;前任:
从 Sales_Data_Warehouse 中选择 New_Guid()、Customer_Name、Customer_Address
当所有维度都完成后,加载事实表,如
SELECT New_Guid() AS 'Fact_Key', Customer.Customer_Key, Store.Store_Key... FROM Sales_Data_Warehouse AS 'source' JOIN Customer_Dimension Customer on source.Customer_Name = Customer.Customer_Name AND source.Customer_Address = Customer.Customer_Address JOIN Store_Dimension AS 'Store' ON Store.Store_Name = Source.Store_Name JOIN Product_Dimension AS 'Product' ON .....
这是我应该在配置单元中加载我的事实和维度表的方式吗?
此外,在一般仓库项目中,我们需要更新维度属性(例如:Customer_Address 更改为其他内容)或必须更新事实表外键(很少,但确实会发生)。那么,我怎样才能在 hive 中加载 INSERT-UPDATE 。(就像我们在 SSIS 中查找或在 TSQL 中执行 MERGE 语句一样)?