数据中台和数仓的关系

传统数仓

传统数仓有几个特点:

  1. 数据具有历史性
  2. 基于文件存储
  3. 以表为形态,自带元数据存储(比如Hive)
  4. 在数仓的数据是其他数据的拷贝或者拷贝的加工

传统数仓需要拷贝数据的重要原因是因为基于数据和存储需要尽可能的近。所以我们需要把MySQL等数据源的数据同步到数仓,才能进行进一步处理,另外传统数仓更关注的是数据的历史状态,所以导致数据规模庞大。 数仓本身也具备计算能力,同时也可以作为存储供其他计算系统使用。

数据中台

数据中台设计立足点本身是数据和存储分离的。那就意味着,数据中台本身并没有数据,数据来源是其他的的,比如传统数仓,业务数据库,用户在中台上传的文件(临时使用),各个业务系统的API(瞬时,我们不关心API之前的数据结果是什么样的)。因为数据中台拥有这些数据源的适配器,所以相当于建立了互联管道。

我们知道数仓的优势是有元数据,通过表的方式很好的规整了数据。数据需要加工,所以一般数仓是有分层的,往上走一层,数据信息损耗就高一些。数据中台也有一个全局的元数据管理系统,管理也是以表为主,粒度到字段级别。数据中台这个元信息包含了各个子存储的元信息,以数据中台需要的形态进行组织。

数据中台的元数据其中承载的一个重要功能是数据地图,虽然在数据中台中,修建了通往所有数据的道路 但是当用户进来的时候 他无法知道具体某个数据的地址 也就没办法利用这些修好的道路。数据地图就是解决这个问题 我们需要结合自然语言处理,检索技术,目录分类技术,机器学习以及数据规范化来帮助找到数据地址。数据地址从来都不是面向人类有好的。

通过数据中台的数据地图,以及数据中台到各数据源的建立好的管道,那么我们就可以很好的找到我们要的数据以及对他们进行关联和处理,分析,甚至进一步成为机器学习的素材。

数据地图和传统数仓元数据的区别在于,

  1. 它记录了散落在各个孤岛的数据,而不像传统数仓,只是在自己的数据。
  2. 数据格式是异构的,不仅仅是文件。
  3. 他不仅仅存储表以及字段相关信息,同时还有还让这些信息可检索,可查询,可以更好的面向人而不是机器。

结论

数仓是数据中台的一个重要组成部分,也是元数据的一个重要来源,但是随着技术的发展,数据和存储必定是分离的,这就需要一个新的元信息系统(数据地图)来进行承载。

### 中台架构与数据字典的关系及作用 #### 1. **中台架构中的数据字典定义** 在中台架构的设计过程中,数据字典扮演着至关重要的角色。作为一项基础性的元数据管理工具,数据字典用于标准化描述各类业务对象及其属性,从而确保不同系统之间能够高效、一致地交换理解数据[^1]。具体而言,数据字典涵盖了诸如数据域、业务过程、业务域、指标字典等内容,并进一步细化到原子指标、派生指标、度量、维度等多个层次。 #### 2. **数据字典的作用** - **统一语义**:通过构建详尽的数据字典,可以消除各部门对同一项数据可能存在歧义的理解方式,促进整个组织内部形成共同的语言体系[^3]。 - **提升效率**:借助预先设定好的标准模板,开发者无需重复定义相同类型的实体结构,大大节省了编码时间维护成本的同时也减少了错误发生的概率。 - **支持决策制定**:高质量的数据字典不仅限于技术层面的应用,在高层管理者进行战略性思考时同样发挥巨大效用——他们可以根据清晰标注过的各项统计数值快速获取所需情报并据此作出最佳判断。 #### 3. **中台架构下的应用实例** 当中台采用了领域驱动设计(DDD)原则来划分核心逻辑单元之后,每一个单独的服务模块都需要依赖准确无误的基础资料来进行交互操作。此时,一个健全完善的全局共享型数据字典就成为了不可或缺的存在[^2]。例如,在电商行业中常见的订单管理系统里,“商品”这个概念可能会涉及到价格计算规则、库存状态更新机制等多种复杂情形;而有了明确记载各个侧面含义及相关联约束条件的数据字典后,则可以让前后端乃至第三方插件都能按照既定规范无缝衔接起来完成交易流程。 综上所述,无论是从业务角度还是从技术角度来看待问题,都可以得出结论说良好的数据字典编制工作对于成功搭建起高效的中台架构至关重要。 ```python class DataDictionaryEntry: """表示单条数据字典记录""" def __init__(self, name, description="", fields=None): self.name = name # 字段名称 self.description = description # 描述信息 self.fields = fields or [] # 关联子字段列表 def add_field(self, field_name, type_, length=0): new_field = {"name":field_name,"type":type_ ,"length":length} self.fields.append(new_field) # 创建示例数据字典条目 order_entry = DataDictionaryEntry('Order', 'Represents an order placed by customer') order_entry.add_field('OrderId','Integer',8) order_entry.add_field('CustomerId','Varchar',36) print(order_entry.__dict__) ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值