6大主流开源SQL引擎总结,遥遥领先的是谁?

2023-05-16

6大主流开源SQL引擎总结,遥遥领先的是谁?

作者|覃璐

编辑|Tina

根据 O’Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言。大部分项目都需要一些SQL 操作,甚至有一些只需要SQL。本文就带你来了解这些主流的开源SQL引擎!

背景介绍

本文涵盖了6个开源领导者:Hive、Impala、Spark SQL、Drill、HAWQ 以及Presto,还加上Calcite、Kylin、Phoenix、Tajo 和Trafodion。以及2个商业化选择Oracle Big Data SQL 和IBM Big SQL,IBM 尚未将后者更名为“Watson SQL”。

(有读者问:Druid 呢?我的回答是:检查后,我同意Druid 属于这一类别。)

使用SQL 引擎一词是有点随意的。例如Hive 不是一个引擎,它的框架使用MapReduce、TeZ 或者Spark 引擎去执行查询,而且它并不运行SQL,而是HiveQL,一种类似SQL 的语言,非常接近SQL。“SQL-in-Hadoop” 也不适用,虽然Hive 和Impala 主要使用Hadoop,但是Spark、Drill、HAWQ 和Presto 还可以和各种其他的数据存储系统配合使用。

不像关系型数据库,SQL 引擎独立于数据存储系统。相对而言,关系型数据库将查询引擎和存储绑定到一个单独的紧耦合系统中,这允许某些类型的优化。另一方面,拆分它们,提供了更大的灵活性,尽管存在潜在的性能损失。

下面的图1展示了主要的SQL 引擎的流行程度,数据由奥地利咨询公司Solid IT 维护的DB-Engines 提供。DB-Engines 每月为超过200个数据库系统计算流行得分。得分反应了搜索引擎的查询,在线讨论的提及,提供的工作,专业资历的提及,以及tweets。

6大主流开源SQL引擎总结,遥遥领先的是谁?

来源:DB-Engines,2017年1月 http://db-engines.com/en/ranking

虽然Impala、Spark SQL、Drill、Hawq 和Presto 一直在运行性能、并发量和吞吐量上击败Hive,但是Hive 仍然是最流行的(至少根据DB-Engines 的标准)。原因有3个:

  • Hive 是Hadoop 的默认SQL 选项,每个版本都支持。而其他的要求特定的供应商和合适的用户;

  • Hive 已经在减少和其他引擎的性能差距。大多数Hive 的替代者在2012年推出,分析师等待Hive 查询的完成等到要自杀。然而当Impala、Spark、Drill 等大步发展的时候,Hive只是一直跟着,慢慢改进。现在,虽然Hive 不是最快的选择,但是它比五年前要好得多;

  • 虽然前沿的速度很酷,但是大多数机构都知道世界并没有尽头。即使一个年轻的市场经理需要等待10秒钟来查明上周二Duxbury 餐厅的鸡翅膀的销量是否超过了牛肉汉堡。

在下面的图2中可以看出,相对于领先的商业数据仓库应用,用户对顶尖的SQL 引擎更感兴趣。

6大主流开源SQL引擎总结,遥遥领先的是谁?

来源:DB-Engines,2017年1月 http://db-engines.com/en/ranking

对于开源项目来说,最佳的健康度量是它的活跃开发者社区的大小。如下面的图3所示,Hive 和Presto 有最大的贡献者基础。(Spark SQL 的数据暂缺)

6大主流开源SQL引擎总结,遥遥领先的是谁?

来源:Open Hub https://www.openhub.net/

在2016年,Cloudera、Hortonworks、Kognitio 和Teradata 陷入了Tony Baer 总结的基准测试之战,令人震惊的是,供应商偏爱的SQL 引擎在每一个研究中都击败了其他选择,这带来一个问题:基准测试还有意义吗?

AtScale 一年两次的基准测试并不是毫无根据的。作为一个BI 初创公司,AtScale 销售衔接BI 前端和SQL 后端的软件。公司的软件是引擎中立的,它尝试尽可能多的兼容,其在BI 领域的广泛经验让这些测试有了实际的意义。

AtScale 最近的关键发现,包括了Hive、Impala、Spark SQL 和Presto:

  • 4个引擎都成功运行了AtScale 的BI 基准查询;

  • 取决于数据量、查询复杂度和并发用户数,每个引擎都有自己的性能优势:

    Impala 和Spark SQL 在小数据量的查询上击败了其他人;

    Impala 和Spark SQL 在大数据量的复杂join 上击败了其他人;

    Impala 和Presto 在并发测试上表现的更好。

  • 对比6个月之前的基准测试,所有的引擎都有了2-4倍的性能提升。

