大数据开发的至简之道 – 河图引擎

举报
jiwen 发表于 2020/02/12 12:17:44 2020/02/12
【摘要】 大数据发展日新月异,多种组件琳琅满目,开发人员可以像搭建积木式地搭建一个大数据解决方案。然而,这种积木式的方式也存在选型难,数据孤岛以及开发成本等问题。华为公司首创的大数据库引擎 - 河图引擎 (HetuEngine),提出了“四个一”理念,旨在化繁为简,为大数据开发人员提供了一种至简至易的开发方式。

现在“大数据(Big Data)”应该不是什么神秘词汇了,每个开发者都能够或多或少地就一些专业名词而侃侃而谈,例如Hadoop生态,存算分离,内存计算引擎等。这一切得益于大数据生态的日新月异,开源社区的极高活跃度,使得大数据呈现百花齐放百家争鸣的状态。正如以下这张经典的大数据技术全貌图:

1581476284843368.png

图1. 大数据全貌图


面对如此丰富的组件库,工程师们能够犹如搭建乐高积木一般地构建一套大数据解决方案。然而随着业务的推进,这种“乐高式”的大数据解决方案的弊端逐渐暴露:

1.     选型难 – 组件多且开发方式和语言有差异,如何做好兼容,又如何不被绑死在一个组件是个困难点。

2.     数据孤岛 – 组件之间互通不佳,陷入“找数据难,取数据难,数据搬移,数据膨胀”的陷阱。

3.  开发门槛高 – 组件的开发语言不同,北向接口不一致,大大增加了开发人员的开发成本和技术门槛。

1581475604847220.png


图2. 积木式大数据框架的弊端



是时候重新审视这种“乐高式”方案了

      华为公司首创的大数据库引擎 - 河图引擎 (HetuEngine),为大数据开发人员提供了一种至简至易的开发方式。河图引擎吸收了华为在大数据深耕多年的经验,站在Presto 和Impala 两大巨人的肩膀上,集大家之长,创新地提出了“四个一”理念:

“一个入口、一个目录、一份数据、统一安全”


1581475604445761.png

图3. 河图引擎的“四个一”


1.     一个入口: 提供兼容ISO/ ANSI SQL:2003 标准的SQL语法,统一的JDBC, ODBC 以及REST 北向接口,解决开发人员取数据难的问题。

2.     一个目录: 构建南向异构异地数据源的全局数据视图,让开发人员能够一眼看到全局数据,解决找数据的难的问题。

3.     一份数据:通过开放数据连接框架,统一接入南向数据源,解决用数难问题。

4.     统一安全:让数据的访问控制更加集中,更加细粒度。权限分配也更加便捷高效。


对于开发人员来说,一个入口保证了开发的极简体验。通过标准SQL语法,屏蔽了底层数据源的差异,减少了开发人员的学习成本,以及在多种语言规范和编程方式之间的切换的代价。

      更重要的是,一个统一的入口,使得跨大数据引擎协同计算和分析变得更加高效。 一条SQL 语句可以同时计算HDFS、MPPDB、RDBMS的数据,并且具备跨中心/跨域/跨云异构协同计算能力,可以实现真正的数据的0搬迁。此外,对已有的技术和资产投资破坏性小,这对开发人来说也是非常经济的。



案例分析

接下来,我们模拟一个批流融合查询的场景。

场景简化为,假设某政务系统需要实时处理公司提交各项申请,在处理申请之前必须进行信息核查以及征信筛查。公司用户提交的申请信息通过Kafka消息队列发送到系统,而公司信息表和公司的历史征信记录表都存放在Hive数仓中。

     实时提取核查后的数据是这个问题的重点,一个通常的步骤包括:

第一步,开发人员需要首先写代码从Kafka中获取消息;

第二步,解析消息并提取出申请号和用户ID,并将提取的数据缓存下来;

第三步,将Kafka的临时数据导入Hive;

第四步,借助Hive 引擎进行多表的联合查询得出筛查结果。

      

河图引擎可以直接访问异构数据,且对于Kafka这样的流式消息也能够直接映射为一张数据表。因此在河图引擎中以上完全可以用一个标准的SQL 语句来实现以上功能

1581475604618518.png

图4. 示例SQL


1581475605592750.png

图5. SQL查询结果

与传统批流处理相比,河图的优势在于:

1.     一边流一边读,结合历史数据快速分析;

2.     无感知底层数据引擎;

3.     统一语言访问,兼容SQL:2003;

4.     无需额外的学习成本;

      不仅如此,通过实际测试我们发现,性能的大幅提升约10倍,而代码量却显著下降了约80%。 这对于开发者而言是十分友好的

1581475603547438.png

图6. 开发效率提升


华为公司计划于2020年6月30日发布开源版本的河图引擎。目前华为正不断扩展河图引擎的北向和南向接口,支持更多应用和更多异构数据源,解决用数难问题,确保上层的数据治理和数据应用软件可以更好地对接数据基础设施。

河图引擎致力于构建“大数据库”,为开发者提供极致的开发效率,让开发者像使用数据库一样的使用大数据,聚焦业务,挖掘数据价值。

     古有云:“大禹得河图后始见清明”。



1581475604521513.jpg





【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。