openGauss连接器

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

配置

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

connector.name=opengauss
connection-url=jdbc:postgresql://example.net:15400/database
connection-user=root
connection-password=secret

多个openGauss数据库或服务器

openGauss连接器只能访问openGauss服务器中的单个数据库。因此,如果有多个openGauss数据库,或者想要连接到多个openGauss服务器,则必须配置多个openGauss连接器实例。

要添加另一个目录,只需添加另一个属性文件到具有不同名称的etc/catalog中(确保它以.properties结尾)。例如,如果将属性文件命名为sales.properties,openLooKeng将使用配置的连接器创建一个名为sales的目录。

查询openGauss

openGauss连接器为每个openGauss模式提供一个模式。可通过执行SHOW SCHEMAS来查看可用的openGauss模式:

SHOW SCHEMAS FROM opengauss;

如果有一个名为public的openGauss模式,那么可以通过执行SHOW TABLES来查看这个模式中的表:

SHOW TABLES FROM opengauss.public;

可以使用以下方法之一查看数据库publichetutb表中的列的列表:

DESCRIBE opengauss.public.hetutb;
SHOW COLUMNS FROM opengauss.public.hetutb;

最后,可以访问public模式中的hetutb表:

SELECT * FROM opengauss.public.hetutb;

如果对目录属性文件使用不同的名称,请使用该目录名称,而不要使用上述示例中的opengauss

openGauss Update/Delete 支持

使用openGauss连接器创建表

示例:

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

对表执行INSERT

示例:

INSERT INTO opengauss_table
  VALUES
     (1, 'Jack'),
     (2, 'Bob');

对表执行UPDATE

示例:

UPDATE opengauss_table
  SET name='Tim'
  WHERE id=1;

上述示例将列id中值为1所在行的列name的值更新为Tim

UPDATE前的SELECT结果:

lk:default> SELECT * FROM opengauss_table;
id | name
----+------
  1 | Jack
  2 | Bob
(2 rows)

UPDATE后的SELECT结果

lk:default> SELECT * FROM opengauss_table;
 id | name
----+------
  2 | Bob
  1 | Tim
(2 rows)

对表执行DELETE

示例:

DELETE FROM opengauss_table
  WHERE id=2;

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

DELETE前的SELECT结果:

lk:default> SELECT * FROM opengauss_table;
 id | name
----+------
  2 | Bob
  1 | Tim
(2 rows)

DELETE后的SELECT结果:

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

注意

  • openGuass数据库兼容类型为O(即DBCOMPATIBILITY = A)时不支持Date数据类型。
  • openGuass驱动暂不支持将数据库连接设置为只读模式以启用数据库的查询优化。
  • openGuass的Character数据类型单位是字节(例如:VARCHAR(n)数据类型中n是指字节长度),openLooKeng的Character数据类型单位是字符(例如:VARCHAR(n)数据类型中n是指字符长度),openGuass连接器不支持直接使用create-table-as方式创建含Character数据类型数据的表,需要手动指定Character数据类型的字节长度。
  • 不支持配置use-connection-pool
  • 在目录属性文件设置opengauss.metadata.speedup=true可以用于加速DatabaseMetaData查询(缺省值为false)。

openGauss后续版本如果支持上述限制,我们会进行相应的适配。

openGauss连接器限制

暂不支持以下SQL语句:

GRANTREVOKESHOW GRANTSSHOW ROLESSHOW ROLE GRANTS