Hive:窗函数和UDF整理

作者:JerryXia | 发表于 , 阅读 (37)
TCASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] ENDWhen a = true, returns b; when c = true, returns d; else returns e.把计算结果赋值给end,并重命名为date_timecase when a = -1 then 0 else 1 end as date_time窗函数Analytics functionsReturn TypeName(Signature)Description描述...阅读全文

JDBC源码解析(一):示例+Driver注册流程

作者:JerryXia | 发表于 , 阅读 (40)
你是否想好好阅读一份源码,但是一直没有开始?
如果上面说到的几个问题你有遇到过,那么你可以继续阅读下面的内容了,我会按照自己的jdbc源码阅读轨迹,来对jdbc的实现做一个详细的说明,尝试帮助自己和大家更深入地理解我们经常使用的这个工具。
如果你对上面的问题嗤之以鼻,那么恭喜你,下面的内容对你来讲要不就是太过简单,要不就是没有意义,就不用浪费时间继续看下去。
这里是前言这是自己在16年的时候阅读jdbc时候留下的笔记,现在搬出来。当时写的一些废话也就不再删了。
自己一直说要某个开源项目的源码,但是一直没有真正地好好开始,一是以为看源码其实不容易看懂,而是因为选择犹豫,最后也很难敲定看哪个。
这次正式开始看jdbc的源码有两个三个:一是因为《java编程思想》这本书快看完了,折腾一个多月的时间,里面除了多线程和图形编程这两块基本都看得差不多了;一个是因为《设计模式之禅》这本书看了一半左右,里面的设计模式自己大致都明白是什么意思,但是印象不深刻,需要有一个稳固的过程;另一个是因为jdbc相对来说比较熟悉,加上以后肯定会常和数据库打交道,因此就决定看了。
在分析源码的时候,我会先...阅读全文

JDBC源码解析(二):获取connection

作者:JerryXia | 发表于 , 阅读 (45)
0x00 前言上一节分析了jdbc的Driver注册过程,这一节分析一下jdbc是如何获取connection的。
0x01 connection的建立过程DriverManager.getConnection 做了什么
conn = DriverManager.getConnection("jdbc:mysql://192.168.108.145/test", "root", "root");可以看出,getConnection方法返回的是一个Connection对象,在下面的for循环中,会遍历registeredDrivers中存放的所有的Driver,直到找到一个合适的Driver,然后进行连接。通过这个方法我已经可以知道jdbc就是这样来获取连接的,但是具体是怎么来获取这个connection,还需要详细地看后面的代码。
private static Connection getConnection(String url, java.util.Properties info, ClassLoader callerCL) throws SQLException {.......阅读全文