博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【大数据】阿里巴巴的大规模数据流处理系统
阅读量:6816 次
发布时间:2019-06-26

本文共 963 字,大约阅读时间需要 3 分钟。

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

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

转载地址:http://lxdzl.baihongyu.com/

你可能感兴趣的文章
VsCode使用之HTML 中 CSS Class 智能提示
查看>>
JMeter基础之一 一个简单的性能测试
查看>>
【转】性能测试工具 性能测试如何做?
查看>>
fullpage.js禁止滚动
查看>>
LoadRunner中响应时间与事物时间详解
查看>>
ZigZag Conversion
查看>>
Android 通过HTTPCLINET POST请求互联网数据
查看>>
Hadoop集群的配置(一)
查看>>
Kafka 学习笔记之 Consumer API
查看>>
教程-Close、Halt、terminate、ExitProcess的区别
查看>>
10款很好用的 jQuery 图片滚动插件
查看>>
teacher forcing
查看>>
Linux命令小记
查看>>
基于ROS和beaglebone的串口通信方式,使用键盘控制移动机器人
查看>>
android.view.WindowLeaked的解决办法
查看>>
存储过程的笔记
查看>>
OpenCV学习(27) 直方图(4)
查看>>
深度学习原理与框架-Tensorflow基本操作-实现线性拟合
查看>>
[leetcode-168-Excel Sheet Column Title]
查看>>
SpringBoot和数据库连接
查看>>