GBase 8c的预装扩展插件及其使用方法

0    22    1

Tags:

👉 本文共约3982个字,系统预计阅读时间或需15分钟。

GBase 8c简介

为解决传统的集中式数据库对高并发、高吞吐量的需求支持能力不足,满足金融核心系统对数据库的性能、稳定性和安全性的严苛要求,南大通用集十多年分布式开发经验积累,于2022年全新发布了一款适合OLTP领域应用的多模多态的分布式数据库GBase 8c。

GBase 8c是基于openGauss 3.0.0构建的一款多模多态的分布式数据库,支持行存、列存、内存等多种存储模式和单机、主备与分布式等多种部署形态。GBase 8c具备高性能、高可用、弹性伸缩、高安全性等特性,支持强一致性的分布式事务,支持主流的RC和RR的事务隔离级别。可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务。

GBase 8c 扩展插件列表

在 CN 节点连接 GBase 8c 数据库,可以查看到 GBase 8c 共提供了 25 个可用插件,并且默认已安装 10 个。
下面将逐一分析这10个预装扩展。

GBase 8c的预装扩展插件及其使用方法

GBase 8c的预装扩展插件及其使用方法

1. dist_fdw

从dist_fdw的命名不难看出是一个 fdw (Foreign Data Wrapper),外部数据包装器。

安装dist fdw之后,会提供两个内置方法。

通过元命令 \des 可以查看当前已经创建的 fwd server。

dist fdw 运行与 gauss 内核中,在DB初始化后会自动安装,并创建了一个名为gsmpp_server的服务,可用于创建位于分布式存储的外部表。

例如:

这里的外部存储也可以是OBS(Object Storage Service)。
对象存储服务,是一个基于对象的存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。


2. file_fdw

在 GBase 8c 中,只是预装了 file_fdw,并且预设了 gsmpp_errorinfo_server ,但并没有调用者。

file_fdw 是从 PostgreSQL 移植过来的插件,是 PostgreSQL 在 9.1 版本发布的一款 FDW,
它能被用来访问服务器的文件系统中的数据文件,或者服务器上执行程序并读取它们的输出。 数据文件或程序输出必须是能够被COPY FROM读取的格式。

比如可以读取服务器上的日志文件。

GBase 8c的预装扩展插件及其使用方法


3. gsredistribute

GBase 8c 是分布式数据库,支持 CN, DN 节点。 当启用多节点模式时,需要加载扩展: gsredistribute

与该扩展相关的命令有: gs_redis ,该命令用于扩展节点时数据重分布。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

GBase 8c的预装扩展插件及其使用方法

以下函数为重分布期间gs_redis工具所用的系统函数,用户不要主动调用:

以下函数均针对时序表,所指oid均只针对时序表:


4. hdfs_fdw

hdfs_fdw 是 EDB 开源的一款扩展插件,支持 PostgreSQL 11 ~ 15.

hdfs fdw 用于创建外部服务器,存储HDFS集群信息、OBS服务器信息或其他同构集群信息,可连接 apache hadoop, hive, spark。

在 GBase 8c 中,分区表进程也会用到 hdfs_fdw 。


5. hstore

hstore 是 PostgreSQL 8.2 引入的扩展,该模块实现了 hstore 数据类型,
用于在单个PostgreSQL值中存储键/值对集。
这在各种场景中都很有用,比如具有许多很少检查的属性的行,或者半结构化数据。
当前数据库中具有CREATE权限的普通用户即可创建该模块。


6. log_fdw

查阅资料发现目前有两个版本的 log fdw。
一个是 aws 开源的版本,用于 aws rds,可更加便利的读取数据库日志,从DB中通过外部表的方式直接用sql查询日志文件内容。

另一个是 openGauss 中的 log fdw, 可以查询集群日志,如下图,可以在 8c 中查询 数据节点的日志信息。

GBase 8c的预装扩展插件及其使用方法

GBase 8c的预装扩展插件及其使用方法


7. mot_fdw

mot fdw 用于创建 MOT 表。
MOT, Memory Optimized Table, 内存优化表存储引擎,表示表的数据将以内存的形式存储。
MOT 内存适用于高吞吐事务处理,性能瓶颈加速,消除中间层缓存,大规模流数据提取。

GBase 8c的预装扩展插件及其使用方法

启用 mot 表,需要在安装节点 执行 gs_guc 命令 修改数据库参数。

