DM(达梦数据库)连接器

概述

DM连接器允许在外部DM数据库中查询和创建表。这可用于在DM和Hive等不同系统之间或在两个不同的DM实例之间联接数据。

配置

首先,在开始使用DM连接器之前,应该先完成以下步骤:

  • 用于连接DM的JDBC连接详情

要配置DM连接器,在etc/catalog中创建一个目录属性文件,例如dameng.properties。使用以下内容创建文件,并根据设置替换连接属性:

connector.name=dameng
connection-url=jdbc:dm://主机:端口/SYSDBA
connection-user=用户名
connection-password=密码
  • 添加DM的JDBC驱动

DM JDBC驱动不在普通存储库中提供,如果您是DM数据库的用户,您可以选择前往DM官方网站,在确保遵守DM JDBC驱动所适用的license的条件下,下载和安装DM JDBC驱动到存储库中。DM JDBC驱动(DmJdbcDriverX.jar X为数字,根据DM的版本不同而不同)可能会作为DM客户端安装的一部分进行安装。获取了DM JDBC驱动后,您可以将jdbc jar文件部署到协调节点和工作节点上的openLooKeng插件文件夹中。例如,jdbc驱动文件为DmJdbcDriverX.jar,openLooKeng插件包文件夹为 /opt/hetu-server/plugin,则拷贝命令如下: cp DmJdbcDriverX.jar /opt/hetu-server/plugin/dm。重启协调节点和工作节点进程,DM连接器即可正常工作。

  • 是否开启查询下推功能

如果要启用DM连接器的连接器下推功能,不需要做任何操作,DM连接器的下推功能默认是打开的。但也可以按如下设置:

jdbc.pushdown-enabled=true
#true表示打开下推,false表示关闭。
  • 下推模式选择。

如果要启用DM连接器的全部下推功能,不需要做任何操作,DM连接器的下推模式默认是全部下推的。但也可以按如下设置:

jdbc.pushdown-module=FULL_PUSHDOWN
#FULL_PUSHDOWN,表示全部下推;BASE_PUSHDOWN,表示部分下推,其中部分下推是指filter/aggregation/limit/topN/project这些可以下推。
  • 更多配置

由于达梦数据库和Oracle同源,在实现DM连接器时,复用了Oracle连接器的部分配置,具体配置可参考ORACLE

通过openLooKeng查询DM

对于名为dameng的DM连接器,每个DM数据库的用户都可以通过DM连接器获取其可用的模式,命令为SHOW SCHEMAS

SHOW SCHEMAS FROM dameng;

如果已经拥有了可用模式,可以通过SHOW TABLES命令查看名为data的DM数据库拥有的表:

SHOW TABLES FROM dameng.data;

若要查看数据模式中名为hello的表中的列的列表,请使用以下命令中的一种:

DESCRIBE dameng.data.hello;
SHOW COLUMNS FROM dameng.data.hello;

你可以访问数据模式中的hello表:

SELECT * FROM dameng.data.hello;

连接器在这些模式中的权限是在连接属性文件中配置的用户的权限。如果用户无法访问这些表,则特定的连接器将无法访问这些表。

DM Update/Delete 支持

使用DM连接器创建表

示例:

CREATE TABLE dameng_table (
    id int,
    name varchar(255));

对表执行INSERT

示例:

INSERT INTO dameng_table
  VALUES
     (1, 'foo'),
     (2, 'bar');

对表执行UPDATE

示例:

UPDATE dameng_table
  SET name='john'
  WHERE id=2;

上述示例将值为2的列id的行的列name的值更新为john

UPDATE前的SELECT结果:

lk:default> SELECT * FROM dameng_table;
id | name
----+------
  2 | bar
  1 | foo
(2 rows)

UPDATE后的SELECT结果

lk:default> SELECT * FROM dameng_table;
 id | name
----+------
  2 | john
  1 | foo
(2 rows)

对表执行DELETE

示例:

DELETE FROM dameng_table
  WHERE id=2;

以上示例删除了值为2的列id的行。

DELETE前的SELECT结果:

lk:default> SELECT * FROM dameng_table;
 id | name
----+------
  2 | john
  1 | foo
(2 rows)

DELETE后的SELECT结果:

lk:default> SELECT * FROM dameng_table;
 id | name
----+------
  1 | foo
(1 row)

DM连接器的限制

  • openLooKeng支持连接DM8。

  • DM连接器暂不支持Update下推功能。

有奖捉虫

“有虫”文档片段

0/500

存在的问题

文档存在风险与错误

● 拼写,格式,无效链接等错误;

● 技术原理、功能、规格等描述和软件不一致,存在错误;

● 原理图、架构图等存在错误;

● 版本号不匹配:文档版本或内容描述和实际软件不一致;

● 对重要数据或系统存在风险的操作,缺少安全提示;

● 排版不美观,影响阅读;

内容描述不清晰

● 描述存在歧义;

● 图形、表格、文字等晦涩难懂;

● 逻辑不清晰,该分类、分项、分步骤的没有给出;

内容获取有困难

● 很难通过搜索引擎,openLooKeng官网,相关博客找到所需内容;

示例代码错误

● 命令、命令参数等错误;

● 命令无法执行或无法完成对应功能;

内容有缺失

● 关键步骤错误或缺失,无法指导用户完成任务,比如安装、配置、部署等;

● 逻辑不清晰,该分类、分项、分步骤的没有给出

● 图形、表格、文字等晦涩难懂

● 缺少必要的前提条件、注意事项等;

● 描述存在歧义

0/500

您对文档的总体满意度

非常不满意
非常满意

请问是什么原因让您参与到这个问题中

您的邮箱

创Issue赢奖品
根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
有奖捉虫