大数据架构建模群大咖研讨实录-20210406

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 大数据架构建模群大咖研讨实录-20210406

前言

最近在写书,实在是没时间更新了。前两天更了两篇文章,导致写书速度下降了好多,快赶不上进度了。

不过还好,我这大佬多啊,今天继续让大佬们代班,把群内聊天内容整理一下,供您参考。

都是群里聊天实录,直接复制粘贴的。肯定有错别字、语句不通顺的问题。您将就着看哈。

怎么理解宽表?

问题:

明细宽表怎么理解,选择好业务过程后,直接从ods取数到一张宽表里吗?

如果是,那这种宽表岂不是耦合了度量值和度值。也没有独立的维度表了,模型上岂不是很无章法?

讨论:

具体看情况吧,并不是必须按照你讲的那样来,大多数宽表都是空间换时间。

我理解,建模不可能严格按照第三范式,适当的冗余是OK的。

都是混合建模方式,没有绝对,适合自己业务,好用就行。

我们曾经在dw层想过用范式来应对上层变化的业务需求 后来发现有点天真了。

共享维度层必须要有。

不然怎么保证一致性维度?

宽表算不上模式,就是实在搞不定了,先拉个大表用着。实在搞不定了指的是现有技术和方法生态搞不定,不是指哪个团队那个人。

维度建模这种数据抽象方式对olap场景表现出了强劲的适应性。但是数据科学这今年突飞猛进,策略算法,图算法,运筹,数字化运营,需要的数据组织方式远远不是一两种建模方式能搞定的。

从来都是先有问题,再有大神站出来把问题抽象掉形成方法,不是反过来。

对于新出现的问题,现有的不管是方法论还是技术生态还远远不够。

你们这根本不叫建模,纯粹宽表,最后依赖会很混乱。后期风险很大,更不用说保证数据一致性了。

本来就是不得已为之,几个十亿级别的表,谁来了也得这么干。算不上什么方法,被逼的野狐禅。

没有所谓的混合建模方式,必须以一种建模方式为指导,基于业务做权衡,建模过程必须很清楚的指导这个权衡的优缺点,以及为什么要这么权衡,另外维度建模不等于冗余。

维度建模的核心是一致性维度,不能保证维度一致性不能叫维度建模。

大宽表就是容易造成依赖关系的混乱。

问题就是不做冗余sql有些写起来太复杂了 join一大堆的表,换个人来看文档都要崩溃了有些字段不知道去哪儿找。所以我们后面还是放弃了严格的范式。

宽表在dws和dwt吧。基于dwd模型层。

dws我们都是通用的派生指标,ads层才是宽表,直接面向后端。

所以我一直都比较好奇 维度冗余的边界在哪儿。

首先要能解决问题,解决不了问题,再规范也不实用。很多东西都是一次性的,根本做不到复用也没必要复用。其实还是得看各自的业务场景,有的场景适合,有的场景不适合。

维度冗余没有边界,但是所有事实里冗余的维度属性都要保证从共享维度里来。

把纬度冗余进事实表,如果纬度变化了,也要更新纬度表,这也增加了工作量呀。

变化了就要重跑下游依赖的所有的表……

我觉得靠冗余字段来提高访问效率这个出发点,现在已经不应该采用了。因为后面我们不是有kylin这些工具帮我们提高速度了嘛。

你就想明白你这个模型的定位,使用时你允许使用这张表进行关联扩充维度属性那就保留ID,如果不允许那就不需要,如果很纠结,那就思辨,允许会带来什么样的好处和坏处,不允许会带来什么样的好处和坏处,然后做权衡。

我现在公司里面在做集市项目,他们做了个汇总层,没有dwd,直接ods采数去做“明细宽表”,也没有维度表。我在想他们这样下去,这模型还是模型吗?

这就是最原始的ods+ads两层的做法吧。

宽表对业务来说主要是解决清单关联过多查询慢和不方便导出的问题吧。

统计来说宽表也是减少join(太耗时间)的目的。

id还是要有的,不然以后追溯和冲刷数据,以及对数简直就是噩梦。再说也不差那点存储吧?

感谢@何同学-数据建模-广州、@赖志明-金融监管大数据-北京、@北京-数据开发-郭东、@sun-上海_大数据、@L Y-消金数仓-北京、@Luka-数仓-深圳、@魏涛-数据产品经理-长沙、@sqlboy-大数据开发-杭州、@Old-数仓-杭州、@生命不息取数不止-指标设计-北京、@碎星-信息化-德阳、@陶瓷鱼、@倪武龙-数据治理-深圳 等一众大佬的绝世好问题和精彩讨论!

公共数据治理

问题:

有个不太成熟的问题向大家请教一下:如果客户管理从集团层面出发,不同领域对同一个客户数据进行管理或者变更,具体哪个领域对共用数据维护和质量负责?

讨论:

主数据管理。

这个就需要指定负责部门了。公共数据将信息的变更历史详细记录,如果必要可以分级和审批。

这部分数据是否要统一管理?业界有没有好的实践?

数据治理里面有专门一块叫做主数据管理,你可以看看。

ibm ecif就是干这个的?IBM有相关的产品 IBM MDM。

这一块是不是和 用户画像里面的 id-mapping有点像?

也有人直接写JAVA搞一个主数据管理系统。