Alex Woodie 报告了测试结果,Andrew Oliver 对其进行分析。

让我们来深入了解这些项目。

Apache Hive

Apache Hive 是Hadoop 生态系统中的第一个SQL 框架。Facebook 的工程师在2007年介绍了Hive,并在2008年将代码捐献给Apache 软件基金会。2010年9月,Hive 毕业成为Apache 顶级项目。Hadoop 生态系统中的每个主要参与者都发布和支持Hive,包括Cloudera、MapR、Hortonworks 和IBM。Amazon Web Services 在Elastic MapReduce(EMR)中提供了Hive 的修改版作为云服务。

早期发布的Hive 使用MapReduce 运行查询。复杂查询需要多次传递数据,这会降低性能。所以Hive 不适合交互式分析。由Hortonworks 领导的Stinger 明显的提高了Hive 的性能,尤其是通过使用Apache Tez,一个精简MapReduce 代码的应用框架。Tez 和ORCfile,一种新的存储格式,对Hive 的查询产生了明显的提速。

Cloudera 实验室带领一个并行项目重新设计Hive 的后端,使其运行在Apache Spark 上。经过长期测试后,Cloudera 在2016年初发布了Hive-on-Spark 的正式版本。

在2016年,Hive 有100多人的贡献者。该团队在2月份发布了Hive 2.0,并在6月份发布了Hive 2.1。Hive 2.0 的改进包括了对Hive-on-Spark 的多个改进,以及性能、可用性、可支持性和稳定性增强。Hive 2.1 包括了Hive LLAP(”Live Long and Process“),它结合持久化的查询服务器和优化后的内存缓存,来实现高性能。该团队声称提高了25倍。

9月,Hivemall 项目进入了Apache 孵化器,正如我在我的机器学习年度总结的第二部分中指出的。Hivemall 最初由Treasure Data 开发并捐献给Apache 软件基金会,它是一个可扩展的机器学习库,通过一系列的Hive UDF 来实现,设计用于在Hive、Pig 和Spark SQL 上运行MapReduce。该团队计划在2017年第一季度发布了第一个版本。

Apache Impala

2012年,Cloudera 推出了Impala,一个开源的MPP SQL 引擎,作为Hive 的高性能替代品。Impala 使用HDFS 和HBase,并利用了Hive 元数据。但是,它绕开了使用MapReduce 运行查询。

Cloudera 的首席战略官Mike Olson 在2013年底说到Hive 的架构是有根本缺陷的。在他看来,开发者只能用一种全新的方式来实现高性能SQL,例如Impala。2014年的1月、5月和9月,Cloudera 发布了一系列的基准测试。在这些测试中,Impala 展示了其在查询运行的逐步改进,并且显著优于基于Tez 的Hive、Spark SQL 和Presto。除了运行快速,Impala 在并发行、吞吐量和可扩展性上也表现优秀。2015年,Cloudera 将Impala 捐献给Apache 软件基金会,进入了Apache 孵化计划。Cloudera、MapR、Oracle 和Amazon Web Services 分发Impala,Cloudera、MapR 和Oracle 提供了商业构建和安装支持。

2016年,Impala 在Apache 孵化器中取得了稳步发展。该团队清理了代码,将其迁移到Apache 基础架构,并在10月份发布了第一个Apache 版本2.7.0。新版本包括了性能提升和可扩展性改进,以及一些其他小的增强。

9月,Cloudera 发布了一项研究结果,该研究比较了Impala 和Amazon Web Services 的Redshift 列存储数据库。报告读起来很有意思,虽然主题一贯的需要注意供应商的基准测试。

Spark SQL

Spark SQL 是Spark 用于结构化数据处理的组件。Apache Spark 团队 在2014年发布了Spark SQL,并吸收了一个叫Shark 的早期的Hive-on-Spark 项目。它迅速成为最广泛使用的Spark 模块。

Spark SQL 用户可以运行SQL 查询,从Hive 中读取数据,或者使用它来创建Spark Dataset和DataFrame(Dataset 是分布式的数据集合,DataFrame 是统一命名的Dataset 列)。Spark SQL 的接口向Spark 提供了数据结构和执行操作的信息,Spark 的Catalyst 优化器使用这些信息来构造一个高效的查询。

