Skip to content

Antlr4 python 使用学习

安装及基本说明

官方网站:ANTLR

语法示例GitHub仓库:antlr/grammars-v4: Grammars written for ANTLR v4; expectation that the grammars are free of actions.

python版本:3.11 官网Python Releases for Windows | Python.org

python antlr4 使用说明:antlr4/doc/python-target.md 在 master ·ANTLR/ANTLR4 --- antlr4/doc/python-target.md at master · antlr/antlr4

简单说明用python的原因,一是不想用java,写着难受;二是这段时间用python多。主要是学习用法,之后改写各种语言也方便。

安装库:antlr4-python3-runtime

分析SQL语句的规划

  1. 表级数据流分析
  2. 识别sql语句的表名字段名称
    1. 能把 * 替换为元数据具体字段
    2. 能把表名编译到字段上去,直接替换表明 as alias 的场景

分析表的数据库记录结构

  1. 记录分析批次,和对象(文件,批量)
  2. 记录分析结果,批次、文件、sql语句、表、关系
表名《分析批次表》
字段中文名称字段类型字段释义
BATCH_ID分析批次varchar(200)处理批次ID主键
OBJ_TYPE对象类型处理对象类型,可能有加工脚本或者接入xml等主键
OBJ_NM对象名称处理对象名称,一般是脚本名主键
OBJ_PATH对象路径
BATCH_ST分析开始时间
BATCH_ET分析结束时间
时间戳timestamp
rmrk备注
表名《分析结果-SQL》
字段中文名称字段类型字段释义
SQL序号ID主键
对象类型主键
对象名称主键
批次ID主键
SQL内容varchar(4000)单SQL语句
表名《分析结果-SQL-表》
字段中文名称字段类型字段释义
SQL序号ID主键
对象类型主键
对象名称主键
批次ID主键
表名主键
表类型
表别名
表中文名
SQL内容varchar(4000)单SQL语句
表名《分析结果-表级关系》
字段中文名称字段类型字段释义
SQL序号ID主键
对象类型主键
对象名称主键
批次ID主键
SQL内容varchar(4000)单SQL语句
源表名主键
目标表
关系
关系类型
关系ID
表名《分析结果-SQL-表-字段》
字段中文名称字段类型字段释义
SQL序号ID主键
对象类型主键
对象名称主键
批次ID主键
表名主键
表类型
表别名
SQL内容varchar(4000)单SQL语句
字段名主键
字段类型
字段中文名
表名《分析结果-字段级关系》
字段中文名称字段类型字段释义
SQL序号ID主键
对象类型主键
对象名称主键
批次ID主键
SQL内容varchar(4000)单SQL语句
源表名
目标表
表级关系
备注
源字段名
目标字段名
字段关系
字段处理源代码
字段关系类型直取/映射/函数加工
ID