写点什么

NoSQL 数据库敏捷数据模型

  • 2018-11-05
  • 本文字数:1922 字

    阅读完需:约 6 分钟

NoSQL 数据库敏捷数据模型

在近日举行的 2018 年数据架构峰会上, Hackolade 首席执行官 Pascal Desmarets谈了 NoSQL 数据库的敏捷建模。他说,在 NoSQL 数据库中,由于没有规范化约束,数据建模变得更加重要。非结构化的多态大数据在数据治理和监管( GDPR 和 PII)以及利用积累的信息的能力方面都提出了挑战。

Desmarets 还谈到了数据建模如何帮助企业从 RDBMS 迁移到 NoSQL。在关系数据库和 NoSQL 数据库中,数据建模的好处包括提高应用程序质量,改善数据质量、GDPR& 隐私身份信息以及商业智能。

团队应该根据需求选择合适的NoSQL 数据库。例如,如果你需要管理简单的模式和快速地读写而不需要频繁地更新,那么就选择键- 值存储。如果你需要支持复杂查询的灵活模式,请选择文档数据存储。面向列的数据库很适合读取速度相对较低而写入速度极高的情况。图数据库更适合于需要在数据点之间进行遍历的应用程序,因为你需要能够存储每个数据点的属性以及它们之间的关系。

他谈到了传统的数据建模过程以及我们如何从数据建模过渡到模式设计方法。概念数据模型已经被领域驱动设计(DDD)所取代,不再需要逻辑数据模型,物理数据模型则被物理模式设计所取代。

在敏捷开发过程中,数据建模在过程的每个步骤中都有作用,包括在生产环境中。数据建模工作成为多个项目涉众之间的共享责任和对话。

他还说,领域驱动设计(DDD)和NoSQL 像是为彼此量身设计的,DDD 语言和NoSQL 数据库的概念直接吻合。他认为,在整个的策略、过程、体系结构和技术中,一致性是必要的,因为将所有这些原则一起应用比孤立地应用一两项原则更可取:领域驱动设计、敏捷开发、“以数据为中心(Data-Centricity)”、微服务、事件驱动的体系结构、NoSQL、DevOps 和云。

InfoQ 采访了 Desmarets,内容涉及 NoSQL 数据库数据建模及大数据管理的最佳实践。

InfoQ:每种 NoSQL 数据库类型的数据建模方法都不同吗,比如像 Cassandra 这样的时间序列数据库和像 Neo4j 这样的图数据库?

Pascal Desmarets:总体的方法非常相似,但是实现可能有很大的不同。为了利用 NoSQL 的优点,设计特定于应用程序的数据模型是非常重要的,这样就可以以优化查询性能的方式存储信息。对于那些几十年来一直使用与应用程序无关的数据建模原则的人来说,这种思维转变可能是一个挑战。对于我们中的许多人来说,规范化规则已经成为第二天性,我们必须强迫自己应用查询驱动的方法来为 NoSQL 数据库进行模式设计。

查询驱动的方法对于所有 NoSQL 数据库家族都非常相似。但是,当涉及到每种技术的模式设计的具体方面时,区别最大的是图数据库和 NoSQL DB 其他三个家族之间的差异。图数据库的特点是:在执行查询时,图遍历性能要求任何其他技术中的属性在图数据库中都可以提升为实体(或节点)的状态。

另外,每个 NoSQL 数据库家族中也存在差异。例如,对于图数据库,属性图 DB 和 RDF 三元存储之间有根本的区别。在 JSON 文档数据库中,你会发现 Couchbase MongoDB 之间的存储结构存在差异。类似地, HBase Cassandra 有非常不同的数据存储方法。

InfoQ:您能谈谈 NoSQL 数据库敏捷建模中的一些最佳实践吗?

Desmartes:几十年来,正如我们所熟知的那样,数据建模在敏捷开发环境中承受着巨大的压力。尽管试图使数据建模更加敏捷,但它经常被视为两周冲刺中速度和节奏的瓶颈。世界各地的数据建模者都感觉被排除在这个过程之外。事实上,某种形式的模式设计是必不可少的,就是说,需要重新设计数据建模以保持其重要意义。

首先,在整个开发冲刺和应用程序生命周期中,数据建模需要成为一个迭代过程,而不是一项繁重的前端任务。

数据建模还需要成为数据建模者(他们擅长抽象他们对业务的理解)和开发人员(他们真正理解如何将需求转换成代码)之间的协作过程。

这就要求数据建模人员成为 Scrum 团队不可或缺的一部分。

