百度运用 FPGA 方法大规模加速 SQL 查询
2016-10-03 22:30
183 查看
尽管我们对百度今年工作焦点的关注集中在这个中国搜索巨头在深度学习方面的举措上,许多其他的关键的,尽管不那么前沿的应用表现出了大数据带来的挑战。 |
对于百度的百亿亿级问题,在所有数据的接受端是一系列用于数据分析的框架和平台,从该公司的海量知识图谱,多媒体工具,自然语言处理框架,推荐引擎,和点击流分析都是这样。简而言之,大数据的首要问题就是这样的:一系列各种应用和与之匹配的具有压倒性规模的数据。
当谈到加速百度的大数据分析,所面临的几个挑战,欧阳谈到抽象化运算核心去寻找一个普适的方法是困难的。“大数据应用的多样性和变化的计算类型使得这成为一个挑战,把所有这些整合成为一个分布式系统是困难的,因为有多变的平台和编程模型(MapReduce,Spark,streaming,user
defined,等等)。将来还会有更多的数据类型和存储格式。”
尽管存在这些障碍,欧阳讲到他们团队找到了(它们之间的)共同线索。如他所指出的那样,那些把他们的许多数据密集型的任务相连系在一起的就是传统的 SQL。“我们的数据分析任务大约有 40% 是用 SQL 写的,而其他的用 SQL 重写也是可用做到的。” 更进一步,他讲道他们可以享受到现有的 SQL 系统的好处,并可以和已有的框架相匹配,比如 Hive,Spark SQL,和 Impala 。下一步要做的事情就是 SQL 查询加速,百度发现 FPGA 是最好的硬件。
这些主板,被称为处理单元( 下图中的 PE ),当执行 SQL 时会自动地处理关键的 SQL 功能。这里所说的都是来自演讲,我们不承担责任。确切的说,这里提到的 FPGA 有点神秘,或许是故意如此。如果百度在基准测试中得到了如下图中的提升,那这可是一个有竞争力的信息。后面我们还会继续介绍这里所描述的东西。简单来说,FPGA 运行在数据库中,当其收到
SQL 查询的时候,该团队设计的软件就会与之紧密结合起来。
欧阳提到了一件事,他们的加速器受限于 FPGA 的带宽,不然性能表现本可以更高,在下面的评价中,百度安装了 2 块12 核心,主频 2.0 GHz 的 intl E26230 CPU,运行在 128G 内存。SDA 具有 5 个处理单元,(上图中的 300MHz FPGA 主板)每个分别处理不同的核心功能(筛选filter,排序sort,聚合aggregate,联合join和分组group
by)
为了实现 SQL 查询加速,百度针对 TPC-DS 的基准测试进行了研究,并且创建了称做处理单元(PE)的特殊引擎,用于在基准测试中加速 5 个关键功能,这包括筛选filter,排序sort,聚合aggregate,联合join和分组group by,(我们并没有把这些单词都像 SQL 那样大写)。SDA
设备使用卸载模型,具有多个不同种类的处理单元的加速卡在 FPGA 中组成逻辑,SQL 功能的类型和每张卡的数量由特定的工作量决定。由于这些查询在百度的系统中执行,用来查询的数据被以列格式推送到加速卡中(这会使得查询非常快速),而且通过一个统一的 SDA API 和驱动程序,SQL 查询工作被分发到正确的处理单元而且 SQL 操作实现了加速。
SDA 架构采用一种数据流模型,加速单元不支持的操作被退回到数据库系统然后在那里本地运行,比其他任何因素,百度开发的 SQL 加速卡的性能被
FPGA 卡的内存带宽所限制。加速卡跨整个集群机器工作,顺便提一下,但是数据和 SQL 操作如何分发到多个机器的准确原理没有被百度披露。
我们受限与百度所愿意披露的细节,但是这些基准测试结果是十分令人鼓舞的,尤其是 Terasort 方面,我们将在 Hot Chips 大会之后跟随百度的脚步去看看我们是否能得到关于这是如何连接到一起的和如何解决内存带宽瓶颈的细节。
本文地址:http://www.linuxprobe.com/baidu-fpga-sql.html
免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/
相关文章推荐
- 百度运用 FPGA 方法大规模加速 SQL 查询
- 初学oracle 数据库的初级运用 单表查询的各种基础方法(SQL)
- sql 多条件查询的一种简单的方法
- [收藏]MS SQL Server查询优化方法
- T-SQL命令在SQLServer查询中的运用
- MS SQL Server查询优化方法
- SQL学习之查询技巧 查询表是否存在的两种方法
- T-SQL命令在SQL Server查询中的运用
- ACCESS模糊查询like的解决方法&&SQL查询语句通配符问题
- sql 多条件查询的一种简单的方法
- MS SQL Server查询优化方法[摘]
- SQL学习之查询技巧 查询表是否存在的两种方法
- SQL查询语句使用方法参考一
- 实现了一个SQL查询整个树状结构数据的方法!找更好的!
- [ZT]MS SQL Server查询优化方法
- Hibernate Native SQL查询常用的2种方法及对返回结果处理
- MS SQL Server查询优化方法
- Sql中查询本月数据字段的表示方法
- ORACLE中 大数据表的交叉数据集的查询 SQL优化方法
- 数据库查询速度优化 2 优化SQL语句方法