数据架构难点

数据架构是架构设计中很重要的一环,可能对于很多DBA而言,数据管理,数据优化,数据迁移类的工作居多,而对于数据架构方面的工作也会思考少一些,这方面就会薄弱一些。

如果在这个行业里有一定的经验,就会发现如果细细来看数据架构,原来很多东西我们是在这么用,但是没有一个系统的整理和分类来归纳出来,有些时候我们做技术很容易陷入一个漩涡,那就是很容易去考虑一些非常具体的事情,而很难从整体上来把握。今天下午看了下温昱老师的书《一线架构师实践指南》,这方面的很多盲点都得到了一个系统的解答。

数据架构中的一个难点:数据分布问题在数据架构中是很重要的一环。随着数据,系统量级,业务场景的需求,数据分布有6中具体策略。分别是独立Schema,集中,分区,复制,子集,重组。

这几个概念听起来可能有些抽象,我们逐个来说一下,其实我们很多场景就是这么在用。

独立Schema:一个大系统由很多子系统组成,比如业务A有表testa,业务B有表testb,则他们都有独立的Schema来定义存放,这样能够减少系统之间的相互影响,避免将问题复杂化。

这一点来说在Oracle是用户Schema,在MySQL则是database这个层级体现出来。

集中:这种策略的核心就是“集中存储,分布访问”,比如很多业务都会访问表test1,test2,test3,则这些数据是集中存储起来的,不同的业务根据需求来分布访问。这一点用Oracle RAC来解释最清晰不过了。可以使用共享存储来集中式存储应用数据,然后通过多个计算节点来扩展读写需求。

分区:这个分区和数据库里的分区表不同,这个是基于架构层面,水平分区和垂直分区,水平分区的使用场景要广泛的多,比如一个用户信息表,存放了不同的区域的用户数据,我们可以根据地域来作为区分依据,这样就把这个表的数据做这样的拆分,放在不同的用户下,或者放在同一个用户表结构相同,表名不同的表里里面。 而相对来说,垂直分区的使用场景就局限很多,比如表test有a,b,c,d四个字段,做垂直分区就可以拆分,比如(a,b),(c,d) 。总体来说分区随着数据量的增长需要提前规划和设计。

复制:这个概念说通俗一些就是多副本,存在多分数据的情况,这个主要是通过实时或者快照级别来保持多个数据副本的数据一致性。这个策略在MySQL中Master,Slave的读写分离就是一个很典型的例子,或者是MySQL最新的MGR就是一个很经典的说明。 Oracle中的Primary,Active Data Guard也是一种体现。

最终是保证有多分数据副本,达到数据一致性。

子集:这个模式相对有些抽象,和复制有一些相似,但是是子集数据的一致性,比如我们有大量的用户交易数据,根据不同的渠道,比如网银渠道,手机微信支付,支付宝支付等会做特定的数据子集的一致性同步。

重组,这个分为两种类型,统计性重组和结构性重组,就是从不同的维度来进行数据钻取。比如我们根据一些交易数据的细节,需要得到一个基本的数据情况,比如交易流水总量,账单信息等,在很多统计分析的场景中就会存在,这是统计性重组。

而如果我们有用户的概要信息,用户的详细信息放在更多具体表中关联,这样的情况就是结构性重组。其实Oracle中的物化视图刷新在平日的工作中,这两种类型就很常见。

我们简单总结一下,比如一个医院的用户数据和病历数据,从数据架构的分布角度来考虑,该怎么设计,首先是用户数据,这个极可能要统一集中式管理,所以集中就是一个相对合适的方案,而用户的病历数据考虑到地域性的特点,为了提高性能和访问情况,可以考虑使用复制的方案。

比如电信行业的计费数据,数据量非常大,在数据架构的分布上,就需要采用分区的策略,比如我们按照账期的业务规则来划分,把不同账期的数据分布在不同的数据存储中。

比如游戏行业数据架构中的数据分布,不同的游戏服彼此独立,没有强耦合关联,就可以考虑使用分区的策略,而用户的基础信息这些需要做到平台化,基于管理和安全角度,最好能够统一规划,所以集中就是一个很不错的方案。

当然从质量属性方面来看。这6中方案还是有一定的特点,有优势有劣势。

我们就从可靠性,可伸缩性,通信开销,客观理性,数据一致性这几个方面来看看六种数据分布方案的情况。

