拒绝out!这是过去几个月最重要的数据库新闻。

作者 | Markus Winand

译者 | 虎说

责编 | 屠敏

出品 | CSDN(ID:CSDNNews)

伟大的 SQL 思想的复兴

如今,将 SQL 功能引入 NoSQL 系统是一种反复出现的模式。例如,Apache Flink 刚刚引入了 match_recognize 子句。Couchbase 同样选择了这条道路,它计划将 SQL 窗口功能引入其产品的下一个版本。但是,SQL 不仅仅是具有强大功能的查询语言。其中,约束、事务和事务隔离也是 SQL 的组成部分。本文,我将重点介绍 NoSQL 系统如何尝试实现 SQL 数据库提供的一致性保证。

大规模的云计算服务(谷歌,Facebook,雅虎,微软等)都建立了自己的定制系统来处理规模需求。

在这句话中,有一条非常重要的信息很容易被忽略:这些公司为自身非常具体的需求建立了量身定制的系统。如果你有资源根据你的特定需求重新打造新的数据库,那么你能构建一个比现成通用的产品更能满足这些需求的数据库...当然,你也可以省略所有不需要的功能。接着,这些公司的产品经理开始谈论他们的产品方案。

最终,相同的想法出现:打造开源系统,于是 NoSQL 运动诞生了。

你可能知道故事的其余部分:NoSQL 软件系统提供商把他们的解决方案比做数据库的未来。而且技术人员都比较喜欢所有新的东西,特别是当身边的人都在谈论它的时候。

不幸的是,许多 NoSQL 用户都忽略了一点:每个系统都是为了解决一个非常具体的问题,而且只是解决了这个问题。NoSQL 系统不是通用数据库,它碰巧在一个用例中胜过竞争对手。虽然他们可以很好地完成这一招,但对其他事情并不是很有帮助。

回顾 2018 年,我们可以看到 NoSQL 供应商正在给他们的“小马”教授更多技巧,其中大多数是 SQL 数据库已经做了很多年的技巧。例如因为 NoSQL 系统在一致性方面遇到了困难,所以它们将多文档事务引入 MongoDB 4.0,尽管它相当有限,但也算得上过去几个月中最好的引入。目前的趋势是,即使是分布式数据库在面对严格的一致性时也会手足无措。

Google Spanner 就面临这样的问题,它非常重视可用性的一致性。Daniel Abadi 在他的文章“Spanner NewSQL数据库系统无法保证一致性”中探讨了为什么强一致性是可取的,为什么 NoSQL 系统首先放弃它,以及一些系统如何在分布式环境中争取强一致性。最重要的是,尝试实现 Google Spanner 的系统无法提供相同的保证,因为 Spanner 使用高精度的时间源(如原子钟)来实现一致性。如果你在没有这样的时间源的情况下使用 Spanner,是无法达到 Spanner 所具有的相同级别的一致性和可用性。根据 Abadi 的说法,一些系统已经开始犯这样的错误。

那问题来了:使用哪个数据库,尤其是当你存在强烈一致性的协议时?我想亚马逊的方法应该时最好的方法-使用老式的 SQL 数据库。是的,亚马逊仍然使用 Oracle 数据,同时他们也引入了其他几个数据库服务,如 Redshift、Aurora、Neptune、Timestream和Quantum Ledger。

亚马逊也是在不得已的情况下才使用 Oracle 数据库来运营他们的业务。去年8 月份,他们宣布计划在 2020 年之前完全摆脱 Oracle 数据库。这是“很难”完成的任务。首先,迁移会导致其最大的仓库中断,尽管如此,它们的迁移任务还是取得了不错的进展。

我们可以从上面这个故事中学到一点:从通用数据库开始。回想起来,这是大多数成功公司所做的。SQL 数据库是一个很好的选择,因为它们可以做很多技巧。你会非常需要这些技巧,特别是当你的需求不是很确定的时候。当数据库不能支撑你的业务时,首先你需要进行优化,然后找出核心痛点,因为很有可能有随时可用的单一技巧,可以比通用数据库更好地处理这个痛点。

技术与科学

