写点什么

什么数据库最适合数据分析师

  • 2015-12-30
  • 本文字数:1563 字

    阅读完需:约 5 分钟

数据分析师都想使用数据库作为数据仓库处理并操作数据,那么哪一款数据库最合适分析师呢?虽然网上已经有很多对各种数据库进行比较的文章,但其着眼点一般都是架构、成本、可伸缩性和性能,很少考虑另一个关键因素:分析师在这些数据库上编写查询的难易程度。最近,Mode 的首席分析师 Benn Stancil 发布了一篇文章,从另一个角度阐释了哪一款数据库最适合数据分析师

Benn Stancil 认为数据分析工作不可能一蹴而就,分析师在使用数据库的过程中阻碍他们速度的往往不是宏观上的性能,而是编写查询语句时的细节。例如,在 Redshift 中如何获取当前时间,是 NOW()、CURDATE()、CURDATE、SYSDATE 还是 WHATDAYISIT。在 Mode 公司,分析师每天都会使用各种不同的语言编写几千个查询,运行在 Mode 编辑器里的查询超过百万个,而 Benn Stancil 就是从这些数据出发,对 MySQL、PostgreSQL、Redshift、SQL Server、BigQuery、Vertica、Hive 和 Impala 这八款数据库进行了比较。

首先,Benn Stancil 认为查询错误是否容易解决是衡量数据库的一个最基本指标。数据库提供的错误信息(通常是语法错误、函数名错误、逗号错位等)最能表明该系统是否会对数据分析师造成极大的挫败感。通过对 8 种数据库查询错误频率的比较,Benn Stancil 发现 Vertica 和 SQL Server 错误率最高,MySQL 和 Impala 最低,如图所示:

但是,对于该结果 Benn Stancil 认为可能有点不严谨,因为 Impala、MySQL 和 Hive 是开源的免费产品,而 Vertica、SQL Server 和 BigQuery 不是,后三者的用户通常是有充足分析预算的大型企业,其较高的错误率很有可能是由于使用更深入而不是语言“更难用”。

除了错误率之外,Benn Stancil 还讨论了复杂性。虽然不同语言其查询长度、查询复杂性和语言复杂性之间的关系盘根错节,要界定清楚很难,但可以间接使用查询长度作为度量的指标,因为一门语言之所以简单很有可能是因为它简洁。这八种数据库查询长度的统计结果如下:

如果说单纯地比较最终的长度有失偏颇,那么可以看看随着分析的逐步深入,查询逐渐变复杂的过程中,其修改次数与长度之间的关系:

该图显示,经过 20 次左右的编辑之后,查询长度通常会变为之前的 2 倍,而在 100 次编辑之后,长度会变为之前的 3 倍。那么在修改的过程中,其编辑次数与出错的比率又是什么样子的呢?

从图中可以看出,PostgreSQL、MySQL 和 Redshift 的错误率较低,Impala、BigQuery 和 SQL Server 的错误率较高。另外,和之前一样,Vertica 的错误率依然最高。

此外,Benn Stancil 认为分析师的技能也很重要。他对使用多个数据库并且在每个数据库上至少运行了 10 个查询的分析师进行了统计,计算了这些分析师在每个数据库上的查询错误率,并根据统计结果构建了下面的矩阵:

该矩阵展示的是顶部数据库与左边数据库相比其错误率的差别,数值越高表现就越差。例如,Hive 和 BigQuery 交叉处的“20.2”表示:对使用这两款数据库的分析师,其使用 Hive 的错误率要比使用 BigQuery 高 20.2。最底部的 Total 行是结果总计,从中可以看出 MySQL 和 PostgreSQL 始终表现较好;Vertica 跳跃最大,几乎是从最底部跳到了中游,打败了 SQL Server 和 Hive,这也暗示了 Vertica 的高错误率很可能是由于分析师的能力而不是语言本身。

最后,Benn Stancil 认为在分析的这 8 个数据库中,MySQL 和 PostgreSQL 编写 SQL 最简单,应用也最广泛,但与 Vertica 和 SQL Server 相比它们的特性不够丰富,而且速度要慢。综合各方面的因素,Redshift 或许才是最好的选择。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2015-12-30 18:004342
用户头像

