
antlr与python
傲慢程序员
脑子里全是偏见的傲慢程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
系列:用python+antlr解析hive sql获得数据血缘关系(四)
目标 系列第三篇里做了基本的AST遍历。 在深入做SQL中的表名列名提取前,还需要先解决第三篇里遗留的两个实用性问题,分号和大小写 分号问题 分号问题的表现是自动生成的HiveParser.java代码,只能解析单个的语句,对包含多个语句的sql文本会报错,甚至连单个语句结尾多一个分号都不行。例如这种 SELECT DISTINCT a1.c1 c2, a1.c3 c4, '' c5 FROM ...原创 2020-01-16 14:19:32 · 3361 阅读 · 3 评论 -
系列:用python+antlr解析hive sql获得数据血缘关系(三)
目标 系列第二篇里利用了HiveParser.g里的pushMsg输出信息,但还没有得到AST(Abstract Syntax Tree抽象语法树 ),不够实用。除了得到AST之外,第二篇末尾还需要解决下面这3个实用性问题 token的大小写问题, Hive里select 和SELECT都能接受 分号问题,也就是必须能解析一个字符串里包含多个sql语句的情况 解析规则,类似insert-sele...原创 2020-01-11 14:28:16 · 2765 阅读 · 0 评论 -
系列:用python+antlr解析hive sql获得数据血缘关系(二)
第一篇里初次跑通了HiveLexer.g, 接下来要尝试处理HiveParser.g 代码修订 为了适应代码目录,和HiveLexer.g类似,也需要对github上下载回来的HiveParser.g做一些处理。 如果直接下载hive的完整源码,并且保持目录结构,这个修改倒也可以省去。不过hive本身太大,而且主要的工作是希望用python做的,所以还是改一改更适合python些。 改动处Hive...原创 2020-01-07 10:24:46 · 3653 阅读 · 1 评论 -
系列:用python+antlr解析hive sql获得数据血缘关系(一)
工作刚开始,边学边记,预计不止两篇三篇的,先提个系列 系列目标 编程获得数据血缘关系的需求对数据仓库来说并不普遍,只有数据规模达到很大的程度,或者存在复杂数据生产关系的报表数量增加到很大的程度,单独的数据血缘关系工作才有必要。 在规模没达到之前,人工的识别和管理是更经济有效的。 本系列想要做到的目标是这个uber的 queryparser的一个子集,在有限知道目标数据表结构的前提下,发现并记录目标...原创 2020-01-03 22:29:04 · 7630 阅读 · 2 评论