山东建筑材料网络社区

实现数据库转型的 8 项技术

只看楼主 收藏 回复
  • - -
楼主
  

什么是数据库?很久以前,这很简单。数据库是一个现代的 Bob Cratchit(狄更斯笔下的人物),把数据放在由非常直的列组成的表格中,每一列的每一行都有一个输入。漫长而无尽的矩形显示的信息会一直延伸下去。

关系型数据库已经成为现代计算的基础。绝大多数网站都只是涂抹在 SQL 之上的一堆 CSS。能让我们感到有所不同的不过是在一张大表中又增加了一行。

随着开发人员逐渐意识到并不是所有的东西都适合放到一张简单的表中,人们对大矩阵式表格的热情正在慢慢消退。而且开发人员非常聪明,热衷于为每一需求寻找解决方案,他们开始创建更好、更新的方式来存储信息。过去的几年里,我们存储数据的其他机制出现了爆炸式的增长。

这 些 非 常 棒 的 新 选 择还是数据库吗?还是要把数据放到一些大的矩阵中才能成为数据库吗?有些人喜欢用“数据存储”这个词来区分现代机制,因为“数据库”这个词在我们的头脑中已经根深蒂固,认为它就是一种旧的表结构。让我们把这些留给哲学家们吧。我们只是输入数据,然后得到答案。

这里介绍了以新形式和新表格重塑数据库的 8 种方法。

GPU计算

很久以前,开发了视频卡来为孩子们的游戏描绘出精美的场景,而现在所谓的图形处理单元能够进行大量的非图形处理任务。数据搜索只是这些处理单元能够胜任的非图形操作任务之一。挖掘大量的数据来寻找匹配,其本质上就是并行操作,包括了很多重复数百万次的基本的工作(测试等式)。因此,把工作交给 GPU 的数千个处理器,完成起来就会非常简单。

最成功之处不是在于回答每一查询(显然要快很多倍),而是在准备工作中,因为几乎不需要预处理。很多数据库通过维护索引来节省时间,这实际上是针对每个可能搜索的预先计算结果。如果这个索引损坏了或者被破坏了,重建它可能需要几个小时、几天,甚至几个月的时间。不过,如果数据可以放在 GPU 的内存中,通常不需要索引就能够得到数据。如果数据变化很快,大部分索引从未使用过,那么跳过预处理就能够提高效率。

非易失性存储器(NVRAM)

程序员 50 年前小试牛刀的时候就很容易做到这一点。他们不必采用精心设计的协议来处理 RAM 和硬盘之间的数据,以确保一致性。这是因为当时的记忆体是铁芯,当电源关闭时数据并没有被清除。这些好时光可能很快又会回来,因为芯片制造商正在讨论用 NVRAM,即非易失性存储器来取代RAM。

对 于 数 据 库 程 序 员 来说,这极大的改变了游戏规则,因为他们最大的挑战(甚至是他们能继续工作下去的最大原因)正在消失。有些人建议,数据库可以更快一些,因为会话语义能更简单些。而有些人的想法则是在数据写入介质之后构建恢复日志,而不是在写入之前。

没有人知道什么时候能尘埃落定。如果人们不再需要永久记录,他们还会使用数据库吗?还是因为需要搜索和索引而再次使用数据库?需要重新思考所有的算法和所有的架构。今后未来十年左右,我们会知道使用NVRAM 的最好方式。

扩展SQL

当 NoSQL 开始大规模应用的时候,一个很大的特点是能够把您的数据存储扩展到多个节点上。像Cassandra 和 MongoDB 这样的 NoSQL 数据库,看起来具有所有大规模存储的优点,意味着人们可能会放弃以前习惯了的 SQL 环境。

在现实中,这也不需要付出什么代价。虽然前期很容易在大型数据库中进行一些试验——因为舍弃了 SQL的所有负担,但却不能解释SQL 为什么不能在大规模运行的多台机器上正常工作。事实上,Oracle 这样的企业已经做了很多年。

最 新 的 大 型 数 据 库 允许您运用所有 SQL 知识,方 便 地 使 用 分 布 在 大 集群 上 的 一 组 数 据。 例 如,CockroachDB 提供了一个标准的 SQL 查询引擎,可以访问多个节点上复制的数据,并能够保证 ACID。是的,您需要为实现数据一致性的基本支持而付一些费用,但比您预期的少很多。

地理空间数据库

传统的数据库是建立在一维数据集上的,不支持含有地理信息的二维坐标。您可以进行模拟,使用标准数据库,参照地理坐标来完成基本任务。如果您一定要把经度和纬度放在不同的列中,那么并不难搜索由一系列经度和纬度定义的框架中的所有行。但是,一旦您想超越这个基本框架,标准 SQL 查询就无能为力了。

地理空间数据库增加了一些额外的功能,简化了在二维空间中的搜索、排序和交叉。例如,空间索引一般通过在坐标空间上添加一个网格来进行工作,以便更快地搜索二维和三维环境中相邻的行。

