Dremio对国产数据库的支持使用

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 一.国产数据库调研 Ⅰ).达梦数据库 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是8.1.0版本,简称DM8。 DM8吸收借鉴当前先进新技术思想与主流数据库产品的优点,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。

一.国产数据库调研

Ⅰ).达梦数据库

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是8.1.0版本,简称DM8。

DM8吸收借鉴当前先进新技术思想与主流数据库产品的优点,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。一个数据库,满足用户多种需求,让用户能更加专注于业务发展。

Ⅱ).神通数据库

神通数据库是天津神舟通用数据技术有限公司(简称“神舟通用公司”)拥有自主知识产权的企业级、大型通用关系型数据库管理系统,是神舟通用公司多年的大型数据库领域研发积累和深厚的航天信息化建设经验的集中体现,也是国家“核高基”重大专项、国家“863”计划大力支持基础软件领域发展所取得的一项重要成果。

神通数据库已经在政府、电信、电力、国防、军工、教育等行业得到了大量应用,可靠稳定的支撑了政府机关和企事业单位的数据业务平台。神通数据库最新版本是7.0.8

Ⅲ).人大金仓数据库

金仓数据库KingbaseES是人大金仓的核心产品,具有大型通用、"三高"(高可靠、高性能、高安全)、"两易"(易管理、易使用)、运行稳定等特点,是唯一入选国家自主创新产品目录的数据库产品,也是国家级、省部级实际项目中应用最广泛的国产数据库产品。

金仓数据库KingbaseES面向企业级关键业务应用,充分满足数据库系统高稳定性、高可靠性以及高性能的要求,内置高可用功能,提供高效查询优化策略和多样化数据缓存机制,支持并行处理和集群架构,具有完备的数据分区支持和海量数据管理能力,提供直观易用的系统监控手段,并与第三方数据库高度兼容,广泛支持业内主流中间件及其它应用,配备专业高效的技术服务团队,让国产数据库产品面对企业级关键业务应用更加从容和得心应手。

Ⅳ).南大通用数据库

南大通用数据库是天津南大通用数据技术股份有限公司研发的是国产数据库,南大通用数据库主要包括一下几部分产品

1).GBase 8a

GBase 8a是大数据时代成熟的分析型MPP数据库,是国内分析型数据库主导性产品,并与国外同类主流产品保持技术同步、市场同级。以大规模并行处理、列存储,高压缩和智能索引技术为基础,具有满足各个数据密集型行业日益增大的数据分析、数据挖掘、数据备份和即席查询等需求的能力。

2).GBase 8t

GBase 8t是支撑高端业务的事务型数据库,通过中国信息安全认证中心的安全可靠认证,并在高可用、灾备、空间数据、时序数据等方面技高一筹。

3).GBase 8m

GBase 8m是MPP架构的全内存数据库,采用多核、多进程、大内存、SSD等最新硬件技术,比同类内存数据库的性能有了大幅度的提升。

4).GBase UP

GBase UP作为统一数据平台,将事务型数据库、MPP数据库、Hadoop、Spark等不同类型的数据组织管理技术和数据处理技术融合在一起,并对外提供统一的服务,从而形成统一的数据平台。

5).InfiniData

InfiniData是基于x86的超融合架构数据库一体机,提供了灵活的软硬件配置方案,在帮助用户平滑地将业务过渡到新的数据库架构的同时带来超高的性价比。

二.数据库连接器支持实现

Ⅰ).数据库连接器说明

Dremio Hub为各种数据源提供了社区支持的连接器,并且可以创建自己的连接器。充分利用Dremio的速度和易用性,同时能够与任何其他数据源集成。

Advanced Relational Pushdown(ARP)框架允许为具有JDBC驱动程序并接受SQL作为查询语言的任何数据源创建Dremio插件。它允许使用几乎没有代码的插件创建方式,允许使用配置文件修改Dremio发出的查询。

