追寻终极数据库


摇晃的数据库钟摆

IT行业的技术决策就像一只来回摇晃的钟摆。
大约十年前,新型网络公司开始收集比以往任何时候都更多的数据,他们迫切需要将数据库系统的扩展性能和处理性能提升到一个新的水平,当时已经出现了能在大规模并行处理(MPP)构架上扩展的关系型数据库管理系统(RDBMS),例如:

  • 适用于联机事务处理(OLTP)或运营工作负载的NonStop SQL/MX。
  • 适用于商业智能(BI)/企业数据仓库(EDW)工作负载的Teradata和HP Neoview。
  • 适用于分析工作负载的Vertica、Aster Data、Netezza、Greenplum和其他架构。

然而,这些专有数据库存在一些劣势:

  • 无论是软件和专门硬件,均价格不菲。
  • 无法保证Schema的灵活性,而灵活性对于面临动态变化的成长型公司而言十分重要。
  • 无法弹性扩展,因此难以满足容量大和速度快的大数据要求。
  • 无法很好地处理半结构化和非结构化数据(是的,您可以将这些数据插入XML、BLOB或CLOB列,但如果不使用复杂语法,您很难轻松处理数据。采用附加功能与供应商绑定,灵活性最小)。
  • 用户自定义函数(UDF)仅支持标量函数,因此,用户代码受到限制而无法并发执行,后来Map/Reduce较好地解决了这个问题。
  • 需要花费很长时间解决可靠性问题,在某些情况下,平均无故障时间(MTBF)非常长,另外,在亚马逊网络服务(AWS)的大量高端服务器上运行Hadoop更廉价且可靠性更强。到2008年,这一成本差异变得很大。

最重要的是,网络公司的需求十分简单,所以这些数据库系统就显得过于复杂,管理和部署都相当不易。这些公司在使用大数据时,事务支持、连接、预定义列和数据类型的元数据支持、优化访问路径以及RDBMS提供的许多其他功能不是必须的。大部分数据量本质上是过渡性质的,可能有至多几次访问,传统EDW方法存储数据的成本更高。因此,这些公司开始转向NoSQL数据库,以克服RDBMS的局限性,避免专有系统的高价格。

由于人们想通过最佳工具完成任务,因此,在多语言编程和持久性方面也摇摆不定。Hadoop 和NoSQL解决方案发展迅猛。为了操作简单并保持性能,NoSQL解决方案支持避免事务和连接的数据模型,而是采用JSON格式存储相关的数据结构。由于物联网(IOT)和机器产生日志数据等因素,数据的增长量和速度已急剧增加。NoSQL技术以非常高的处理速率容纳数据流。

NoSQL和Hadoop技术的普及使更多应用程序开始转移到这些环境,应用方式也日益多样化。随着网络规模初创公司的成熟,它们的运营工作负载需求增强,传统RDBMS功能变得更加重要。此外,虽然大型企业未面临与互联网初创公司相同的挑战,但他们也想利用该新技术的优势(但更想使用SQL)。以下是使用SQL的原因:

  • SQL使开发更容易,因为它在企业中被普遍使用。
  • 现存的工具和应用生态系统使用SQL语言。
  • 在某些情况下,事务支持很有用(尽管存在开销)。
  • 经常需要进行连接,SQL引擎能更有效地实现。
  • SQL能完成开发人员必须在应用程序或MapReduce工作中编写的代码。
  • 在许多情况下,预定义列的严格性存在优点,数据类型和检查强制性能维护数据质量。
  • 它促进统一元数据管理和跨应用程序强制执行。

于是,我们开始看到SQL、RDBMS和 NoSQL功能重新流行,在两方面提供最好的方案。Not Only SQL(而不是No SQL)和 NewSQL 开始流行。出现了大量的SQL-on-Hadoop新系统,主要用于BI和分析。这方面Hive、Stinger/Tez和Impala是领头羊,还有一些其他的开源和专有解决方案。NoSQL数据库也开始提供类似SQL的功能。在NoSQL或HDFS结构上运行的新型SQL引擎重新具备RDBMS功能,同时还提供了灵活的开发环境,包括图形数据库功能、文档存储、文本搜索、列存储、键值存储和宽列存储。随着2014年Spark 的出现,各大公司开始放弃采用Hadoop,而部署不同的应用程序开发范型,这些范型混合了编程模型、算法和函数库、流媒体和SQL,在内存中对只读数据进行快速计算。

