轻松理解企业级数据架构规划
闲话少说,先上图。由于版主在银行工作,所以此篇文章base金融系统数据架构,但是企业级数据架构应该都大同小异,可供参考。
FIRST
先来了解一下基础数据架构流程以及设计思想,从下往上看。
整体设计思想是,各个系统的源数据通过ETL同步到操作性数据仓库ODS(贴源层)中,对ODS数据进行面向主题域建模形成DW(数据仓库),DM是针对某一个业务领域建立模型,具体用户(决策层)查看DM生成的报表。
You know、企业的系统一定不会是单一的,特别是现在微服务和SOA架构统治天下的时代,因此数据层面的存储一定是冗杂的,会用关系型数据库存储一些关系型业务数据,也会用文件数据库存储一些文件以及日志用于后续的解析和业务支撑,像银行系统内部,就会分为核心系统、信贷系统、渠道系统等等系统的数据都是分库存储的。此处为内部数据源。
由于现在信息量爆炸,大数据风潮下,互联网公司倒逼银行改革,银行会选择接入一些征信、工商等三方数据,也会采集一些社交媒体的数据整合到大数据平台中用于对后续业务系统的支撑,诸如大数据风控系统,智能营销系统等等。此处为外部数据源。
内部数据源,由于是多渠道接入的,而且用户在填写信息的时候有一些数据是不符合规范的,而且各个系统间一些相同字段的字典定义也不相同,所以会造成系统间相互调用时候出现数据不匹配等情况。此时就会出现一套企业统一的数据质量管理、数据标准管理以及元数据管理这么一套数据管控体系,如图右侧,如果系统本身的数据库积累太久的数据会导致查询速度变慢,而且对于行内的一些指标分析以及业务支撑无法提供直接的数据支撑,需要跨库联表的复杂查询,所以数据仓库由此诞生,数据仓库中存储长期的,如十年、二十年的数据信息,并将数据按应用主题的维度去汇总存储,方便以后对进行统计分析和数据应用。此处为数据仓库。
大数据时代下,大数据系统现在也成为了企业的必备核心存储计算系统,大数据平台结合业务,采集行内可用的数据和行内的多维度数据进行汇总,然后对数据进行清晰、挖掘构建客户画像,提供风控模型等支撑应用系统。此处为大数据平台。
再向上的思路就很清晰了,数据经过整理后,可以对外提供数据服务,也对平台内外的应用系统进行支撑,最终提供给相应的用户进行操作分析。
SECOND
内外数据源都很好理解,那我们来详细看看数据仓库也就是数据中台的设计。
通常企业级的数据仓库设计都是三层结构,ODS层、DW层、DM层,我们分别来看看三层结构所代表的意义以及作用。
ODS
操作性数据仓库ODS的应用场景:
1、在业务系统和数据仓库之间形成一个隔离,ODS直接存放从业系统抽取过来的数据,这些数据从结构和数据上于业务系统保持一致,降低了数据抽取的复杂性。
2、转移一部分业务系统的细节查询功能,因为ODS存放的数据与业务兄台那个相同,原来有业务系统产生的报表,现在可以从ODS中产生了。
3、完成数据仓库中不能完成的功能,ODS存放的是明细数据,数据仓库DW或DM都是存放的汇聚数据,ODS提供查询明细的功能。
DW
正经的数据仓库,为企业所有级别的决策制定过程,提供所有类型数据的战略级和,是一个包含所有主题的通用的集合。
1、效率足够高,要对进入的数据快速处理
2、数据质量,数据仓库是提供很多决策系统的支撑数据,所以数据准确非常重要
3、扩展性,企业业务扩展和降低企业建设数据仓库的成本考虑
4、面向主题,数据仓库中的数据是按照一定的主题域进行组织的,每一个主题对应一个宏观的分析领域,数据仓库派出对决策无用的数据,提供特定主题的简明视图
DM
数据集市,以某个业务为出发点而建设的局部DW,DW只关心自己需要的数据,不会全盘考虑企业整体的数据架构和应用,每个应用都应有自己的DM。
以上。
LAST
我感觉目前企业级别的数据架构规划都是大同小异,一方面需要支撑线上业务系统,一方面需要汇总加工数据、构建可以快速查询某个维度数据的数据中台,同时还要顺应大数据时代的发展,结合外部数据进行一些多维度宽领域的业务分析、挖掘出有价值的信息、构建适合的模型来增强自身的竞争力度。
本文纯属自己理解,希望能对您有一定的帮助。
推荐阅读
-
35 岁实现财务*,腾讯程序员手握2300万提前退休?-1000万房产、1000万腾讯股票、加上300万的现金,一共2300万的财产。有网友算了一笔账,假设1000万的房产用于自住,剩下1300万资产按照平均税后20-50万不等进行计算,大约花上26-60年左右的时间才能赚到这笔钱。也就是说,普通人可能奋斗一辈子,才能赚到这笔钱。在很多人还在为中年危机而惶惶不可终日的时候,有的人的35岁,就已经安全着陆,试问哪个打工人不羡慕?但问题是有这样财富积累必然有像样的实力做靠山。没有人可以不劳而获。 看到这里,肯定有人说,那么对于普通人来说,卷可能真就成了唯一的出路。但是卷也有轻松的卷,“偷懒”的卷法,对于程序员而言,刨除掉一时无法改掉的开会传统占用的大部分时间,如何把有限的时间和精力放在真正重要的架构设计、需求设计上,而不是重复的造*,编码、改bug、手动测试。因此在科技改变生活的今天,学会使用AI工具成为程序员们的必备技能。 以全栈式全自动的软件开发工具飞算SoFlu软件机器人为例,作为全球首款面向微服务架构设计和最佳实践的软件机器人,SoFlu软件机器人改变了原来手工编码的作业模式,通过可视化拖拽方式以及参数配置就能实现等同于编写复杂代码的业务逻辑,在设计业务逻辑时就完成了微服务应用开发,做到“业务即图,图即代码”,实现“软件开发,十倍提效”。 而作为飞算SoFlu软件机器人的一个重要组成部分,FuncGPT(慧函数)支持所有类型函数创建。通过自然语言描述Java函数需求,实时生成高质量、高可读性的Java函数代码。生成代码可直接复制到IDEA,或一键导入Java全自动开发工具函数库。 FuncGPT(慧函数)具有五大核心能力: ● 自然语言:通过自然语言即可生成函数,降低软件开发门槛。 ● 秒级函数开发:全自动秒级开发函数,秒级完成,效率千倍提升。 ● 一站式函数开发应用:函数生成即可直接应用,效率、安全有保障。 ● 质量可靠:生成的函数代码符合业界规范、具备良好的可读性,符合最优解。 ● 灵活生成:可以根据开发人员的具体需求生成并支持调整和修改。 以“将文件流转换为File对象”这个需求为例,以下是FuncGPT(慧函数)秒级生成的代码: / 类名:FileConverter // 函数名:convertStreamToFile // 函数功能:将文件流转换为File对象 // POM依赖包:无 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; public class FileConverter { /** * 将文件流转换为File对象 * @param inputStream 文件流 * @param filePath 文件路径 * @param fileName 文件名 * @return 转换后的File对象 * @throws IOException 如果发生I/O异常 */ public static File convertStreamToFile(InputStream inputStream, String filePath, String fileName) throws IOException { File file = new File(filePath + File.separator + fileName); // 创建File对象 try (FileOutputStream outputStream = new FileOutputStream(file)) { // 创建文件输出流 byte buffer = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { // 从文件流读取数据并写入文件 outputStream.write(buffer, 0, bytesRead); } } return file; // 返回转换后的File对象 } } // 函数示例 // 将文件流转换为File对象示例 // 入参:inputStream,文件流 // 入参:filePath,文件路径 // 入参:fileName,文件名 // 出参:file,转换后的File对象 // 调用示例: // InputStream inputStream = new FileInputStream("example.txt"); // String filePath = "C:\\Users\\User\\Documents"; // String fileName = "example.txt"; // File file = FileConverter.convertStreamToFile(inputStream, filePath, fileName); // System.out.println(file.getAbsolutePath); // 输出结果:例如,将文件流转换为File对象后,文件的绝对路径为:C:\Users\User\Documents\example.txt // 则输出结果为:C:\Users\User\Documents\example.txt 通过分析,不难发现以上代码:
-
企业大数据系统建设实践:技术、架构、实施与应用 I 第 2 章 企业大数据功能规划 2.1 大数据组织架构系统
-
openEuler郑州用户组成立!openEuler与hyperfusion携手共建河南地区用户生态 - 开幕致辞 超融合操作系统业务总经理、openEuler委员会成员蒋振华先生为本次活动致辞。 在本次活动的致辞中,他提到,作为openEuler社区早期的成员,超融合见证了openEuler从成立到在各行业商业落地,再到跨越生态拐点的过程,感谢openEuler提供了一个全产业链共同创新的平台,共同推动创新技术的商业落地。 同时,本次活动得到了郑州市郑东新区大数据管理局、郑州中原科技城投资服务局的大力支持。 郑东新区大数据管理局曹光远 在活动致辞中表示,openEuler的应用和*应用设施的深度优化,为郑东新区数字化转型提供了安全、可靠、高性能的技术基础;郑州中原科技城招商服务局王林表示,郑东新区欢迎所有openEuler生态相关企业扎根当地,围绕openEuler社区共同发展,形成合力。 openEuler社区及运维功能介绍 openEuler技术委员会委员胡峰 openEuler技术委员会委员胡峰先生在本次活动中介绍了openEuler社区目前发展的整体情况,并重点从技术层面介绍了openEuler的运维功能。 openEuler 晚会 胡峰先生介绍智能运维工具 A-Ops 和 openEuler gala、 阿波罗 Apollo、智能漏洞管理解决方案等新功能,以及涵盖各种运维场景的精品运维组件。在*交流环节,许多用户就目前使用的 openEuler 在*交流环节,许多用户就自己在使用openEuler过程中遇到的一些问题与胡峰先生进行了进一步的交流。 软硬结合,构建多样化算力操作系统 Hyperfusion 基于 openEuler 的基础上,结合自身软硬件技术积累,推出了富讯服务器操作系统 FusionOS FusionOS. FusionOS 首席架构师张海亮 分享了 FusionOS FusionOS首席架构师张海亮分享了FusionOS的软硬件协同优势、卓越的性能和可靠性,以及FusionOS在金融、运营商、*、互联网等行业的实践案例,引起了众多用户的兴趣,分享结束后,不少参会者就FusionOS的特点向讲师提问并进行了交流。
-
大数据架构系列:如何理解一号湖库?-叶强
-
[大数据运行]讲座 29:大数据平台的硬件规划、网络调整、架构设计、节点规划
-
轻松理解数据库事务:简单易通的讲解
-
轻松理解数据库事务是什么
-
理解基础架构术语:云区域、可用区、跨区数据备份与灾备方案(Part 1)
-
轻松理解OLMo论文中的模型架构详解:专为小白打造的指南
-
LeetCode 918题:寻找最大环形子数组和——动态规划解法与理解(轻松版)