这个项目能做什么
SQLGlot 提供了一个无依赖的 SQL 解析器,能够读取多种 SQL 输入,并在目标方言中生成语法和语义正确的 SQL。它包含一个转译器,用于在 DuckDB、Presto/Trino、Spark/Databricks、Snowflake、BigQuery 等多种方言之间转换查询。该库提供了一个优化器,可将查询重写为规范 AST,并提供 AST 内省、差异比较以及程序化构建或修改 SQL 表达式的工具。用户可以提取列和表等元数据,通过详细的错误消息检测语法错误,并通过可配置的警告或错误级别处理不支持的功能。SQLGlot 还包含一个轻量级执行器,用于针对 Python 字典评估 SQL,便于测试和原型设计。通过子类化 Dialect 类可以添加自定义方言,插件方言可以通过入口点分发。性能基准测试显示,纯 Python 版本具有竞争力,而 mypyc 编译变体提供约 3-5 倍的速度提升。该项目被 SQLMesh、Apache Superset、Dagster、Ibis 和 dlt 等工具使用,并提供广泛的文档、测试套件以及可选依赖项(如用于区间简化的 dateutil)。
评论
0 评分人数达到10人后显示
登录后参与讨论。