在我的情况下,我正在通过单个sql从多个数据源(例如csv+mysql
)中查询数据。如何使用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);
这就是我现在所拥有的,但是似乎我什么都不想要〜_〜|||
非常感谢。