Dremio对国产数据库的支持使用-阿里云开发者社区

开发者社区> 北斗云> 正文

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

简介: 一.国产数据库调研 Ⅰ).达梦数据库 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称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'

Ⅱ).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

Ⅲ).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"

Ⅳ).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:
        - "="
        - "!="

四.使用说明

  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

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

神通数据库连接器

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Api网关对调试Api的支持
当Consumer在编写代码去调用Api之前,一定要知道Api的入参和返回结果的定义是什么样的,了解的方式基本也就是参考Provider所提供的Api文档。 但是文档上的内容都是静态的,只是通过参数定义说明和返回示例的
2435 0
【emoji表情】阿里云数据库RDS支持emoji表情
前言 由于最近几年移动App的兴起,手机自带表情作为用户输入的方式开始流行。 但是emoji表情作为一种特殊的编码方式,之前的数据库字符编码不能正常显示。 解决 在mysql5.5之后的版本,utf8mb4的编码方式解决了emoji表情和生僻字的编码问题。
2301 0
Fundebug微信小程序BUG监控服务支持Source Map
摘要: 自动还原真实出错位置,快速修复BUG。 Source Map功能 微信小程序的Source Map功能目前只在 iOS 6.7.2 及以上版本支持。 微信小程序在打包时,会将所有 js 代码打包成一个文件,从而减少体积,加快访问速度。
1208 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
3976 0
工信部出台20条措施支持中小企业复工复产渡过难关
2月9日,工信部出台20条措施支持中小企业复工复产渡过难关。
1087 0
+关注
北斗云
风舒云卷,,北斗不移
52
文章
8
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载