2015年,Spark 的机器学习开发人员引入了ML API,一个利用Spark DataFrame 代替低级别Spark RDD API 的包。这种方法被证明是有吸引力和富有成果的;2016年,随着2.0 的发布,Spark 团队将基于RDD 的API改为维护模式。DataFrame API现在是Spark 机器学习的主要接口。

此外,在2016年,该团队还在Spark 2.1.0的Alpha 版本中发布了结构化的流式处理。结构化的流式处理是构建在Spark SQL 上的一个流处理引擎。用户可以像对待静态源一样,用同样的方式查询流式数据源,并且可以在单个查询中组合流式和静态源。Spark SQL 持续运行查询,并且在流式数据到达的时候更新结果。结构化的流通过检查点和预写日志来提供一次性的容错保障。

Apache Drill

2012年,由Hadoop 分销商的领导者之一MapR 领导的一个团队,提出构建一个Google Dremel 的开源版本,一个交互式的分布式热点分析系统。他们将其命名为Apache Drill。Drill 在Apache 孵化器中被冷落了两年多,最终在2014年底毕业。该团队在2015年发布了1.0。

MapR 分发和支持Apache Drill。

2016年,超过50个人对Drill 做出了贡献。该团队在2016年发布了5个小版本,关键的增强功能包括:

  • Web 认证

  • 支持Apache Kudu 列数据库

  • 支持HBase 1.x

  • 动态UDF 支持

2015年,两位关键的Drill 贡献者离开了MapR,并启动了Dremio,该项目尚未发布。

Apache HAWQ

Pivotal 软件在2012年推出了一款商业许可的高性能SQL 引擎HAWQ,并在尝试市场营销时取得了小小的成功。改变战略后,Pivotal 在2015年6月将项目捐献给了Apache,并于2015年9月进入了Apache 孵化器程序。

15个月之后,HAWQ 仍然待在孵化器中。2016年12月,该团队发布了HAWQ 2.0.0.0,加入了一些错误修复。我猜它会在2017年毕业。

对HAWQ 喜爱的一个小点是它支持Apache MADlib,一个同样在孵化器中的SQL 机器学习项目。HAWQ 和MADlib 的组合,应该是对购买了Greenplum 并且想知道发生了什么的人们的一个很好的安慰。

Presto

Facebook 工程师在2012年发起了Presto 项目,作为Hive 的一个快速交互的取代。在2013年推出时,成功的支持了超过1000个Facebook 用户和每天超过30000个PB级数据的查询。2013年Facebook 开源了Presto。

Presto 支持多种数据源的ANSI SQL 查询,包括Hive、Cassandra、关系型数据库和专有文件系统(例如Amazon Web Service 的S3)。Presto 的查询可以联合多个数据源。用户可以通过C、Java、Node.js、PHP、Python、R和Ruby 来提交查询。

Airpal 是Airbnb 开发的一个基于web 的查询工具,让用户可以通过浏览器来提交查询到Presto。Qubole 位Presto 提供了管理服务。AWS 在EMR 上提供Presto 服务。

2015年6月,Teradata 宣布计划开发和支持该项目。根据宣布的三阶段计划,Teredata 提出将Presto 集成导Hadoop 生态系统中,能够在YARN 中进行操作,并且通过ODBC 和JDBC 增强连接性。Teredata 提供了自己的Presto 发行版,附带一份数据表。2016年6月,Teradata 宣布了Information Builders、Looker、Qlik、Tableau 和ZoomData 的鉴定结果,以及正在进行中的MicroStrategy 和Microsoft Power BI。

Presto 是一个非常活跃的项目,有一个巨大的和充满活力的贡献者社区。该团队发布的速度比Miki Sudo 吃热狗的速度还要快--我统计了下,2016年共发布了42个版本。Teradata 并没有打算总结有什么新的东西,我也不打算在42个发行说明里去筛选,所以就让我们说它更好吧。

其他Apache 项目

这里还有5个其他的Apache 生态系统的SQL 混合项目。

Apache Calcite

Apache Calcite 是一个开源的数据库构建框架。它包括:

  • SQL 解析器、验证器和JDBC 驱动

  • 查询优化工具,包括关系代数API,基于规则的计划器和基于成本的查询优化器

Apache Hive 使用Calcite 进行基于成本的查询优化,而Apache Drill 和Apache Kylin 使用SQL 解析器。

Calcite 团队在2016年推出了5个版本包括bug 修复和用于Cassandra、Druid 和Elasticsearch 的新适配器。

Apache Kylin

Apache Kylin 是一个具有SQL 接口的OLAP 引擎。由eBay 开发并捐献给Apache,Kylin 在2015年毕业成为顶级项目。

