官方给的读取CSV示例的Schema模版如下:
{
version: '1.0',
defaultSchema: 'SALES',
schemas: [
{
name: 'SALES',
type: 'custom',
factory: 'org.apache.calcite.adapter.csv.CsvSchemaFactory',
operand: {
directory: 'target/test-classes/sales'
}
}
]
}
该模版给出了schema文件的基本元素
factory
字段指定了operand
字段指定Map<String, Table> getTableMap()
方法
- schema可以自动产出表,在用户自己的Schema类中给出了创建表的方法
- 用户也可以在schema文件中通过
tables
字段创建扩展类型的表- Calcite支持视图和用户表,只需在schema文件中注明
view
或custom
custom
类型的用户表, 表的实现均由用户自己完成(高度可定制化)tables.factory
字段中指定的具体TableFactory类的create()
方法进行实例化TableFactory
接口tables
字段启动
- Calcite supports query optimization by adding planner rules.
- Table scans are the leaves of a query operator tree. The usual implementation is
EnumerableTableScan
- 用户自己实现的
TableScan类
中会注册用户自行添加的规则Rule类
- 用户自己实现的
TableScanRule类
(需要继承RelOptRule抽象类
)负责具体的实现
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ryyc.cn 版权所有 湘ICP备2023022495号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务