跨引擎数据交换
对于混搭架构的应用而言,数据清洗和历史数据管理是最常见的业务场景。 从 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 支持单语句事务,混合引擎交互写操作时采用自动提交当前事 务的模式。




