概述
数仓相关思考4
1.数仓中向表中导入数据的方式以及区别是什么?
- load加载方式: 不走Job!
如果是本地的文件,上传到表的目录中!
如果是HDFS的文件,移动到表的目录中!
手动上传和load的区别:
如果是全量表,没有任何区别!
如果是分区表,load操作会生成分区的元数据!
如果是手动上传,必须修复表的元数据: msck repair table 表名
- insert插入数据方式: 走Job!
一些特定操作只能使用Insert!
例如: 创建一个分桶表!
表中的数据存储格式不是textfile格式!
2.动态分区和静态分区的使用场景和作用
动态分区和静态分区的作用都是向表的分区中插入数据!
场景: 如果插入的数据都是向同一个分区插入,可以使用静态分区!
如果插入的数据,需要向不同的分区插入,只能使用动态分区!
3.lateral view的作用
如果需要将UDTF函数返回的数据和其他列一起查询,必须使用lateral view
4.如何自定义UDTF?
- 继承GenericUDTF
- 实现Initialize,对函数的入参进行检查,返回函数返回的每行的object inspector
- 通过process()对输入的数据进行处理,调用forward()输出
5.如何创建函数?自己创建的函数和系统函数有什么区别?
永久函数: create [temporary] function 函数名 as ‘函数对应的全类名’
自己创建的函数,属于元数据,有库的范围!如果要跨库调用,必须加库名.函数名!
6.如下命令
hive --hivevar str={“name”:“大郎”,“sex”:“男”,“age”:“25”,“wife”:[{“name”:“小潘”}]}运行的环境中请问如何获取小潘?
select get_json_object('${str}','$.wife[0].name')
最后
以上就是大气口红为你收集整理的数仓相关思考4数仓相关思考4的全部内容,希望文章能够帮你解决数仓相关思考4数仓相关思考4所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复