您现在的位置是:首页 > 文章详情

【大数据】阿里巴巴的大规模数据流处理系统

日期:2019-02-16点击:724

随着阿里系的应用几乎覆盖了移动互联网的全行业,阿里巴巴开始致力于搭建世界一流的计算引擎。
12

在2015年,阿里巴巴开始将视线转向Flink,发现表现不错,于是开始将其投入到计算引擎的测试中,并定义内部名称为Blink。在随后的一年克服了稳定性和可靠性的问题;而到了2017年,就开始专注于Blink各组件性能的提升,包括SQL的功能及平台。
在Blink的生态系统中,自下而上分别是资源管理及存储、Blink运行引擎、数据流API及数据集API、统一的SQL API。在SQL API之上,阿里开发了两个平台,一个是SQL平台,允许用户使用SQL编译,或部署SQL任务;另一个平台是机器学习平台,这个平台是纯图形化UI,用户可以在界面上拖动任务或组件,以达到配置和连接的目的。有了这两大平台,就足以支撑阿里系上述的所有互联网产品。
2
阿里为何选择SQL作为整个平台的底层接口(Blink的上层接口)呢?SQL有以下5大特点:

  1. 通用性:各种平台的开发人员都熟悉SQL
  2. 易于理解:更易描述业务逻辑
  3. 性能优化:SQL系统的核心优化器能使任务更快捷地执行
  4. 稳定性:甚至可以平滑替换运行引擎
  5. 统一性:即可用户Batch任务,也可用于Streaming任务
    3

这里大家可能就会有疑问了,为什么SQL会适用于Streaming的任务呢?我们知道SQL适用于表的查询,而在流处理任务中根本没有表啊,即使有也是不断在更新变化的表。阿里就率先提出了动态表的概念:用户可以通过标准SQL语句查询数据流,也就是说数据流和表之间可以无缝转换。这其实也不难理解,只要我们把数据流看作是表的变更日志,就得到了动态表;把表的变更日志导出就得到了数据流,阿里称之为“表流二相性”。
4
当然,在对历史数据做查询时,还要用到SQL的DDL,DML以及QueryConf语句。在查询涉及多个数据流的时候,可以用SQL的JOIN语句将数据流与数据流、数据流与表组合在一起。组合方式分为lookup JOIN和snapshot JOIN。前者指当系统收到SQL指令需要查询表的结果时,这时需要在JOIN语句中加入处理时间(PROCTIME()),这样SQL运行优化器就会找到对应时刻的查询结果;后者需要用户输入一个常量时间,在系统支持版本数据的情况下将对应时刻的数据返回给用户。
5

原文链接:https://yq.aliyun.com/articles/690518
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章