钟摆又正在摆回原位,多语言趋势正逐渐失去魅力。有不计其数的语言、接口、API和数据结构待处理,人们花费太多时间整合不同技术,这需要大量培训和技能来开发和管理这种复杂环境。对同一数据运行运营、报告和分析工作负载会使海量数据从一个结构移动到另一个结构,这将导致数据的重复和延迟,并提高操作难度。通过多种接口访问数据的工具很少,另外,也没有单一技术能满足所有用例的需求。

在不移动、不改变、不复制或不延迟(处理)数据的情况下,对同一数据进行事务/操作、BI和分析工作负载的需求正在逐渐增加。

各大公司正在寻找一个能满足不同需求的查询引擎——终极数据库。451 Research中使用“融合”或“融合数据平台”一词,“多模式“或“统一”也可表示这个概念。而IT研究和咨询公司Gartner使用的“混合事务/分析处理“(HTAP)一词,应该是最确切的。

但能否寻找到终极数据库?本报告讨论在研究HTAP系统时所遇到的挑战,例如:

  • 同时处理运营和分析工作负载
  • 支持多个存储引擎,每个满足不同的需求
  • 为了提高运营和分析工作负载的性能,使用相同的数据模型
  • 提供满足企业运营能力的数据库引擎,用于支持运营和分析应用程序

在我们讨论这些问题前,让我们首先了解运营和分析工作负载的区别、查询引擎和存储引擎的区别。有了这个背景知识,我们将会理解为什么构建HTAP数据库是项伟大创举。

HTAP 工作负载:运营与分析

尽管人们对运营与分析工作负载的定义不同,图1-1所示的特征能满足本报告的分析需要。虽然HTAP指的是事务和分析工作负载,但在本报告中,我们指的是运营工作负载(包括事务工作负载)以及BI和分析工作负载。

图1-1 运营和分析工作负载的不同类型和特点

OLTP和运营数据存储(ODS)是运营工作负载。它们具有低延迟、超高容量和高并发工作负载的特点,例如,接收和履行订单、安排发货、客户开票、收取付款等。

另一方面,BI/EDW和分析工作负载是分析工作负载。相对来说,它们具有高延迟、低容量和低并发工作负载的特点,通过分析操作、历史和外部(大)数据来提高公司绩效,做出战略决策或采取行动来提高产品质量和客户体验等。

从简单、短事务查询到复杂、长时间运行分析,HTAP查询引擎必须能够服务于所有工作负载的服务级目标。

关于作者

Rohit Jain是Esgyn的联合创始人和首席技术官。Esgyn是一家开源数据库公司,致力于构建融合型分布式大数据平台。2015年,惠普将Apache Trafodion(企业级大数据MPP SQL数据库)捐赠给了Apache软件基金会。在Apache Trafodion的基础上,EsygnDB的愿景是建立一个能处理任何数据、任何大小和任何工作负载的融合型分布式大数据平台。在过去的28年中,作为一个资深数据库专家,Rohit在应用程序和数据库开发领域曾为Tandem、Compaq和Hewlett-Packard工作过。他经验丰富,主要涉及在线事务处理、运营数据存储、数据集市、企业数据仓库、BI和大规模分布式并行系统的高级分析。

