# sql-parser-lineage **Repository Path**: kungraph/sql-parser-lineage ## Basic Information - **Project Name**: sql-parser-lineage - **Description**: 基于antlr4的sql解析 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2023-12-20 - **Last Updated**: 2023-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 说明:基于 [sql-parser](https://github.com/webgjc/sql-parser)的二开 # sql-parser-lineage 基于antlr4的sql解析,实现格式化,元数据,血源等自定义解析`DorisSQL`,理论上可以微调`.g4`文件可以实现`任意数据库类型SQL`的解析。 # 相关DEMO **现已支持SQL类行如下** > 路径:src/test/java/com/sql/parser/lineage/demo/doris ## 1. demo1.sql ```sql INSERT into `db_test`.`table_result` SELECT `t1`.`id` + `t2`.`id` AS `idff`, `t2`.`name` FROM (SELECT `id1` + `id2` AS `id` FROM `db_test`.`table1`) `t1` LEFT JOIN ( SELECT `id`, `name` FROM ( SELECT `t11`.`id`, `t11`.`sourcename` AS `name` FROM (SELECT `idd` AS `id`, `sourcename` FROM `db_test`.`table2`) `t11` ) ) `t2` ON `t1`.`id` = `t2`.`id` ; ``` > 解析效果 ```json [ { "sourceFields": [ { "dbName": "db_test", "fieldName": "id1", "process": null, "tableName": "table1" }, { "dbName": "db_test", "fieldName": "id2", "process": null, "tableName": "table1" }, { "dbName": "db_test", "fieldName": "idd", "process": null, "tableName": "table2" } ], "targetField": { "dbName": "db_test", "fieldName": "idff", "tableName": "table_result" } }, { "sourceFields": [ { "dbName": "db_test", "fieldName": "sourcename", "process": null, "tableName": "table2" } ], "targetField": { "dbName": "db_test", "fieldName": "name", "tableName": "table_result" } } ] ``` ## 使用说明 下载安装[antlr4](https://www.antlr.org/index.html) idea装antlr4插件调试 antlr.xxx.xxx.g4 中的规则 ## 微信交流联系方式 ![微信联系方式](./图片/微信名片.jpg)