Dremio對國產數據庫的支持使用

一.國產數據庫調研

Ⅰ).達夢數據庫

達夢數據庫管理系統是達夢公司推出的具有完全自主知識產權的高性能數據庫管理系統,簡稱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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章