Just in Time(JIT)编译目前是 SQL 数据库的热门话题,引入该技术的第一个主要数据库是 Microsoft SQL Server 2014(又名 Hekaton),最新的 PostgreSQL 版本也将 JIT 编译引入了一个免费的开源数据库。虽然 JIT 编译可以大大提高性能,但是供应商必须为维护提供额外的维护工作。这就是为什么荷兰的两位科学家试图将这一过程的某些部分自动化的原因。他们使用 SQLite 源代码中的一部分虚拟数据库引擎进行自动 JIT 编译。

SQL 历史

对于那些对 SQL 早期历史感兴趣的人,这里有一个不错的读物:1995 年的SQL Reunion:People、Projects和Politics。这是 20 世纪 70 年代和 80 年代参与 SQL 及其产品开发的人员会议的笔记。它涵盖了各种各样的话题,例如,为了决定使用哪个关键字作为空值,开一天的会议。

主要的新版本

最近几个月发布了一些主要版本:

Oracle 18c

最初于 2 月发布,但仅适用于 Oracle 云和工程系统的用户,Oracle 数据库18c 最终可在 7 月份下载,最终的 18c 版本于 10 月以免费 Express Edition(XE)的形式发布。与此同时,明年发布的封闭测试版(19c)已经开始开发。

Oracle Database 18c 引入了许多新的 JSON 特性、多态表函数和图形处理语言(PGQL)。我在“modern-sql.com”上的文章“Oracle 数据库 18c 中有什么新东西”仔细研究了18c版,并揭示了文档中未涉及的一些有趣的惊喜。

MariaDB 10.3

在MariaDB 10.2引入窗口函数和递归查询一年之后,版本10.3上线发布。我在modern-sql.com上发表了对MariaDB 10.3的评论:“MariaDB 10.3中的新功能”。

SQLite 3.25.05

SQLite 3.25.0引入了窗口函数,该引入与其他数据库的实现几乎相同。

PostgreSQL 11

PostgreSQL 11于10月发布。在其他功能(如JIT)中,它引入了具有帧排除功能的扩展窗口功能和组单元。这使得PostgreSQL成为第一个支持这些功能的主要SQL数据库!

原文:https://winand.at/newsletter/2018-12/consistency-cloud-jit

本文为 CSDN 翻译,如需转载,请注明来源出处。

【完】


 热 文 推 荐 

☞ 程序员是如何运用增长思维找到女朋友?

☞ 微信拒绝老好人

☞ 微信年终奖人均280万?拼多多再追平京东;苹果再三致谢腾讯|极客头条

☞ 不要在爬虫犯罪的边缘疯狂试探!

区块链,会越来越无聊!

女程序员:我负责赚钱养家,老公负责貌美如花

任正非:人工智能就是计算机和统计学

K8S的SDN容器网络解决方案【机制篇】

☞ 心疼!能为程序员男友做些什么吗?

print_r('点个赞吧!');
var_dump('点个赞吧!');
NSLog(@"点个赞吧!");
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧! ");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!");
Response.Write("点个赞吧!");
alert("点个赞吧!")
echo "点个赞吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧!