发布了 321 篇内容, 共 118.9 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

OpenHarmony工程模板和开发语言

坚果

OpenHarmony 6 月 优质更文活动

KW 新闻 | KaiwuDB 受邀亮相 IOTE 2023 第十九届国际物联网展

KaiwuDB

工业物联网 KaiwuDB IOTE

如今做泛娱乐出海,你需要融云《社交泛娱乐出海作战地图》

融云 RongCloud

产品 互联网 融云 泛娱乐 出海

C语言编程—可变参数

梦笔生花

C语言 可变参数 6 月 优质更文活动

聊聊数科公司如何与现有数智平台厂商协同作战

用友BIP

数科公司 数智平台 数智平台白皮书

你会怎样设计云原生场景下的IOC框架?

K

原创 云原生 ioc spring ioc

高能预警!融云WICC发布《社交泛娱乐出海作战地图》

融云 RongCloud

互联网 地图 融云 即时通信 出海

直播回顾|走进元服务,携手小强停车探索鸿蒙新流量阵地

HarmonyOS SDK

HMS Core

开源共建下一代智能终端操作系统根社区 OpenHarmony携手伙伴聚力前行

科技汇

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库 zillizcloud

使用containerd从0搭建k8s(kubernetes)集群

tiandizhiguai

k8s

2023-06-12:如果一个正整数自身是回文数,而且它也是一个回文数的平方,那么我们称这个数为超级回文数。 现在,给定两个正整数 L 和 R (以字符串形式表示), 返回包含在范围 [L, R] 中

福大大架构师每日一题

算法、 福大大架构师每日一题

把钢铁侠战衣交给Z世代,没想到联想商用PC可以这么炫酷!

脑极体

联想 PC

快速掌握Kubernetes中的核心概念

穿过生命散发芬芳

k8s 6 月 优质更文活动

中盐集团:以财务共享为基础,引领盐行业数智化转型

用友BIP

财务共享

​“前端已死”甚嚣尘上,全栈工程师卷到起飞

引迈信息

前端 低代码 全栈 JNPF

KW 喜报 | KaiwuDB 斩获 2023 数博会“优秀科技成果”奖

KaiwuDB

KaiwuDB 离散制造业解决方案 2023数博会

出海如何从0到1?融云《社交泛娱乐出海作战地图》实战经验揭秘

融云 RongCloud

互联网 社交 融云 泛娱乐 出海

中企出海,海外商旅费控的关键点是什么?

用友BIP

中企出海

社交泛娱乐出海如何抓住AIGC?我在融云WICC上看到了答案

融云 RongCloud

社交 融云 泛娱乐 出海 通讯

瓴羊Quick BI:可视化大屏让数据呈现更直观

夜雨微澜

专注开发者体验 | GitOps 实现 Kuberentes 持续部署

亚马逊云科技 (Amazon Web Services)

云原生

提升用户体验:在小程序环境中充分利用Ionic框架

FinFish

Ionic 跨端开发 小程序容器 跨端框架 小程序容器技术

STM32+DHT11监测环境的温湿度

DS小龙哥

6 月 优质更文活动

飞桨AI4S污染物扩散快速预测模型,亮相全国数据驱动计算力学研讨会

飞桨PaddlePaddle

飞桨 #人工智能

DevStudio编辑器使用技巧

坚果

OpenHarmony3.2 6 月 优质更文活动

智能人才发现,帮助企业精准找人,快速识人

用友BIP

数智人力

如何在 Jupyter Notebook 用一行代码启动 Milvus?

Zilliz

Jupyter Notebook 非结构化数据 Colab AIGC 向量数据库

扬帆启航丨九科信息亮相2023全球数字经济大会(GDEC)新加坡分会场

九科Ninetech

揭秘阿里云 Flink 智能诊断利器——Flink Job Advisor

Apache Flink

大数据 flink 实时计算

助力金融业数字化转型,原点安全将出席“2023 中国金融业数字化转型发展大会”

原点安全

数据安全 金融行业 uDSP 消费者个人信息保护

什么数据库最适合数据分析师_数据库_孙镜涛_InfoQ精选文章