SQL解析器:提供词法解析、句法解析和不同SQL类型翻译的功能
Project description
sql-tree:SQL 解析器
安装方法
pip install metasequoia-sql
使用方法
词法分析
对 SQL 语句进行句法分析,将 SQL 语句中的每个部分拆分为一个抽象语法树节点(详见 demo_1):
from metasequoia_sql.ast import ASTParser
root = ASTParser("your sql").parse()
句法分析
对 SQL 语句进行语法分析,将 SQL 语句转化为对应可操作的对象(详见 demo_2):
from metasequoia_sql.parser.mysql_parser import parse_mysql_create_table_statement
statement = parse_mysql_create_table_statement("your sql")
翻译工具
将 MySQL 的 CREATE TABLE 语句转换为 Hive 的 CREATE TABLE 语句:
from metasequoia_sql.parser.mysql_parser import parse_mysql_create_table_statement
from metasequoia_sql.translate import *
statement = ddl_create_table_statement_to_hive(
ddl_create_table_statement_from_mysql(parse_mysql_create_table_statement("your sql")))
实现原理
SQL 解析原理:将词法分析与句法分析分离,对所有 SQL 语句进行词法分析,然后对不同的 SQL 语句类型使用不同的句法分析方法。
不同 DataSource 的 SQL 语句转换方法: 先从特定 DataSource 的 SQL 转化为包含所有数据库特性的 FullStatement,然后再从 FullStatement 转化为另一个 DataSource 的 SQl。通过这样的处理,可以避免开发网状结构的转换器,而只需要开发星星转换器即可。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
metasequoia-sql-0.0.1.tar.gz
(17.1 kB
view hashes)