这些数据库领域的大事你知道多少?相关推荐

  1. 数据库领域 TOP10 热门课程推荐 | 最棒的课程给最好的你

    简介:阿里云开发者学堂出品了近千门课程,在数据库领域中哪几门课程最受开发者们的青睐呢?小助手来揭秘! 阿里云开发者学堂为了方便开发者,推出了近千门的免费课程供开发者们学习,课程包含云计算.大数据.数据 ...

  2. oracle数据库领域,菜鸟成长课程之《Oracle数据库职业直通车》,引领大家真正进入Oracle数据库领域...

    课程简介: 近年来,Oracle数据库无疑是全球数据库领域中的领航者, Oracle DBA的待遇节节攀升, 导致了许多人希望转入这个行业.而Oracle数据库又因它的庞大和复杂另很多人望而却步,找不 ...

  3. 阿里云数据库产品专家胡航丽:数据库自动驾驶平台DAS重磅助力数据库领域智能未来...

    墨墨导读:2020数据技术嘉年华于11月21日落下帷幕,大会历时两天,来自全国各地的数据领域学术精英.领袖人物.技术专家.从业者和技术爱好者相聚北京,见证了个人的快速成长.技术的迭代进步.行业的蓬勃发 ...

  4. PingCAP 完成 C 轮 5000 万美元融资,创新型分布式关系型数据库领域最大笔融资

    近日,新型分布式关系型数据库公司 PingCAP 宣布完成 5000 万美元 C 轮融资,这是目前为止新型分布式关系型数据库领域的最大笔融资.本轮融资由复星.晨兴资本领投,华创资本.云启资本.经纬中国 ...

  5. 2021国产数据库领域最具商业合作价值企业盘点

    数据智能产业创新服务媒体 --聚焦数智 · 改变商业 6月19日,数据猿携手上海大数据联盟,依托双方优势资源与力量,共同以媒体+联盟的方式推动产业的发展与行业的进步,特以"聚焦数智价值 引领 ...

  6. 数据库领域顶会SIGMOD背后的故事,这篇文章全部告诉你~

    SIGMOD数据管理国际会议(Special Interest Group on Management Of Data.)是由美国计算机协会(ACM)数据管理专业委员会(SIGMOD)发起.在数据库领 ...

  7. 数据库领域中最常用的逻辑模型有哪些?请比较各种模型的优缺点并详述。

    数据库领域中最常用的逻辑模型有:层次模型(树状图).网状模型(网,图).关系模型. 1.层次模型: 优点: 1.结构清晰,便于观看实体间的联系 2.操作简单 3.查询效率高 缺点: 1.结构灵活性低, ...

  8. 一文读懂|2021年数据库领域精彩回顾

    数据库网红.CMU数据库课程掌舵人 Andy 老师的数据库2021总结,翻译原文以飨诸位. 原文链接:https://ottertune.com/blog/2021-databases-retrosp ...

  9. 数据库领域正在发生巨变,从 TiDB 5.0 发布会看未来的数据库发展趋势

    前不久,PingCAP 刚刚度过六岁生日.对于数据库这样一个古老的行业,六年只是刚刚起步.TiDB 5.0 的发布就像一个庆祝成长的生日礼物,为 TiDB 带来了一个具有里程碑意义的版本.通过引入 M ...

最新文章

  1. 专访周志华、宋继强:高端AI人才要具备哪些素质?深度学习的局限性和未来?...
  2. android实现计算器功能吗,利用Android实现一个简单的计算器功能
  3. R语言将数据列中的多种日期格式统一变化为一种固定格式实战:使用lubridate包中的parse_date_time函数
  4. linux 下oracle基于raw扩充表空间步骤
  5. oracle能查dml记录么,如何查询DML操作的详细记录
  6. 隔行变色java代码_jquery入门—选择器实现隔行变色实例代码
  7. tableViewcell的删除
  8. 网络学习笔记(一):TCP连接的建立与关闭
  9. Windows10远程连接服务器时出现“这可能是由于CredSSP加密数据库修正”的错误提示的解决办法
  10. java 包的package和import语句
  11. S7-1500 SD卡格式化
  12. 集线器、交换机、路由器以及端口带宽区别
  13. WordPress实现评论显示IP归属地方法
  14. C语言|控制台小游戏|打飞机(基础功能版)
  15. 【清华AI自强计划-计算机视觉课程-第三讲课程笔记1】
  16. 知晓云深坑:数据修改返回401解决办法
  17. 记录一次docker安装遇到的坑
  18. java.sql.SQLException: 无法转换为内部表示原因及解决办法
  19. 怎么使用 button的tag
  20. PTA第一章作业1--数据结构基本概念 顺序表基本操作

热门文章

  1. 微信python天天学_教你使用python实现微信每天给女朋友说晚安
  2. 《统计学习方法》—— 信息增益、决策树算法(ID3,C4.5)以及python3实现
  3. Linux使用I/O复用函数的超时机制的定时器
  4. 时间轴 纵向_高考最新硬货!高中历史时间轴(文字版)高能来袭,背会就能多拿分!...
  5. 中国 AI 的“黄埔军校”?MSRA 被曝停招“国防七子”及北邮学生
  6. Lua重回TOP 20,TIOBE 3月编程语言排行榜出炉
  7. 为什么说 Rust 是编程的未来?
  8. 黑客入侵3个月浑然不知,或影响3万家客户!这个软件测试公司心太大了!
  9. 华为高管揭秘公司不上市的原因;微信回应「花钱就能查到聊天记录」;马斯克删除「超苹果只要几个月」评论 | 极客头条...
  10. 云计算年度技术盛典,腾讯Techo Park开发者大会将在京召开