前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Calcite系列(四):核心概念-Adapter

Calcite系列(四):核心概念-Adapter

原创
作者头像
Yiwenwu
修改2024-04-17 09:48:50
2150
修改2024-04-17 09:48:50
举报
文章被收录于专栏:Calcite剖析Calcite剖析

狭义理解

Calcite作为SQL中间件,为提供扩展性并适配不同数据源,提供了Adapter(适配器)方式对接数据源并根据数据源特性进行查询优化。

狭义上,Adapter是实现SchemaFactory接口,如下图所示,Calcite允许读取不同Model类型定义的数据,并将数据以Schema形式展示。其中Schema定义为Calcite的关系对象,包括Table(表),Function(函数),SubSchema(多层级Catalog)和Expression(表达式)。

Calcite Model可基于Json文件定义Schema,用于描述数据源中Schema的相关信息。基于JsonSchema对象实现各个要素定义,如图所示,JsonSchema可根据【type】表示不同的子类实现,主要包括:

  • custom:JsonCustomSchema,自定义类型,测试常用类型
  • map:JsonMapSchema,Map类型
  • jdbc:JsonJdbcSchema,JDBC连接类型

custom类型的Json Model定义示例:

代码语言:json
复制
{
  "version": "1.0",
  "defaultSchema": "SALES",
  "schemas": [
    {
      "name": "SALES",
      "type": "custom",
      “factory”: "org.apache.calcite.adapter.csv.CsvFactory",
      "operand": {
        "directory": "sales"
      },
      "tables": [
        {
          "name": "FEMALE_EMPS",
          "type": "view",
          "sql": "SELECT * FROM emps WHERE gender = 'F'"
        }
      ],
      "materializations": [
        {
          "table": "MV_01",
          "sql": "SELECT * FROM emps WHERE gender = 'F'"
        } ] } ]
}

广义理解

广义上,Adapter适配器是Calcite实现跨源查询的基础框架,支持将于跨源无关的计算下推到数据源执行,主要由三部分组成:

  1. Schema模式与SchemaFactory:定义Schema创建方式
  2. 关系代数节点:表示特定Adapter类型的关系代数和Converter节点
  3. 规则集合:用于Calling Convention,可将计算节点的Convention转换为特定数据源相关的Adapter Convention

Calcite以内置多种类型的Adapter实现,其中最常用的是Jdbc Adapter,用于适配不同JDBC数据源的加载和计算。Jdbc Adapter 的整体实现要素包括:

1. JdbcSchema & Factory (Schema)

2. JdbcRel、JdbcToEnumerableConverter等 (RelNode,关系代数节点)

3. JdbcConverterRule (RelRule,规则集合)

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 狭义理解
  • 广义理解
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术对外提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、presto、Iceberg、Alluxio 等,以快速构建企业级数据湖、数据仓库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档

http://www.vxiaotou.com