2016年成立的创业公司Kyligence 提供商业支持和一个叫做KAP 的数据仓库产品,虽然在Crunchbase 上没有列出它的资金情况,有消息来源称它有一个强大的背景,并且在上海有个大办公室。

Apache Phoenix

Apache Phoenix 是一个运行在HBase 上的SQL 框架,绕过了MapReduce。Salesforce 开发了该软件并在2013年捐献给了Apache。2014年5月项目毕业成为顶级项目。Hortonworks 的Hortonworks 数据平台中包含该项目。自从领先的SQL 引擎都适配HBase 之后,我不清楚为什么我们还需要Phoenix。

Apache Tajo

Apache Tajo 是Gruter 在2011年推出的一个快速SQL 数据仓库框架,一个大数据基础设施公司,并在2013年捐献给Apache。2014年Tajo 毕业成为顶级项目。在作为Gruter 主要市场的韩国之外,该项目很少吸引到预期用户和贡献者的兴趣。除了Gartner 的Nick Heudecker 曾提过,该项目不在任何人的工作台上。

Apache Trafodion

Apache Trafodion 是另一个SQL-on-HBase 项目,由HP 实验室构思,它告诉你几乎所有你需要知道的。2014年6月HP 发布Trafodion,一个月之后,Apache Phoenix 毕业投产。6个月之后,HP 的高管们认为相对于另一款SQL-on-HBase 引擎,它的商业潜力有限,所以他们将项目捐献给了Apache,项目于2015年5月进入孵化器。

如果孵化结束,Trafodion 承诺成为一个事务数据库。不幸的是,这个领域有大量的选择,而开发团队唯一的竞争优势似乎是“它是开源的,所以它很便宜”。

今日荐文

点击下方图片即可阅读

6大主流开源SQL引擎总结,遥遥领先的是谁?

技术转管理可能遇到的 3 大挑战及解决方案

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

