看云栖说云栖—— 开源、SQL or NoSQL

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云数据库 Tair(兼容Redis),内存型 2GB
简介: 阿里云上的开源数据库、NoSQL数据库。

查理·芒格:你必须知道重要学科的重要理论,并经常使用它们——要全部都用上,而不是只用几种。

本文内容提取自2019杭州云栖大会《开源数据库专场》、《NoSQL数据库专场》、《ElasticSearch开发者生态专场》。这次继续聊数据库,且还是聚焦于在线业务数据处理,但不像前几天在《双十一的俩功臣》中分享的阿里云自研数据库,这次几乎全是开源数据库。

前两天看到一篇CSDN翻译的文章《云与开源谁吃谁》,看到下面这张图:开源正在被云吃掉,而云正在被多云吃掉。

吃.jpg

(图片来自于网络)

开源其实是很古老的事物,在开源圣经《大教堂和集市》于1997年问世之前,GNU/Linux就已经流行很多年了。我认为一项东西越是古老,就越有可能仍然有用。随着RedHat、GitHub的相继被收购,开源作为一种商业模式有可能正在走向末路,但开源作为一项软件开发组织形式一定还会在在云服务商的资助下,在多云的博弈下继续存在很多年。

在《开源数据库专场》,阿里云数据库团队宣布在2020年DRDS将开源,DRDS是阿里云自研的一个数据库分片引擎,可以将海量的数据处理任务分散到多个数据库上进行处理,在阿里巴巴去IOE的过程中扮演了非常重要的角色。现在,DRDS即将开源了。

DRDS在阿里去IOE中的战友是MySQL,阿里云MySQL8.0有下面这些特色:

  • TDE加密&SM4国密算法、支持使用国内的国密算法对数据表文件进行透明加密。
  • New Thread Pool、新线程池,对提高并发数有好处。
  • AliSQL Cluster、提供99.99%的高可用,支持3可用区部署,提供金融级数据保护能力。
  • Sequence Engine、顺序数生成更靠谱,更灵活可靠的生成各种主键。
  • 热点账户&库存秒杀、提升单行事务处理能力,应对积分、红包、库存等热点。
  • 隐式主键、保证所有的表都有主键,自动为不含定义的表加主键,可以提升复制性能。
  • Performance Insight、提供更多性能指标监控信息。
  • SQL Outline、透明的Hint固化SQL执行计划。
  • 大文件异步删除、可以平稳的删除上百GB或上TB的大文件。
  • 语句级并发控制、动态控制某个SQL的执行频率,限制单个差SQL对整个数据库资源的抢占。
  • Recycle Bin、延迟删除对象,遇到误操作,可以快速找回。
  • Semisync Optimize、优化主从同步的性能,提供更好的HA保护。

在《Elasticsearch开发者生态专场》,阿里云发布了Elasticsearch2.0,主要特性如下:

  • 增强版ES、索引构建性能提升95.8%、支持秒级弹性扩容、存储成本降低50%以上。
  • Logstach as Service、开箱即用的Logstach云托管服务、支持OSS、LogService(阿里云自己的日志服务)的input插件。
  • 阿里NLP分词器、阿里达摩院倾力打造、默认词库超过700MB、支持热词库更新。
  • 智能运维、智能诊断Elasticsearch实例健康状况、定期生成诊断报告,降低运维成本。

在应用场景分享和圆桌论坛环节,众安保险、Elastic Code、阿里云安全团队分别介绍了ElasticSearch在保单搜索、代码搜索、安全风控领域的应用。

在《NoSQL数据库专场》,介绍了Redis、MongoDB、HBase、Cassandra、GDB这几种NoSQL数据库。

这其中只有GDB不是开源数据库,GDB是阿里云自研的,主要面向在线业务的图数据库服务。阿里云GDB支持主流的Gremlin图数据查询语言,支持ACID事务、提供自动索引、无需定义Schema、主要用于社交网络、金融欺诈检测、实时推荐引擎、知识图谱、网络/IT运营等场景。
这其中被应用的最广泛的应该是Redis,阿里云上的Redis有什么不同:

  • 中心化的集群架构,在不影响可用性的前提下提高兼容性,支持读写分离、便于深度优化定制。
  • 支持热升级、在用户无感知的情况下对Redis Proxy代理进行升级。
  • Redis数据迁移方案、通过开源项目RedisShake/RedisFullCheck支持跨云热迁移与校验Redis数据、上的去,也下的来,斗鱼的混合云架构中大量使用了RedisShake/RedisFullCheck。
  • Redis混合存储、提供混合存储实例,结合RocksDB实现数据即时落盘,突破内存限制。

针对MongoDB,阿里云提供安全审计、备份恢复、诊断分析、MongoShake复制、企业级存储引擎的支持。

HBase一般和大数据相关,但在这里,HBase是作为一项NoSQL技术被讨论的,在阿里云内部HBase有一万+的节点、峰值请求3亿+、存储了200PB+的数据、服务了内部9000+的用户。为了降低HBase的存储成本,阿里云HBase支持自动存储分层,可将冷数据自动迁移到OSS。在性能方面,通过对日志存储等技术细节的优化,阿里云托管的HBase要比自建在ECS上的HBase性能有几倍的提升。