追寻终极数据库 - 事务/分析混合处理系统的交付挑战 (1)相关推荐

  1. 追寻终极数据库 - 事务/分析混合处理系统的交付挑战 (3)

    挑战:支持多个存储引擎 以下内容并不是新发现:行优化存储适用于OLTP和运营工作负载,而列存储适用于BI和分析工作负载.频繁写入的工作负载适用于行式存储.对Hadoop而言,Hbase适合低延迟工作负 ...

  2. mysql dba系统学习-数据库事务详解

    mysql dba系统学习-数据库事务详解 上个星期去面试数据库管理员的工作,笔试通过之后就是直接的面试,他问了我一个问题,叫我介绍哈数据库的事务的看法和理解,但是不知所错的没有章法的乱答一气,唉唉, ...

  3. 列举MySQL事务的隔离级别_mysql dba系统学习(22)数据库事务详解

    上个星期去面试数据库管理员的工作,笔试通过之后就是直接的面试,他问了我一个问题,叫我介绍哈数据库的事务的看法和理解,但是不知所错的没有章法的乱答一气,唉唉,基础不扎实啊. 下面来好好的学习哈mysql ...

  4. 计算机毕业设计Java个人事务管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java个人事务管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java个人事务管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  5. 性能测试瓶颈分析与系统调优(10)mysql数据库性能瓶颈分析调优

    10.1数据库运行机制 数据库--本质就是一个软件系统,这个系统的功能:数据管理[增删改查] 整体结构: 从整体结构角度来看 得出两项优化方案:配置更好的内存:用更好的磁盘硬件,比如:SSD 注意点: ...

  6. 西数DES数据库取证分析大师系统

    西数DES数据库取证分析大师系统  软件界面             功能介绍: 支持勒索病毒加密的oracle数据库 可从数据文件 DBF,dmp文件恢复表数据,存储过程,触发器等所有数据.. (1 ...

  7. java计算机毕业设计律师事务管理系统源码+系统+mysql数据库+lw文档

    java计算机毕业设计律师事务管理系统源码+系统+mysql数据库+lw文档 java计算机毕业设计律师事务管理系统源码+系统+mysql数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语 ...

  8. mysql bulk update_Django bulk_create()、update()与数据库事务的效率对比分析

    下面以创建10000个对象为例进行测试: # 用for循环挨个创建,共花费37秒 for i in range(10000): name="String number %s"%i ...

  9. oracle 10 awr,其它 - Oracle 10g AWR Report 分析_数据库技术_Linux公社-Linux系统门户网站...

    Awr report 分析-其它 OLTP系统中必须关注的两个性能指标是LibraryHit与Buffer Hit.Library Hit指共享池中sql解析的命中率; Buffer Hit指内存数据 ...

最新文章

  1. Socket的三个关联函数
  2. java 获取资源,Java资源获取
  3. 日常必备的16条Linux命令
  4. python极简代码实现快速排序
  5. 『PyTorch』第十五弹_torch.nn.Module的属性设置查询
  6. mysql5.7.11-win64无法登录问题解决方案
  7. 软件测试52讲-测试新技术篇
  8. NPM酷库:cheerio,服务端jQuery接口实现
  9. [译]Flask教程--将表单数据发送到模板
  10. 邮件系统extmail搭建手册
  11. 发生致命事故8个月后,优步被获准在匹兹堡恢复自动驾驶测试
  12. base64图片解码与编码
  13. 【计算几何】德劳内三角剖分算法 | 利用 scatter 绘制散点图 | 实现外接圆生成 | scipy库的 Dealunay 函数 | 实战: A-B间欧氏距离计算
  14. Flink清洗日志服务SLS的数据并求ACUPCU
  15. 等精度测频法以及Verilog实现
  16. leetcode最热100道
  17. MySQL 国庆期间每类视频点赞量和转发量
  18. 【北亚数据恢复】DELL EqualLogic存储硬盘坏道数据恢复
  19. 重采样 resample
  20. 【NC】NC6系列金额计算处理逻辑剖析

热门文章

  1. 【OpenCV学习笔记2】OpenCV 完全安装 新增VS2010+OpenCV2.1,新增VS2010+OpenCV2.3.1
  2. 调整ViewState的位置,让你的asp.net页面对搜索引擎更友好
  3. Vue创建组件的三种方式
  4. P2387 [NOI2014]魔法森林
  5. windows2012下一端口多网站 Apache配置
  6. 远程查看日志-linux
  7. mysql12----explain
  8. 构建之法阅读笔记05
  9. iOS UINavigationController
  10. [转]通过脚本添加登陆/注销/开机/关机脚本