可靠性上,复制最佳。

可伸缩性方面,分区中的水平分区最佳

通信开销方面,独立Schema最佳

可管理性方面,独立Schema和几种策略最佳

数据一致性方面,集中最佳。

可以发现,子集和重组均没有入榜,也能够间接说明这两种数据分布还是有一些特定的使用场景,不具有普适性。

(0)

相关推荐

  • 什么数据库可以撑起微信支付每天数亿笔交易?

    本文作者:李跃森 大家好,我是李跃森,目前负责腾讯云TBase数据库研发的相关工作.今天跟大家分享的内容主要分为两大章节:第一章,数据库技术的基本概念和基本架构:第二章,TBase产品的典型案例,以及 ...

  • CDP(Continuous Data Protection,持续数据保护)技术

    CDP(Continuous Data Protection,持续数据保护)技术是对传统数据备份技术的一次革命性的重大突破.传统的数据备份解决方案专注在对数据的周期性备份上,因此一直伴随有备份窗口.数 ...

  • 第20讲:什么是数据一致性与 Saga 模式

    从本课时开始,我将开始介绍跨微服务的协作与查询,这一部分的内容主要涉及微服务之间的交互方式.由于每个微服务一般都各自独立存储数据,所以在不同微服务之间共享数据变得复杂.本课时将讲解微服务架构的应用中的 ...

  • 什么是集群,集群的概念介绍

    集群术语须知 服务硬件:指提供计算服务的硬件,比如 PC 机.PC 服务器. 服务实体:服务实体通常指服务软体和服务硬体. 节点(node):运行 Heartbeat 进程的一个独立主机称为节点,节点 ...

  • 解决数据架构难点数据分布的六种策略

    from:PYY 数据分布的六种策略 1)       独立Schema(Separate-schema) 2)       集中(Centralized) 3)       分区(Partition ...

  • 一文尽览:数据趋势、数据治理、数据架构、数据中台、数据安全数据运维

    作者丨韩锋频道 作为数据库领域重量级的大会,DTCC每年都会引发人们的关注.通过大会,可以了解行业动态,洞悉趋势发展,学习最新技术.今年因个人原因,没有现场参会.所幸近期大会PPT材料已放出,抽空学习 ...

  • 面向数据架构的云演变

    现代数据架构的概念在过去的10多年里发生了巨大的变化,具体可以参见公众号"补天遗石"的<从数据仓库到数据湖--浅谈数据架构演进>一文. 把时钟调回来,回想一下那些有许多 ...

  • 老曹眼中的面向数据架构

    数据是系统的核心,在面向服务的架构之外,也可以考虑一下面向数据的架构方式.面向数据的服务架构需要支持多数据源异构,支持动态数据和静态数据,既支持公有云部署又支持私有云部署,提供多种数据应用和数据产品, ...

  • 终于有人把大数据架构讲明白了

    导读:如何存储.如何利用大规模的服务器集群处理计算才是大数据技术的核心. 作者:李智慧 来源:华章科技 大数据技术其实是分布式技术在数据处理领域的创新性应用,其本质和此前讲到的分布式技术思路一脉相承, ...

  • 数据架构总体设计方案(ppt)

    数据架构总体设计方案(ppt)

  • 什么样的数据架构,让初创企业也能做到全球领先?

    凭借灵活扩展.专门构建.数据融合.深度智能.开源开放等特点,亚马逊云科技"智能湖仓"架构能够帮助企业快速挖掘数据价值,成为数据驱动型组织,就算是初创企业也不例外. 一家令人刮目相看 ...

  • 大数据架构师、数据可视化工程师…数空科技一连向你抛出多个高薪职位! | 大数据周聘汇

    数据猿导读 本周的[大数据周聘汇]中有数空科技.数联道(北京)科技有限公司.国网计量中心三家公司,涉及大数据架构师.数据可视化工程师.大数据咨询师DA等多个岗位. 作者 | abby 1 数空科技 数 ...

  • 常用的几种大数据架构剖析

    大数据 架构 数据分析工作虽然隐藏在业务系统背后,但是具有非常重要的作用,数据分析的结果对决策.业务发展有着举足轻重的作用.随着大数据技术的发展,数据挖掘.数据探索等专有名词曝光度越来越高,但是在类似 ...