最后一个要介绍的是Cassandra,阿里云应该是国内最早开通Cassandra服务的云服务商。Cassandra是结合了Google BigTable和亚马逊DynamoDB的一个NoSQL数据库实现,但这里的NoSQL是Not Only SQL的意思,Cassandra 使用名为CQL的类SQL语言,可以让会MySQL的开发和运维人员在一台之内学会Cassandra。Cassandra的一些成功案例包括:

  • 用户画像&历史订单、亿级别用户数据、100+用户属性、6000万+日更新数据,99%的延迟控制在5ms以内。
  • Feed流、1000+节点、500+TB数据、平均延迟20ms。
  • 小对象存储、Read/Write QPS 100K+、对象平均大小50KB、平均延迟7ms。
  • 推荐平台、结合Kafka、MongoDB、Spark、Redis构建的商品推荐平台,通过Kafka对日志进行采集,结合MongoDB中的商品信息,通过Spark实时处理引擎将画像数据推送入Cassandra,通过Spark离线计算引擎每30分运行一次推荐,结果存入Redis。

在阿里云上的Cassandra有这些不同:

  • 自动化运维
  • 兼容DynamoDB(AWS的客户看过来)
  • 备份恢复(待支持)
  • 全链路优化性能提升100%+
  • 自研公网访问:多种网络环境VPC、公网,Server自动切换路由链路,开源客户端无需改动
  • 自研分级安全插件:在原有super user上,多一级system user,保护云上核心资源不被篡改。
  • 对接到阿里云产品生态 —— DTS、CMS、CDP、云Kafka、X-Pack Spark等。
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
1月前
|
SQL 存储 人工智能
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。
192 7
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
|
6月前
|
SQL 存储 NoSQL
SQL、NoSQL还是NewSQL
【7月更文挑战第5天】SQL、NoSQL还是NewSQL
116 1
|
3月前
|
SQL 存储 NoSQL
SQL和NoSQL数据库的全面比较
不可否认,已有越来越多开发人员愿意使用NoSQL数据库,并且在不断地壮大着其相应的社区。但是,相对于成熟的SQL社区,该领域的专家和顾问可能需要更多的时间,去解决那些未曾被记录的NoSQL问题。
124 0
|
5月前
|
SQL NoSQL 数据库
开发效率与灵活性:SQL vs NoSQL
【8月更文第24天】随着大数据和实时应用的兴起,数据库技术也在不断发展以适应新的需求。传统的SQL(结构化查询语言)数据库因其成熟的数据管理机制而被广泛使用,而NoSQL(Not Only SQL)数据库则以其灵活性和扩展性赢得了众多开发者的青睐。本文将从开发者的视角出发,探讨这两种数据库类型的优缺点,并通过具体的代码示例来说明它们在实际开发中的应用。
146 1
|
6月前
|
SQL 存储 NoSQL
. NoSQL和SQL的区别、使用场景与选型比较
【7月更文挑战第30天】. NoSQL和SQL的区别、使用场景与选型比较
94 15
|
6月前
|
SQL 存储 设计模式
SQL与NoSQL的比较?
【7月更文挑战第30天】SQL与NoSQL的比较?
44 13
|
5月前
|
SQL 存储 NoSQL
从SQL到NoSQL:理解不同数据库类型的选择与应用——深入比较数据模型、扩展性、查询语言、一致性和适用场景,为数据存储提供全面决策指南
【8月更文挑战第31天】在信息技术飞速发展的今天,数据库的选择至关重要。传统的SQL数据库因其稳定的事务性和强大的查询能力被广泛应用,而NoSQL数据库则凭借其灵活性和水平扩展性受到关注。本文对比了两种数据库类型的特点,帮助开发者根据应用场景做出合理选择。SQL数据库遵循关系模型,适合处理结构化数据和复杂查询;NoSQL数据库支持多种数据模型,适用于非结构化或半结构化数据。SQL数据库在一致性方面表现优异,但扩展性较差;NoSQL数据库则设计之初便考虑了水平扩展性。SQL使用成熟的SQL语言,NoSQL的查询语言更为灵活。
119 0
|
5月前
|
SQL NoSQL 关系型数据库
性能与扩展性的考量:SQL vs NoSQL
【8月更文第24天】在选择数据库系统时,开发者和架构师面临着一个关键决策:是选择传统的SQL(结构化查询语言)数据库还是现代的NoSQL(非关系型)数据库。这两种类型各有优劣,尤其是在性能和扩展性方面。本文将深入探讨SQL和NoSQL数据库在这两个方面的差异,并通过具体的代码示例来展示它们各自的优势。
186 0
|
5月前
|
SQL 存储 NoSQL
数据模型与应用场景对比:SQL vs NoSQL
【8月更文第24天】随着大数据时代的到来,数据存储技术也在不断演进和发展。传统的SQL(Structured Query Language)数据库和新兴的NoSQL(Not Only SQL)数据库各有优势,在不同的应用场景中发挥着重要作用。本文将从数据模型的角度出发,对比分析SQL和NoSQL数据库的特点,并通过具体的代码示例来说明它们各自适用的场景。
142 0
|
7月前
|
SQL 存储 NoSQL
SQL与NoSQL数据库的选择:技术与场景驱动下的决策
【6月更文挑战第16天】**SQL vs NoSQL数据库:技术与应用场景比较。SQL数据库以其关系模型、ACID特性、灵活查询及事务处理见长,适合结构化数据和强一致性场景。NoSQL则以数据模型灵活性、高可扩展性、高性能及低成本著称,适合大数据、高并发和快速迭代的需求。选择应基于业务需求、数据特性、系统架构和成本。**