apache-calcite - Calcite 将 sql 解析为多数据源的部分
问题描述
在我的情况下,我csv+mysql
通过单个 sql 从多个数据源(如)查询数据。使用Calcite如何区分表的数据源并检测表上查询了哪些列?(数据源元数据可用)
我需要的结果类似于:
- TableA(col1, col2, col3) -> 数据源 CSV
- TableB(col1, colx, coly) -> 数据源 Mysql
我的情况类似于 Apache Drill(使用 Calcite)所做的事情,我尝试阅读 Drill 源代码,但我找不到 Drill 决定关系的方式。
String sql = "select c.c1, m.c2 from csv.tbl as c, mysql.schema.tbl as m where c.id = m.id”;
Frameworks.ConfigBuilder configBuilder = Frameworks.newConfigBuilder();
configBuilder.defaultSchema(`my SchemaPlus here`);
FrameworkConfig frameworkConfig = configBuilder.build();
Planner planner = Frameworks.getPlanner(frameworkConfig);
SqlNode sqlNode = planner.parse(sql);
planner.validate(sqlNode);
RelRoot relRoot = planner.rel(sqlNode);
这就是我现在所拥有的,但似乎没有我想要的东西~_~|||
非常感谢。
解决方案
推荐阅读
- swift - 关于 Almofire 上传
- azure-logic-apps - 从 Azure 逻辑应用调用 REST 和点公开为 AKS 中的内部负载平衡 IP
- python - 使用范围作为浮点对象的循环
- amazon-web-services - 想使用 Route53 将裸域名重定向到 www.example.com,我的存储桶在 s3 中,与域同名
- php - 上传文件时如何修复 PostTooLargeException?
- php - 显示当前选择的产品变体
- c++ - Ruby C 扩展 - TypedData_Get_Struct 调用上的 TypeError 不是类型错误
- php - 如何在whatsapp消息中制作一些文本作为链接
- tensorflow - 你能用'keras.utils.to_categorical'在张量流中映射一个数据集吗?
- c# - 如何反序列化其类型被修改为抽象类的二进制格式对象?