从单个 csv 文件在 Hadoop Hive 中创建星型模式(维度和事实表)
Posted
技术标签:
【中文标题】从单个 csv 文件在 Hadoop Hive 中创建星型模式(维度和事实表)【英文标题】:Creating Star Schema (Dimensions and Fact Table) in Hadoop Hive from a single csv file 【发布时间】:2020-07-11 14:32:59 【问题描述】:我对 Datawarehouse、OLAP 和 hive 完全陌生。我确实有一个 csv 文件,其中包含有关 ebay 等在线市场的训练数据(请参阅列数据)。我的任务是在 hive 中创建一个星型模式(通过 Data Analytics Studio、Spark 或其他)。
我将维度搭建如下:
如何创建这些维度表,尤其是为每一行生成一个新 ID?
我的SELECT New_Guid(), listing_title, listing_subtitle, listing_type_code, start_price, buy_it_now_price, buy_it_now_listed_flag, qty_available_per_listing From auctions
,我在另一个教程中找到的。但是New_Guid()
在我的 Data Analytics Studio 中根本不起作用。
非常感谢!
【问题讨论】:
如何获取 UUID 或数字代理键:***.com/a/58625717/2700344 价格是否是维度属性值得商榷 所以。如果对您有帮助,请接受。 【参考方案1】:假设维度中没有历史,不管维度设计是否良好,都不管:
对于每个必需的维度:
读取 csv 并提取应用于 temp_table 的相关字段 使用select (row_number() over()), Col1, Col2, col3, col4 from temp_table
为每一行添加一个序列号并保留到维度表
对于事实表:
读取 csv 并提取应用于 temp_table 的相关字段 使用select (row_number() over()), Col1, Col2, col3, col4 from temp_table
为每一行添加一个序列号并存储在另一个temp_table_2中
用适当的语句从 temp_table_2 加入到维度查找/选择给出 temp_table_3 的序列号
仅将 temp_table_3 中的键插入 fact_table 中
【讨论】:
以上是关于从单个 csv 文件在 Hadoop Hive 中创建星型模式(维度和事实表)的主要内容,如果未能解决你的问题,请参考以下文章