Skip to main content

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)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page