基于antlr4实现HQL的解析[格式化]

前言 对于一般的网页上sql查询工具都会有一个功能【格式化】,对于hql的格式化市面上没有很好的直接使用的工具。 这边基于antlr4对hql的解析手动实现一个格式化的功能。 设计思路 对于一般比较固定的语句如create,show,drop,alter等采用直接对拿到节点并带格式用字符串拼接。 对于最复杂的select,因为其中包含很多嵌套,因此这边基本的想法有两种: 因为visit树节......

博客新增两个功能模块

入口 在主页侧边栏的FRIENDS模块中, 新增了我的钢琴屋 和 我的阅读室 下面分别来阐述 我的钢琴屋 这个是挂在github上的一个静态页面,github地址为 https://github.com/webgjc/tan8【如侵权可下线】 主要功能为练习和收听钢琴曲 实现 其中包括一个flash播放器和一个数据列表 flash播放器主要参考某琴吧的实现,并引用了他们的文件存储直接获取......

HIVE源码学习--从CliDriver跟踪整个执行流程

前言 对接和使用hive的上层组件也很多了,hiveserver2,beeline,metastore,hivehook等,但没好好调试过hive,计划进行一次比较狠的补课,让自己对hive内部的很多实现有一个基础的认识,同时自定义实现一些模块。 本次是hive源码层的调试与实验的开坑,初步想象的过程有:hive执行大致全流程调试,序列化反序列化,执行计划,metastore,hivehoo......

本地hadoop与hive的单节点部署和开发调试[mac]

预备 这边部署的 hadoop版本为 2.7.3 hive版本为 1.2.1 注:src为源码包 Hadoop搭建 解压,进入配置目录 tar zxvf hadoop-2.7.3.tar.gz cd hadoop-2.7.3/etc/hadoop 修改配置 core-site.xml,hdfs-site.xml, mapred-site.xml ......

hiveSQL执行日志的收集

前言 一般的hive客户端都没有详细的执行日志,要了解执行情况得去yarn看,就比较麻烦,本次考虑的是在hive客户端获取到全部的执行日志,来源主要参考hadoop-yarn-client的内部实现。 使用引擎为tez,在异步执行hql时,获取到的日志中包括applicationId,考虑通过这个去获取到全部的执行日志,包括进度和map/reduce信息。 实现 jdbc部分日志 获取jdb......

hiveserver2与hiveSQL的执行

前言 对于hql的执行,可以在集群中启动hive的命令行,也可以使用beeline或其他客户端用jdbc连接Hiveserver2发送sql,中间传输用的是thrift协议。 这边演示python的实现和java的实现 实现 python python使用pyhive或者impyla库都可以。使用方式也都类似,这边以pyhive举例。 from pyhive......

基于antlr4实现HQL的解析[元数据]

前言 在大数据场景中,HQL的使用次数很多:离线任务,及时查询,数仓建模等。 关于HQL解析在hive底层也有他自己的HQL解析实现。不过底层的实现直接用不起来,这边使用antlr4直接来实现HQL的解析。 HQL解析在很多场景能用到并发挥如虎添翼的作用,这边开个新坑,会分好几个文章来讲主要用到的一些场景和实现。 本文主要讲CREATE语句解析出元数据。会用到的场景也很多,比如建模的时候,离......

hive与mysql元数据的快速采集

Hive元数据采集 首先以hive举例, hive可以在命令行执行下面命令得到大部分表和字段的元数据, 但因为这样每个都要执行就很慢。 DESCRIBE FORMATTED {tablename} 然后直接尝试从metastore库采集,这里不做metastore具体结构的论述, 想了解详细结构可以移步Hive MetaStore的结构。 因为是按库采集,首先想到的方法是先到通过库获取库......

pynput实现鼠标键盘操作的记录与还原

前言 心血来潮,实现一波记录操作并还原操作,可用的场景说不定还挺多。 这次实现的记录和还原的操作包括 鼠标移动,滚动,左右键 键盘的按下,松开 前期准备 使用pynput就可以完美的实现上面需求,而且用着还挺简单; 具体包详细接口与使用说明看如下图: 具体实现 使用python3编写,在mac环境下运行良好。 ......

讲讲元数据

大数据平台中元数据系统的一些见解

前言 做了一些元数据的系统,分享一些相关的理解与体会。 掺杂个人理解与实操历史,不一定是最佳实践。 元数据定义 元数据一般指的是 定义数据的数据。 对于一个后端系统或者大数据集群来说,基本的元数据就是在执行ddl时产生的各种库表字段等信息。 比如mysql的每个实例会默认有一个叫information_schema的库; 比如hive在运行前都需要配置一个metastore库,一般为mys......