sparksql源码系列 | 一文搞懂Show create table 执行原理

这篇文章主要介绍了show create table命令执行的源码流程,弄清楚了sparksql是怎么和hive元数据库交互,查询对应表的metadata,然后拼接成最终的结果展示给用户的。

如果你正好也想了解这块,就点赞、收藏吧~

今天这篇文章也是来自于【源码共读群】的一个讨论,先上聊天:

我们平时都很关注select这样的查询语句,却很少关注show create table 这样的语句的执行过程,在网上确实也很难搜到写相关内容的博客。正好借这个问题,深挖一下运行原理,于是,花2个小时,撸一遍源码,得到了基本的结论:

哈哈,感谢大家认可啦,群友都希望录个视频,那我先写文章,然后,再录个短屏。

下面开挖,源码是枯燥的,但也是我们能看到真相的窗口~~

本文基于spark 3.2

本文大纲

1、写能模拟从hive查表的本地测试类

2、hive中的实体类和元数据库表及字段的对应关系

3、源码分析执行过程

1、写能模拟从hive查表的本地测试类

我们在读sparksql源码时,为了方便,基本上都是用df.createOrReplaceTempView("XXX")这样的形式,来产生一些数据,这些足够我们去研究90%以上的规则,但这些不能模拟hive的情况,如果我们搭建远程连hive的环境,又会花费大量的精力。

还好,在sparksql源码工程里,我们可以通过继承TestHiveSingleton,在不用搭建hive环境的情况下,来模拟hive。

这个在【源码共读】的分享上我们会专门讲~~

测试类代码如下:

2、hive中的实体类和元数据库表及字段的对应关系

MTable(类)--> TBLS(表)

MDatabase(类)-->DBS(表)

MStorageDescriptor(类)-->SDS(表)

MFieldSchema(类)-->TYPE_FIELDS(表)

partitionKeys(MTable类中的filed) -->PARTITION_KEYS(表)

parameters (MTable类中的filed--> TABLE_PARAMS(表)

下面的配制包含了类中的字段及表字段的对应关系:

<class name="MTabl
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小萝卜算子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值