分享

hive表设计的下钻和三泛式

zhuqitian 发表于 2017-6-29 10:35:53 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 7506
到一家公司,先要熟悉下公司业务,通常就是培训,看文档,自己摸索,自己摸索主要就是看表结构了,里面存着很多有价值的信息。最近我就在思考着一个问题:下钻和三泛式中的第三范式是有矛盾的,到底如何设计会更优举例说明:表中有个支付时间字段,是个时间戳,但我发现还有另外几个字段是按照这个字段拆出来的,支付-月,支付-周,支付-小时,支付-年,支付-季度,类似的也还有其他字段比如收货地址等

按照三泛式中第三范式,不能存在冗余字段,那这种下钻设计就会有冗余了,而且多了很多字段出来,当然hive不是关系型数据库,不能照着那种设计思路来设计,但是这种确实有冗余,hive可以批量处理数据,比如写一个udtf就可以传入一个支付时间返回多个字段,用hive自带的函数也是ok的,那这样一来处理也很方便,对于统计来说也不会是性能瓶颈,因为hive处理字符串的能力很强

大家认为那种设计思路比较好,给给建议,谢谢!

已有(2)人评论

跳转到指定楼层
w123aw 发表于 2017-6-29 20:51:08
还是看场景,如果是关系型数据库第三范式是没有问题的。如果是数据分析,例如BI等,是从不同维度来建表的。而且重复的也挺多的。对于楼主的思路个人认为还不错。
回复

使用道具 举报

zhuqitian 发表于 2017-6-30 13:55:53
w123aw 发表于 2017-6-29 20:51
还是看场景,如果是关系型数据库第三范式是没有问题的。如果是数据分析,例如BI等,是从不同维度来建表的。 ...

两种情况应该都有公司在用,我认为对于时间或者一些容易转换的字段可以不用下钻,那种地址等不太方便截取转换的可以有多个字段
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条