我是靠谱客的博主 大气口红,最近开发中收集的这篇文章主要介绍数仓相关思考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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部