收到,感谢,目前我们按主数据管理在实践的,但是落地的时候遇到这样的问题。

很多厂商,数据治理产品,数据资产管理和主数据管理都是分开的。

客户主数据要有对应数据拥有者去统一管理,不同领域的变更的话你可以考虑用某个领域为主导,正常来说,所有变更都应该发生在同一个主数据管理系统里面,然后同步到所有业务领域,这样才不会产生冲突。

感谢@李瑞-数据治理、@倪武龙-数据治理-深圳、@胡俊-爱保科技-数据平台-北京、@NULL-数据开发-深圳、@刘继峰-金山云架构师-北京 等各位大佬的绝世好问题和精彩讨论!

数据组织架构

问题:

能否在大数据组织架构设计上有所探讨?数据平台团队(基础平台和数据湖层)和数据应用团队(数据集市、数据分析及产品)分离会带来哪些问题? 。

讨论:

数据平台团队多以技术比较牛逼的开发人员组成,重视平台的高可用高性能高可靠,往往只着眼于如何解决问题,很少会关注为什么有这样的问题?数据应用团队以业务场景需求为导向,关注如何灵活取数,如何适配快速变化的业务。

前者追求高度抽象,通用的架构,后者追求个性化,迅速的响应,这两者在共性和个性的关系上往往会有不一致的情况,这个时候一般是要一个桥梁一样的角色,比如架构师,权衡折中。

不然平台建了人家业务也不认可你,人家业务自己从业务系统取数分析,效率也不高。

好的产品经理好的架构师,都可以很好地解决这个问题,找到折衷的最优解。

2张皮的问题,用考核和评价指标来解决?平台好不好 得有应用团队说了算?

应用团队天生就不会对平台团队说好话。

我个人觉得,首先第一点这个平台初期建设的时候应该就是双方的事儿,收集好应用方的痛点,平台的构建也是为了数据更好的管理和使用,是给自己团队和应用团队使用的

第二点,后期投入使用由于着力点不一样导致的摩擦,确实是需要一些指标来管控的,既然平台团队是服务于应用的,那么应用端提的不管是到位时间上的需求还是数据准备的需求,提工单,平台团队评估完给你做,能做不能做也事先说好,到时候工单都在那儿,可以拿出来说话。

但是一般离钱越近话语权越大,这个比较靠后的平台团队还是要全力以赴支持应用团队的,只是有些说不清的还是要流程化,比如提交工单,审批之类的。

离钱越近越有话语权,说得对!

反之,享有背锅义务。正因为要承担背锅的这个责任,所以距离钱近。

你说的分离是拆分部门吗?

基础平台 :底层开发(理解为底层hadoop源码开发)独立,因为不涉及业务(可以一个团队);

基础的元数据和主数据你必须知道业务和后面的存储(仓、湖) 是一体的 (可以一个团队)。

应用层是用数据的,集市、分析、产品设计倒是可以单独去做(可以多个不同团队)。

业务大了分离是必然,带来的最主要问题就是沟通成本增加。

如果没有一个中间的应用平台层(中台),应用层还是有可能重复造轮子。

可以看看数据中台的三个阶段。

不过当中台赶不上前台敏捷需要时,有时候不得不重复造轮子。

重复造轮子有时候也不是坏事呀,特别对于新业务线,随时在变化的业务线来说,毕竟中台也好,重复造轮子也好,最终都想实现降本增效,若是中台还给业务线拉了后腿,也就是去它的意义了。

感谢@建辉、@阿姣-上海-数仓架构、@林钰鑫-数据架构-深圳、@赖志明-金融监管大数据-北京、@Jack-数仓-北京、@胡俊-爱保科技-数据平台-北京 等各位大佬的绝世好问题和精彩讨论!

结语

用一个哥们的私信作为结语吧:

感谢阅读,本次分享的内容就结束了。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
大数据
【赵渝强老师】大数据主从架构的单点故障
大数据体系架构中,核心组件采用主从架构,存在单点故障问题。为提高系统可用性,需实现高可用(HA)架构,通常借助ZooKeeper来实现。ZooKeeper提供配置维护、分布式同步等功能,确保集群稳定运行。下图展示了基于ZooKeeper的HDFS HA架构。
|
2月前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
162 1
|
2月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
69 3
|
4天前
|
存储 SQL 分布式计算
大数据时代的引擎:大数据架构随记
大数据架构通常分为四层:数据采集层、数据存储层、数据计算层和数据应用层。数据采集层负责从各种源采集、清洗和转换数据,常用技术包括Flume、Sqoop和Logstash+Filebeat。数据存储层管理数据的持久性和组织,常用技术有Hadoop HDFS、HBase和Elasticsearch。数据计算层处理大规模数据集,支持离线和在线计算,如Spark SQL、Flink等。数据应用层将结果可视化或提供给第三方应用,常用工具为Tableau、Zeppelin和Superset。
65 8
|
1月前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
176 3
【赵渝强老师】基于大数据组件的平台架构
|
4天前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
15 0
|
2月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
41 9
|
2月前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
149 1
|
2月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
69 3
|
2月前
|
存储 SQL 缓存
Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。基于云原生存算分离的架构,用户可以通过多计算集群实现查询负载间的物理隔离以及读写负载隔离,并借助对象存储或 HDFS 等低成本的共享存储系统来大幅降低存储成本。
Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化