6大主流开源SQL引擎总结,遥遥领先的是谁? 的相关文章

  • 《Programming in Lua 3》读书笔记(十六)

    日期 xff1a 2014 7 23 Part The Standard Libraries 20 The Table Library table库包含一些辅助函数用以类似与数组一样操作table 提供了从list内插入和删除元素的操作 x
  • 重磅系列文章|UI2Code智能生成Flutter代码--整体设计篇 ...

    闲鱼技术 上叶 背景 随着移动互联网时代的到来 xff0c 人类的科学技术突飞猛进 然而软件工程师们依旧需要花费大量精力在重复的还原UI视觉稿的工作 UI视觉研发拥有明显的特征 xff1a 组件 xff0c 位置和布局 xff0c 符合机器
  • linux debian系统卸载jdk,Debian/Ubuntu系统 JDK卸载、安装、环境配置

    环境 xff1a Linux内核版本4 17 Oracle jdk 11 0 2 JDK 8同样也是设置 Debian9系统 注意 xff1a 1 Open JDK和Oracle JDK的安装过程只是下载的连链接不一样 2 有的Linux系
  • MySQL 8.0 Windows zip 安装过程

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 准备 xff1a MySQL8 0 Windows zip包下载地址 xff1a https cdn mysql com Downloads MySQL 8 0 mysql
  • nohup后台执行脚本并输入日志到指定目录 &

    后台执行命令 xff0c 并输出目录到指定目录 root 64 localhost smgpSend Log nohup tar zcvf sendThread bak tar sendThread bak gt gt 1 txt amp
  • 在 Laravel 5 中集成七牛云存储实现云存储功能

    本扩展包基于https github com qiniu php sdk 开发 xff0c 是七牛云储存 Laravel 5 Storage版 xff0c 通过本扩展包可以在Laravel 5中集成七牛云存储功能 1 安装配置 使用之前 x
  • BSS段、数据段、代码段、堆与栈

    BSS段 xff1a BSS段 xff08 bss segment xff09 通常是指用来存放程序中未初始化的全局变量的一块内存区域 BSS是英文Block Started by Symbol的简称 BSS段属于静态内存分配 数据段 xf
  • Java字符串排序中文+数字

    编写日期 xff1a 2013年9月15日 另一中解法 xff1a 点击查看 解决思路 xff1a 在Java中 xff0c 排序需要复写的是 equals 方法 和 Comparable lt T gt 接口 的public int co
  • UIView 中常见的方法总结

    addSubview 添加一个子视图到接收者并让它在最上面显示出来 void addSubview UIView view 讨论 这方法同样设置了接收者为下一个视图响应对象 接收者保留视图 如果你使用removeFromSuperview方
  • docker方式部署gitlab

    docker方式部署gitlab 说明 操作系统 CentOS Linux release 7 9 2009 Core docker版本 20 10 17主机ip地址 172 16 100 107gitlab cn官网安装教程 https
  • iOS libc++abi.dylib: handler threw exception 错误的解决方案

    简单说下背景 xff1a 最近把工具和SDK都进行了升级Xcode4 5和iOS6 xff0c 无意之中测出了一个 必现的bug xff1a libc 43 43 abi dylib handler threw exception libc
  • 后羿射日般的精准 - 阿里云ECS调度是如何炼成的

    1 引子 弹性计算服务ECS xff08 Elastic Compute Service xff09 是阿里云营收的中流砥柱和流量担当 作为各行业客户新业务和技术创新的发动机和使能者 xff0c ECS不仅能在10分钟内交付出一个中等体量互
  • java每日小算法(12)

    程序12 题目 xff1a 企业发放的奖金根据利润提成 利润 I 低于或等于10万元时 xff0c 奖金可提10 xff1b 利润高于10万元 xff0c 低于20万元时 xff0c 低于10万元的部分按10 提成 xff0c 高于10万元
  • strong_alias && weak_alias && __attribute__

    为了查看linux下malloc的实现函数 xff0c 下载了Glibc的源码文件 xff0c 可是找不到实现的函数在哪里 看文件名 应该是在malloc malloc c里面 发现 libc malloc的实现比较像 怎么从malloc到
  • glog

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 安装配置 1 简介 google 出的一个C 43 43 轻量级日志库 xff0c 支持以下功能 xff1a 参数设置 xff0c 以命令行参数的方式设置标志参数来控制
  • mysql 引擎 校对_mysql字符集与校对集详解

    1 字符集 character 设置数据存储编码格式 1 utf8 2 utf8mb4 支持Emoji 表情 Emoji 是一种特殊的 Unicode 编码 xff0c 常见于 ios 和 android 手机上 2 校对集 collate
  • BSS段和数据段

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 内存分段 xff08 英语 xff1a Memory segmentation xff09 xff0c 一种电脑内存的管理技术 xff0c 它将电脑的主内存分成许多区段 x
  • Zabbix各种报错信息和遇到的问题(持续更新)

    1 Zabbix报警 icmp pinger processes more than 75 busy root 64 localhost zabbix vi etc zabbix zabbix server conf 将这个值设置成Star
  • 自动化运维之 Kerberos 账号信息管理平台

    公司的自动化项目之一 公司的服务器超多 xff0c 需要一个用来管理服务器权限的系统 主要是实现 用一个账号 xff0c 可以让你登录所有的服务器 xff0c 也可以让你身无无分文 就是这样的一个操作的平台 5 25 数据库的展现已经做完
  • 分享一个 ftp下载、解压、更新依赖库文件的 python 脚本

    2019独角兽企业重金招聘Python工程师标准 gt gt gt code usr bin env python coding utf8 ftp下载 解压 更新依赖库文件 import os sys stat shutil string

