异构引擎透明访问
GBase UP 数据平台中 GBase 8a MPP、GBase 8t、Hive on Spark 都是数据 存储和数据计算的引擎,DBA 可以将各种引擎构建为统一的 Schema,对于普通 的用户的 DML 查询,引擎是透明的。
扩展标准 SQL DDL 中的创建表的语法:
创建表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]
[database_name.] table_name
(column_definition [,column_definition], ... [, key_options])
[table_options];
其中
table_options:
[DEFAULT] Engine = GBase8a| GBase8t|Hive
| SQL 92 create table options
| GBase 8a create table options 方言
| GBase 8t create table options 方言
| Hive create table options 方言
即 DBA 创建数据表时,可以通过 Engine 关键字设置表的存储引擎。应用开 发工程师,编写数据读写时,无需关注数据表的引擎,采用标准 SQL92 DML 访 问,从而简化应用开发,降低数据建模的复杂度。
跨引擎数据交换
对于混搭架构的应用而言,数据清洗和历史数据管理是最常见的业务场景。 从 Hadoop 中执行复杂的信息分析算法,从大规模,低价值数据中抽取大规模高 价值数据,接着存入 MPP 数据库进行高性能分析。以及在 MPP 的数据按时间或 者其他条件逐渐老化,将部分“冷数据”转存到低成本的 Hadoop 集群,在必要 时进行历史数据查询。 在 GBase UP 中,数据清洗和历史数据管理就可以分别简化为:
代码示意:
Insert into t_8a select …(单表或者复杂多表查询)
Insert into t_hive select …(单表或者复杂多表查询)
UP 的核心技术是构建引擎间高吞吐率的多对多通讯机制,通过底层的数据 交换,实现引擎间高效的数据迁移。
跨引擎关联查询
与数据清洗和历史数据管理相比,更加灵活的业务场景是:实时进行跨引 擎的关联查询。如最简单的:
代码示意: Select * from t_8a inner join t_hive on t_8a.no = t_hive.no where …
其中 t_8a 为 8a mpp 数据引擎表,t_hive 为 Hadoop hive 引擎表。
GBaseUP 构建了基于规则和成本的优化器,能够既充分利用各自引擎的特 色运算,又能保证在引擎间交互的数据最小化,同时利用高效的数据交换总线, 从而实现自动优化的引擎间实时关联分析。
DML 操作的事务管理依赖具体引擎,如果每个引擎都支持标准的 XA,则 GBase UP 整体支持事务,当前 GBase 8t 支持 XA,而 GBase 8aMPP 和 Hive 虽然 都支持 ACID,但是都不支持 XA,所以在单引擎操作时 GBase 8a MPP 支持多语句长事务,Hive 支持单语句事务,混合引擎交互写操作时采用自动提交当前事 务的模式。