该方法需要适应开发技术和技术栈,特别是前面描述的查询驱动和特定于应用程序的方法。它必须结合领域驱动设计、用户体验和业务规则流程图以及屏幕线框图和报表,才能获得在设计模式时需要考虑的应用程序查询。

最后,我们需要能够灵活适应新环境的下一代工具!

他还说,在相当长的一段时间里,NoSQL 数据库供应商通过使用“无模式”或“非关系型”等术语创造了一种差异化和轰动效应。但是,NoSQL 数据库是如此的灵活和强大,没有经验的用户如果不应用一些严格的技术,就很容易陷入麻烦。现在,供应商意识到,为了将他们的解决方案卖给企业,更明智的做法是使用术语“动态模式”。在使用 NoSQL 时,数据建模(或模式设计)实际上比关系数据库更重要。我们只是需要一种不同于以往的数据建模方法。数据建模者应该拥抱敏捷开发,并学习新技术栈,证明它们在这个过程中增加了价值。

查看英文原文: Agile Data Modeling for NoSQL Databases

2018-11-05 07:592283
用户头像

发布了 1008 篇内容, 共 422.2 次阅读, 收获喜欢 346 次。

关注

评论 1 条评论

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

2021金三银四程序员必备:“基础-中级-高级,几种线程安全的Map解析

Java 程序员 后端

2021最新华为面经分享:Java高分面试指南(25分类1000题50w字解析

Java 程序员 后端

2021终于拿到阿里Java后端岗offer!只因我做了这个决定

Java 程序员 后端

21 利用分布式消息队列降低系统耦合性,java后端项目实战

Java 程序员 后端

77道Spring面试题以及参考答案(2021年最新版),java面试题加答案

Java 程序员 后端

2021最新 SSM(Spring+Spring MVC,java分布式系统面试题

Java 程序员 后端

5分钟掌握JVM常用选项及相关知识,工作面试够用了,dubbo和zkeper的面试题

Java 程序员 后端

GitHub标星139K的:“Linux系统开发教程”

收到请回复

Linux 架构 后端 计算机

20年IT农民工终于分享出了SpringCloud微服务架构实战文档,太强了!

Java 程序员 后端

23种设计模式与六大原则看了又忘,忘了又看?是你看的方法不对

Java 程序员 后端

4年Java程序员十面阿里终拿下offer,评级P6+年薪30-40w无股票

Java 程序员 后端

6年开发,五面阿里,耗时3月系统梳理Java全栈知识点,劲爆

Java 程序员 后端

97 道大厂 Java 核心面试题出炉,来试试看你会几道题?

Java 程序员 后端

ACID 过时?用 Sagas 搞定数据一致性,面试字节跳动的Java工程师该怎么准备

Java 程序员 后端

2021最新Java岗面试清单:15个技术模块(程序员必备,威力加强版

Java 程序员 后端

2021最新美团面经分享:999页Java程序员面试清单(下载量已突破30W

Java 程序员 后端

2021首次分享面试阿里P6心得:1000字超全面试题答案解析

Java 程序员 后端

2021!阿里技术官最新发布Java零基础就业宝典,不用再怀疑人生了

Java 程序员 后端

20年IT农民工终于分享出了SpringCloud微服务架构实战文档,太强了!(1)

Java 程序员 后端

9000字通俗易懂的讲解下Java注解,你还看不明白?,linux操作系统基础与应用答案

Java 程序员 后端

99%的面试会问到的Redis面试题Redis面试必磕,mybatis面试题2020

Java 程序员 后端

30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软

Java 程序员 后端

43 道检验基础的 JavaScript 面试题,一招教你看懂Netty

Java 程序员 后端

太难为我了,三战阿里,拿下27K*16offer(附七面面经)

Java 程序员 架构 面试 后端

32 岁的我裸辞了,八年 Java 老鸟,只因薪水被应届生倒挂

Java 程序员 后端

47天洒热血复习,我成功“挤进,java多线程面试算法

Java 程序员 后端

5份Java高级工程师Offer=1套pdf+10本书+414道大厂Java面试真题(1)

Java 程序员 后端

@RequestMapping属性详解 - SpringMVC高手进阶,2021金九银十

Java 程序员 后端

208道Java高频面试题,让你面试之路畅通无阻!,med教程入门教程

Java 程序员 后端

5份Java高级工程师Offer=1套pdf+10本书+414道大厂Java面试真题

Java 程序员 后端

5年开发经验,面试10分钟后,面试者,转疯了

Java 程序员 后端

NoSQL 数据库敏捷数据模型_文化 & 方法_Srini Penchikala_InfoQ精选文章