随机推荐

  • 洛谷-U132410-最小代价(最小生成树(森林)+ 虚拟点)

    题目描述 xff1a 点击进入 思路 最小生成树的变形 我们虚拟一个 零 结点 xff0c 这个结点跟每个村庄 i 连边 xff0c 权值分别为在村庄 i 建立一个网络中心的花费 然后其他边都正常连 xff0c 最后求最小生成树即可 代码
  • 晶晶图js小女孩行走动画

    1 lt DOCTYPE html gt 2 lt html lang 61 34 en 34 gt 3 lt head gt 4 lt meta charset 61 34 UTF 8 34 gt 5 lt title gt Docume
  • Statistics Report for pid 21058 on 1wt.eu

    Statistics Report for HAProxy on 1wt eu Statistics Report for pid 21058 on 1wt eu gt General process information pid 61
  • sprintf

    sprintf sprintf 将字串格式化 在头文件 include lt stdio h gt 中 语法 string sprintf string format mixed args 传回值 字串 1 处理字符方向 负号时表时从后向前
  • Mac上Cargo编译错误: failed to run custom build command for '*.*'

    编译Rust的项目时候出现了错误 xff1a error failed to run custom build command for croaring sys v0 3 7 process didn 39 t exit successfu
  • Apache的Order Allow,Deny 详解

    Allow和Deny可以用于apache的conf文件或者 htaccess文件中 xff08 配合Directory Location Files等 xff09 xff0c 用来控制目录和文件的访问授权 所以 xff0c 最常用的是 xf
  • debian系统,启动Wireshark,出现Couldn't run /usr/bin/dumpcap in child process:权限不够

    这是由于当前用户没有权限运行 usr bin dumpcap造成的 usr bin dumpcap是Wireshark的包捕获引擎 先用ls命令看一下dumpcap的权限情况 xff1a xy 64 debian vm 1 ls lah u
  • git clone带用户名和密码的方式

    git clone http username password 64 127 0 0 1 res res git 转载于 https www cnblogs com cyw0918 p 6133992 html
  • 基本入门程序编写格式和注意事项

    在安装好JDK后联系程序的基本写法 1 先创建记事本 xff0c 如果有超级记事本如 notepad 43 43 ultraedit editplus等更好 重命名把记事本后面的后缀名改为 java 但是值得注意的是要看看自己创建的记事本文
  • 微信公众平台开发(一) 配置接口

    一 简介 微信公众平台是腾讯公司在微信的基础上新增的功能模块 xff0c 通过这一平台 xff0c 个人和企业都可以打造一个微信的公众号 xff0c 并实现和特定群体的文字 图片 语音的全方位沟通 互动 二 通讯机制 三 注册微信平台公众帐
  • noi题库 1.7 字符串 10到第15题

    10 简单密码 描述 Julius Caesar曾经使用过一种很简单的密码 对于明文中的每个字符 xff0c 将它用它字母表中后5位对应的字符来代替 xff0c 这样就得到了密文 比如字符A用F来代替 如下是密文和明文中字符的对应关系 密文
  • Ubuntu18.04安装 NVIDIA驱动+CUDA10.2+cuDNN+TensorRT

    系统 xff1a Ubuntu 18 04 5 显卡 xff1a RTX2080Super xff0c 独显无集成显卡 0 综述 目前 xff0c 知道3种安装N卡驱动的方法 xff1a 添加PPA源 xff1a 最简便 xff0c 但未必
  • Varnish 学习笔记总结

    声明 xff1a 文中内容来自以下四个部分的学习笔记总结 xff1a 1 马哥教育马永亮老师讲授的varnish课程 2 高俊峰先生写的书籍 高性能Linux服务器构建实战 中的varnish章节 3 陈明乾先生的51cto博客 xff1a
  • discuz mysqli_connect() 不支持 advice_mysqli_connect

    看网友的解决方案是 xff1a 下面2行去掉注释 extension 61 php mysql dll extension 61 php mysqli dl 尝试修改 vi etc php ini 发现根本没有这两行 查看一下几个模块都已经
  • buildroot下查找外部编译器通过ext-toolchain-wrapper调用的参数

    通过查看 toolchain toolchain external ext toolchain wrapper c 源文件 xff0c 可以得知 xff0c 设置BR DEBUG WRAPPER环境变量可以输出参数信息 进到 home lv
  • mysql高可用方案MHA介绍

    转自 xff1a http www 2cto com database 201306 221329 html 概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案 xff0c 来保证 数据库系统的高可用 在宕机的时间
  • 源码方式Squid安装与配置(Debian/ubuntu)

    了解squid代理服务器的过程 xff0c 我们知道它在企业中应用能很明显的提升网络使用效率 xff0c 并能很好的屏蔽某些网站的访问 前期我们介绍过命令方式快速安装squid 今天 xff0c 我来着手源码方式安装squid xff0c
  • 《R语言入门》矩阵元素定义及筛选

    R语言入门 目录 xff1a 如何在Windows下安装R语言编程环境 矩阵元素定义及筛选 和向量一样 xff0c 矩阵也可以做筛选 但是需要注意一下语法上的不同 下面是一个简单的例子 xff1a 以下代码用户定义一个矩阵元素变量 si x
  • iOS开发之性能优化

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 关于ios性能优化 可以从以下方面下手 1 xff0c 计算代码运行时间 xff1a 相信数据 xff0c 不要太相信感觉 不过要注意模拟器和真机的差异 最简单的工具就是
  • 6大主流开源SQL引擎总结,遥遥领先的是谁?

    作者 xff5c 覃璐 编辑 xff5c Tina 根据 O Reilly 2016年数据科学薪资调查显示 xff0c SQL 是数据科学领域使用最广泛的语言 大部分项目都需要一些SQL 操作 xff0c 甚至有一些只需要SQL 本文就带你