我是靠谱客的博主 大气口红,这篇文章主要介绍数仓相关思考4数仓相关思考4,现在分享给大家,希望可以做个参考。

数仓相关思考4

1.数仓中向表中导入数据的方式以及区别是什么?

  • load加载方式: 不走Job!
    如果是本地的文件,上传到表的目录中!
    如果是HDFS的文件,移动到表的目录中!
    手动上传和load的区别:  
            如果是全量表,没有任何区别!
            如果是分区表,load操作会生成分区的元数据!
                如果是手动上传,必须修复表的元数据:  msck repair table 表名
  • insert插入数据方式: 走Job!
    一些特定操作只能使用Insert!
    例如: 创建一个分桶表!
    表中的数据存储格式不是textfile格式!

2.动态分区和静态分区的使用场景和作用

动态分区和静态分区的作用都是向表的分区中插入数据!

场景:  如果插入的数据都是向同一个分区插入,可以使用静态分区!
        如果插入的数据,需要向不同的分区插入,只能使用动态分区!

3.lateral view的作用

如果需要将UDTF函数返回的数据和其他列一起查询,必须使用lateral view

4.如何自定义UDTF?

  1. 继承GenericUDTF
  2. 实现Initialize,对函数的入参进行检查,返回函数返回的每行的object inspector
  3. 通过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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(147)

评论列表共有 0 条评论

立即
投稿
返回
顶部