在创建MOT表时,[server mot_server]部分是可选的,因为MOT是一个集成的引擎,而不是一个独立的服务器。

但是,MOT通过 mot_fdw 与 gbase 8c 集成,需要授权用户权限。


8. orafce

orafce 是 PostgreSQL 中“知名”扩展,已支持 PostgreSQL 15。

"orafce"项目在Postgres中实现了Oracle数据库中缺失的一些函数(或行为不同)。
这个模块包含了一些实用的函数,Oracle PL/SQL 子程序的子集和安装包可,以帮助将Oracle应用程序移植到 PostgreSQL 或 GBase 8c。
内置的Oracle日期函数已经在Oracle 10上进行了一致性测试。 从1960年到2070年的日期可以正常工作。 由于Oracle中的一个错误,无法验证1100-03-01之前的日期。

安装插件:

现在orafce已经包含了如下内容:

  1. 类型 date, varchar2 and nvarchar2
  2. 函数 concat, nvl, nvl2, lnnvl, decode, bitand, nanvl, sinh, cosh, tanh and oracle.substr
  3. dual 表
  4. package: dbms_alert, dbms_pipe, utl_file, dbms_output, dbms_random, date, operations, dual

使用 orafce 前:

使用 orafce 后:


9. plpgsql

PL/pgSQL是一种用于PostgreSQL数据库系统的可载入的过程语言。
在PostgreSQL 9.0 和以后的版本中,PL/pgSQL是默认被安装的。但是它仍然是一种可载入模块,因此特别关注安全性的管理员可以选择移除它。
PL/pgSQL与 PL/SQL 在许多方面都非常类似。它是一种块结构的、命令式的语言并且所有变量必须先被声明。

举个栗子:


10. security_plugin

security_plugin 是 GBase 8c 中的数据动态脱敏插件。

当系统接收到查询命令时,security_plugin将在解析器中拦截语义分析生成的查询树(Query),首先根据用户登录信息(用户名、客户端、IP)筛选出满足用户场景的脱敏策略。由于脱敏策略是基于(仅包含表列的)资源标签配置的,因此需要判断查询树的目标节点是否属于某个资源标签,然后将识别到的资源标签与脱敏策略相匹配,根据策略内容将查询树目标节点改写,最终将查询树返还给解析器。
security_plugin模块由于内置查询树脱敏方式,数据访问者不会感知内置安全策略重写查询树的过程,如同执行普通查询一样去访问数据,同时保护数据隐私。

  1. 打开内置安全策略[ 默认off ]

  1. 创建测试表及数据
  • 创建测试表person

GBase 8c的预装扩展插件及其使用方法

  • 创建测试表orders

GBase 8c的预装扩展插件及其使用方法

  1. 策略配置
  • 创建资源标签【对表的敏感字段添加资源标签(需要拥有poladmin权限)】

  • 创建策略

  • 验证结果

GBase 8c的预装扩展插件及其使用方法

  • 查询策略label

GBase 8c的预装扩展插件及其使用方法

更多例子可以参考: openGauss 数据动态脱敏


11. pg_hint_plan

GBase 8c 中不提供 pg_hint_plan 扩展,但是原生支持 Plan Hint 功能。

PostgreSQL 社区不考虑引入 hint 功能,所以在 PostgreSQL 中可以用 pg_hint_plan 扩展来支持该功能,但是在 GBase 8c 中,已经在内核级别融入了 hint 功能。

在 GBase 8c 中,Plan Hint 为用户提供了直接影响执行计划的手段,用户可以通过指定 join 顺序,join、scan 方法,指定行数等手段来进行执行计划调优,以提升查询性能。
并从以下几个范围来支持 Plan Hint 的使用:

‒ 指定 join 方式;
‒ 指定 join 顺序;
‒ 指定行数;
‒ 指定 scan 方式;
‒ 指定链接块名;
‒ custom plan 和 generic plan 选择的 hint;
‒ 指定子查询不扩展;


总结

本文介绍了 GBase 8c 中预装的 10 个扩展插件,并对其中部分插件做了功能演示。

GBase 8c 具备分布式事务强一致性、计算能力和存储能力线性扩展的核心能力;同时支持多地多中心和异地多活,提供99.999%的高可用性,这其中,GBase 8c 所预装的10款插件也起到了强大的支撑作用。

参考

https://www.modb.pro/db/621128

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部