这些索引支持使用“包含”、“重叠”、甚至“触摸”等操作以及由多边形定义的集合来编写查询。所有这一切都使得对现实世界的推理更有效。

图形数据库

表是很多数据结构很好的存储库,但却不适合对一个巨大的、新兴的数据结构进行建模,这一数据结构推动了互联网网络过去 10 年的发展。当所谓的“社交图”爆发时,我们的计算机中有越来越多的节点,并在它们之间建立了链接。节点之间的链接通常比其中的数据更重要。当然,很容易在经典关系型数据库中存储和检索一对节点之间的链接,但却难以进行更复杂的查询。在一 个 友 谊 网 络 中,Bob 经过两跳或者三跳就能到达Chris 吗? Mary 在 和 她 的一个朋友约会吗?

图形数据库更容易进行这样的查询。由于查询知道怎样查找链接指定的邻域,因此,不会没完没了的去查找表。Neo4J、OrientDB 和DataStax 等工具便是众多选择中的一些实例。它们也有自己的查询语言。

云数据库

最大的变化之一在于我们怎样购买数据库软件。过去,我们购买自己的机器,签署许可协议,在我们自己的机器上运行软件。而现在,云公司提供服务,把数据存储在我们看不见也摸不着的地方。他们只是说,当我们想要的时候,就会有数据。

优点是显而易见的,不需要维护服务器,也不需要放置服务器的机房。没有必要担心许可、配置或者安装补丁,让别人去处理这些头痛的问题。而且解决方案也很便宜——特别是如果您没有存储大量数据的话,服务通常按字节收费。

但也有风险。其他人能访问数据吗?服务器是否受到保护,不受电源浪涌、闪电风暴或者洪水的影响?数据是否备份到一个可信的异地位置?您不得不信任云供应商所做的一切。

谷 歌、 微软和亚马逊等主要的云服务提供商提供了一长串的数据库服务。现在,Oracle、MongoDB 和DataStax 也支持在云中提供数据库。

人工智能(AI)

有人说,人工智能只是最新一代的研究成果,刚刚从实验室里出来投入生产。如果是这样的话,有一些新产品和解决方案都有着“机器学习”、“神经网络”和“深度学习”等这样的流行词。这些看起来不像数据库,但您的确向其填入数据,问它们问题。为什么不是呢?人工智能解决方案的好消息是,您不需要知道您正在寻找什么。您可以挥动您的手,问一些模糊的问题,比如“最有趣的”或者“最亲密的”。没有必要使用正确的关键字,也就是客服人员总是要求您写下的那些烦人的参考数字。

坏消息是您不知道是否得到了正确的答案,因为您没有精确地设定问题。这篇博客真的是最有趣的吗?谷歌之所以成功,最大的秘诀就是没有绝对正确的答案。如果您要求个大概,那么没有人会抱怨。

有太多太多的机器学习工具包。您可以问问您最喜欢的搜索引擎,“最有趣”的人工智能是什么。

区块链(Blockchain)

区块链这个词涉 及 ,但在所有关于货币的讨论中,其基础都是极其稳定和实用的分布式数据存储。每个人都有机会更新长表中的数据,每个人都可以分享答案。最令人兴奋的是,每个人都可以分享相同的答案。这可能适合那些狂热于比特币的企业。

一些开发人员更进一步,讨论了“智能合同”,这是另一种说法,即数据库中的信息是可信的,足以让人们将其作为所有权之类的法律问题的基础。您不能用一个普通的数据库来做这件事,因为任何有管理权限的人都可以修改它。

但也有缺点。 每 个 用户必须有一个加密密钥,所有的会话都必须经过数字签名。如果丢失或者忘记了密钥,那些行中的数据会被永远冻结。如果密钥被盗,那一切都完了。换句话说,区块链是不完美的,但它比标准模型可靠。

R3、Ripple 和 IBM 只是探索这一领域的众多竞者中的三家企业。很多大银行都有自己的内部项目。它们自己还有比特币和山寨币公司,这也是生态支持系统的主要组成。

作者:Peter Wayner    编译:

PeterWayner是InfoWorld的特约编辑,他撰写了 16 本各种主题的书籍,包括开源软件、自动汽车、增强隐私计算、数字交易和信息加密等。

原文网址:http://www.infoworld.com/article/3226045/database/8-technologies-transforming-the-database.html


本文摘自计算机世界报

- end -



其他精彩回顾:

管理问题,其实是沟通问题

一看吓一跳,导致数据分析失败的原因这么多!

十大影响深远的物联网成功案例

作为陶瓷行业第一家上市公司,它如何让新零售梦想照进现实?

2018年全球最火爆的七个IT职位,最热门的还是它!

 发现·前沿 《海外风向标》|  对话·精英 《CXO百脑汇》|  聚焦·行业 《早安,IDG》|   每周精彩内容,尽在e行网。 




举报 | 1楼 回复