Ⅱ).实现原理

  1. dremio-ce-jdbc-plugin通过加载/jars目录中的数据库连接器插件及依赖在/jars/3rdparty目录中的jar,来获取连接器信息
  2. 自定义数据库连接器通过dremio-ce-jdbc-plugin包中AbstractArpConf. loadArpFile来加载ARP定义文件(resources/arp/implementation/*-arp.yaml)
  3. 在自定义的DataSourceConf中使用注解@SourceType(value=”SourceName” lable=”show source name”)
  4. 使用注解@NotBlank()、@Tag()、@DisplayMetadata()、@NotMetadataImpacting()等,定义配置ip、port、username、password、database、fetchSize等信息
  5. 在toJdbcConnectionString方法中,拼接数据库连接字符串

三.ARP文件格式说明

文件目录:resources/arp/implementation/*-arp.yaml,文件内容主要包括metadata、syntax、data_types和relational_algebra,具体说明如下:

Ⅰ).metadata

元数据主要用来定义数据库连接器名字和API访问

metadata:
  # Manually Configured Metadata Section.
  name: SHENTONG
  apiname: shentong
  spec_version: '1'
AI 代码解读

Ⅱ).syntax

句法部分主要配置常规语法项,如标识符、长度限制、是否支持schema和catalog等信息

syntax:
  # Manually Configured Syntax Section.
  identifier_quote: '"'
  identifier_length_limit: 128
  allows_boolean_literal: true
  map_boolean_literal_to_bit: false
  supports_catalogs: false
  supports_schemas: true
AI 代码解读

Ⅲ).data_types

数据类型用来定义数据库连接器的jdbc驱动程序支持的数据类型与Dremio数据类型的映射关系

data_types:
  mappings:
    # Manually Configured Data Types Mappings Section.
    - source:
        name: "int"
      dremio:
        name: "integer"
      required_cast_arguments: "none"
    - source:
        name: "smallint"
      dremio:
        name: "integer"
      required_cast_arguments: "none"
AI 代码解读

Ⅳ).relational_algebra

relational_algebra用来定义聚合、关联、分组、排序、表达式、函数以及运算符等相关信息

relational_algebra:
  aggregation:
    enable: true
    group_by_ordinal: false
    distinct: true
    count_functions:
      count_star:
        enable: true
      count:
        enable: true
  except:
    enable: true
  project:
    enable: true
  join:
    enable: true
    cross:
      enable: true
      rewrite: "{0}, {1}"

# Describe the set of function signatures that are internally supported.
expressions:
  subqueries:
    correlated: true
    scalar: true
    in_clause: true
  supports_case: true
  supports_over: false
  operators:
    - names:
        - "="
        - "!="
AI 代码解读

四.使用说明

  1. 编译,在项目目录下运行,命令:mvn clean install
  2. 将生成的jar放到dremio的jars目录中
  3. 将JDBC依赖的jar包放到dremio的jars/3rdparty目录中
  4. 启动dremio

五.常用数据库连接列表

DataSource JDBC URL DriverName Port
达梦 jdbc:dm://ip:port dm.jdbc.driver.DmDriver 5236
神舟通用 jdbc:oscar://ip:port com.oscar.Driver 2003
人大金仓 jdbc:kingbase8://ip:port com.kingbase8.Driver 54321
南大通用 jdbc:gbase://ip:port com.gbase.jdbc.Driver 5258
SQL Server jdbc:sqlserver://ip:port;DatabaseName=database com.microsoft.jdbc.sqlserver.SQLServerDriver 1433
SQLite path org.sqlite.JDBC

六.神通数据库连接器代码

神通数据库连接器

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
打赏
0
0
0
2
17
分享
相关文章
数据库国产化选型?YashanDB 给中大型企业的五个答案
近两年,“国产数据库”成为企业数字化升级的重要议题。YashanDB作为新一代国产关系型数据库,以完整产品矩阵解决企业核心关切:通过图形化工具提升开发效率;提供自动化迁移平台简化数据库切换;云管理工具减轻运维负担;支持复杂业务场景;拥有成熟团队保障企业级服务。YashanDB不仅是“可替代”,更是“更可靠”的选择,助力企业实现高效、可控的数据库升级。
【亲测有用】数据集成平台能力演示(支持国产数据库DaMeng与KingBase)
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
【亲测有用】数据集成平台能力演示(支持国产数据库DaMeng与KingBase)
【Meetup回顾 第1期】竟是这样的国产数据库,YashanDB技术内幕曝光
YashanDB是一款基于统一内核,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景的新型数据库系统;YashanDB同时提供开发平台、运维平台和迁移平台3大工具平台以满足数据全生命周期管理。
64 2
【Meetup回顾 第1期】竟是这样的国产数据库,YashanDB技术内幕曝光
1月17日|阿里云云谷园区,PolarDB V2.0技术沙龙,畅聊国产数据库
为了助力国产化项目顺利推进,阿里云邀请企业开发者和数据库负责人到云谷园区,与PolarDB V2.0技术专家面对面交流。扫描海报二维码报名,我们将根据信息为您申请入园。欢迎参与,共同探讨PolarDB的最新技术和应用!
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
417 4
国产数据实战之docker部署MyWebSQL数据库管理工具
国产数据库的发展趋势是什么?
【8月更文挑战第26天】国产数据库的发展趋势是什么?
191 15
国产动漫|基于Springboot的国产动漫网站设计与实现(源码+数据库+文档)
国产动漫|基于Springboot的国产动漫网站设计与实现(源码+数据库+文档)
321 0
面对多种国产数据库,如何选择合适的技术栈和发展方向
面对多种国产数据库,如何选择合适的技术栈和发展方向
228 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等