中台化背景下的元数据驱动架构实践

合集下载

数据中台技术架构解决方案

数据中台技术架构解决方案

01
02
数据商品化
将数据转化为商品,通过 数据交易、数据租赁等方
式实现数据的价值。
数据服务化
将数据作为服务提供,通 过API、SDK等方式将数 据嵌入到各种应用中,实
现数据的价值。
03
04
数据合作化
通过数据共享、数据合作 等方式,与其他企业或机 构进行数据资源的整合和 优化,实现数据的价值最
大化。
07
数据中台应用案例分享
Chapter
案例一:企业数据资产管理优化
数据资产管理
数据质量提升
数据价值挖掘
案例二:业务流程优化与效率提升
业务流程梳理
通过数据中台对业务流程进行梳理和优化,消除无效环节,提高业务处理效率 。
自动化处理
借助数据中台的自动化处理能力,实现业务流程的自动化处理,减少人工干预 ,降低成本。
实时监控与反馈
通过数据中台对业务流程进行实时监控和反馈,及时发现并解决问题,确保业 务流程的顺畅和高效。
案例三:客户画像构建与精准营销
01 数据采集与整合
通过数据中台采集和整合客户在多个渠道上的行 为数据,构建全面的客户画像。
02 客户细分与标签化
基于客户画像,对客户进行细分和标签化,实现 精准营销和个性化推荐。
质量。
数据转换与格式化
将不同格式、不同标准的数据进行转 换和格式化,便于后续的数据分析和 应用。
数据归一化与标准化
对数据进行归一化和标准化处理,消 除数据之间的量纲差异,提高数据的 可比性和准确性。
数据质量监控与保障措施
数据质量监控
建立数据质量监控体系,对数据质量进行实时或定期监控,及时发 现并处理数据质量问题。
决策支持系统建设

2023-数据中台架构实践方案-1

2023-数据中台架构实践方案-1

数据中台架构实践方案数据中台架构实践方案是一种基于数据的架构,它将不同数据源的数据进行整合并进行分析。

随着大数据的快速发展,数据中台架构实践方案被越来越多的企业所采用。

本文将分步骤阐述数据中台架构实践方案的实践流程。

第一步:架构设计首先,数据中台必须要有一个良好的架构设计才能稳定运行。

架构设计的过程中需要考虑数据的来源、存储和处理。

一般来说,数据中台架构包括两个部分:数据仓库和数据湖。

数据仓库用于存储结构化数据,而数据湖则用于存储非结构化数据。

同时,数据中台还需要考虑数据治理、数据安全等方面,来确保数据质量和数据安全。

第二步:数据采集数据采集是整个数据中台的核心步骤。

数据采集主要包括数据源连接、数据抽取、数据清洗等环节。

采集不同数据源的数据,并将它们整合在一起存储到数据仓库和数据湖中。

这一步骤非常重要,因为数据的准确性对数据分析的结果至关重要。

因此,数据采集过程需要注重数据的质量和完整性。

第三步:数据处理数据处理是数据中台的另一个重要步骤。

数据处理包括数据预处理、数据建模、数据分析等步骤,它们为数据分析提供了必要的数据支持。

数据预处理是将原始数据清理、去重、格式化等处理,以便后续的数据建模和分析。

数据建模则是将数据转换成适合分析的结构。

最后,数据分析是对处理后的数据进行深入研究和分析,提供业务决策的支持。

第四步:服务输出数据中台的最后一步就是将数据服务化,提供给需要数据的团队和企业使用。

数据服务可以包含API服务、数据可视化、数据挖掘等服务。

同时,数据服务需要进行管理和监控,确保数据质量和数据安全。

综上所述,数据中台架构实践方案是一个综合性的项目,需要多个环节的配合与支持。

企业在实践中需严格遵循以上步骤,才能实现数据价值最大化。

期望数据中台的服务能为企业提供更多合理的数据应用与决策分析。

数据中台建设实践中的应用成效、问题反思与对策分析

数据中台建设实践中的应用成效、问题反思与对策分析

数据中台建设实践中的应用成效、问题反思与对策分析目录1. 数据中台建设概述 (2)1.1 数据中台的概念与意义 (3)1.2 数据中台建设的目标与原则 (5)2. 数据中台建设实践中的应用成效 (6)2.1 业务支撑能力提升 (8)2.1.1 业务流程优化 (9)2.1.2 决策支持强化 (11)2.2 数据资产价值最大化 (12)2.2.1 数据共享与整合 (14)2.2.2 数据分析与应用 (16)2.3 技术创新与效能提升 (18)2.3.1 技术架构优化 (19)2.3.2 自动化与智能化 (21)3. 数据中台建设实践中的问题反思 (22)3.1 数据质量问题 (23)3.1.1 数据质量标准不统一 (25)3.1.2 数据清洗与校验不足 (26)3.2 数据安全与隐私问题 (27)3.2.1 数据安全风险 (29)3.2.2 隐私保护挑战 (30)3.3 人才与团队建设问题 (31)3.3.1 人才短缺 (33)3.3.2 团队协作与沟通 (34)4. 数据中台建设对策分析 (35)4.1 数据质量管理策略 (37)4.1.1 建立数据质量管理体系 (37)4.1.2 强化数据清洗与校验流程 (39)4.2 数据安全与隐私保护措施 (40)4.2.1 数据安全防护体系 (41)4.2.2 隐私合规与数据脱敏 (43)4.3 人才队伍建设与培养 (44)4.3.1 人才引进与培养计划 (45)4.3.2 团队协作与沟通机制 (46)4.4 技术创新与应用推广 (48)4.4.1 技术创新与研发投入 (49)4.4.2 应用场景拓展与推广策略 (51)1. 数据中台建设概述随着大数据、云计算、人工智能等技术的快速发展,企业对数据的依赖程度日益加深。

数据中台作为一种新型的数据处理架构,旨在整合企业内部外的各类数据资源,实现数据的集中存储、统一管理和高效利用。

数据中台建设已成为企业数字化转型的重要战略举措。

中台架构的设计和实践

中台架构的设计和实践

中台架构的设计和实践一、什么是中台架构中台架构是一种旨在协调业务流程、集成数据、简化开发、提高效率的架构模式。

它将企业内部的业务、数据和服务分为前台和中台两部分,前台用于面向用户的展示,中台负责处理与业务相关的数据和逻辑。

中台还具备提供统一数据接口、分析业务数据等功能。

二、中台架构设计原则中台架构的设计原则是为了解决多元业务场景、复杂业务流程和高并发请求等问题。

设计原则如下:1. 基于业务拆分。

将业务拆分成独立的模块,通过接口提供服务,为了避免模块之间互相影响,模块之间的耦合要尽量降低。

2. 共享数据。

共享数据是中台设计的重要原则,通过共享中台数据,可以避免数据冗余,提高数据准确性。

中台应该为业务提供统一的数据接口。

3. 中台服务化。

将共享的数据抽象成服务,可以让前端更加专注于用户交互、提升开发效率。

4. 架构高可用。

中台必须做到高可用,在高并发请求下依然可以正常运行,降低出现故障的概率和影响。

三、中台架构实践中台架构的实践需要遵循设计原则,将中台架构融入业务环节中,提升业务的稳定性和效率。

具体实践如下:1. 建设中台数据平台。

开发一套中台数据平台,通过数据挖掘、数据分析等方式对业务数据进行多维分析,为业务提供更加专业、精准的数据支持。

2. 构建服务中心。

将业务中的应用进行模块化拆分,形成业务模块服务化的管理体系,通过中间件来实现不同模块之间的数据交互。

3. 增强业务平台的稳定性。

增强中台架构的稳定性、安全性,建立灾备中心,保障业务的安全高效运行。

4. 建设用户体验中台。

中台架构采用服务化设计,实现不同应用之间的数据交换,提升用户体验。

四、中台架构的优势引入中台架构有以下优势:1. 解决业务瓶颈问题。

随着业务的不断发展,原有的技术架构存在瓶颈,中台架构可以有效解决业务瓶颈问题。

2. 提高业务效率。

中台架构将业务进行模块化,提供统一的接口,可以大幅提高业务效率。

3. 减少开发成本。

中台架构的服务化设计,提供了基础服务与共享数据,开发人员无需重复构建基础功能,从而降低开发成本。

数据中台技术架构方案

数据中台技术架构方案

数据中台技术架构方案随着大数据技术的快速发展和企业对数据价值的认知不断提高,数据中台作为一种新兴的数据架构模式,逐渐引起了各行各业的关注和应用。

数据中台用于企业将分散在各个业务部门的数据集中管理、分析和应用,从而实现数据的高效价值利用和业务的迭代创新。

本文将探讨数据中台技术架构方案,分析其核心组成和实施流程,并对其在企业中的应用进行解析。

一、数据中台的定义和背景在数字化时代,企业积累了大量的数据资源,这些数据分布在各个业务系统中,造成了数据孤岛和信息孤岛的问题。

数据中台的概念应运而生,其目标是将企业内部各业务线的数据资源集中起来,通过数据集市的形式为各个业务部门提供数据支持和服务,实现数据的高质量、高效益的利用,为企业的业务创新提供支撑。

二、数据中台的核心组成1. 数据接入层:负责将企业内部各个业务系统的数据进行采集、清洗和整合,构建数据标准化和一致性的基础。

2. 数据存储层:用于存储和管理各种类型的数据,包括结构化数据、半结构化数据和非结构化数据等。

3. 数据计算层:提供数据处理和计算能力,包括数据分析、数据挖掘、机器学习等,为业务部门提供数据分析和挖掘的技术支持。

4. 数据服务层:将数据加工成可供业务使用的数据产品,为业务部门提供数据接口和服务,满足不同业务场景的需求。

5. 数据治理层:负责数据质量管理、数据安全管理、数据合规管理等,保障数据的质量和安全。

三、数据中台的实施流程1. 确定目标和愿景:明确数据中台建设的目标和愿景,明确业务需求,制定建设规划和路线图。

2. 数据建设和整合:对业务系统进行数据调研和评估,建立数据标准和规范,进行数据的采集、清洗和整合。

3. 架构设计和技术选型:根据企业需求和数据特点,设计数据中台的技术架构,选择合适的技术工具和平台。

4. 系统开发和集成:进行数据中台系统的开发和集成,实现数据的接入、存储、计算和服务能力。

5. 测试和优化:对数据中台系统进行测试,发现和解决问题,优化系统性能和用户体验。

GraphQL及元数据驱动架构在后端BFF中的实践

GraphQL及元数据驱动架构在后端BFF中的实践

查询模型归一
解决展示字段扩散问题 标准化查询模型设计 业务的简化和一致性
元数据驱动架构
实现能力的可视化 业务组件编排自动化 业务开发的聚焦
03
核心设计
取数展示分离
商品展示场景中的展示逻辑和取数逻辑多对多关系 传统的后端BFF实践导致颗粒 度难以设计 取数逻辑关注数据查询和聚合,展示逻辑关注字段加工 分离取数逻 辑和展示逻辑为取数单元和展示单元
列表计算优化
列表遍历多核计算思路 充分利用CPU多核心计算的能力 多线程并行执行任务 优 化效果:降低响应时间和CPU利用率
DataLoader基本原理
DataLoader有两个方法: load和dispatch load方法用于批量查询+分片的效果 dispatch方法在第二阶段执行数据查询
DataLoader调度问题
GraphQL执行机制及问题
GraphQL-Java执行引擎的运行机制 AsyncExecutionStrategy执行策略的异步 化模式实现 问题1: PropertyDataFetcher CPU热点问题 问题2: 列表的计算耗时 问题
类型转换优化
业务模型到GraphQL模型转换示意图 查询结果模型反向填充示意图 解决思路: 保持原有业务模型不变 优化结果:平均响应时间缩短1.457ms
GraphQL编译优化
GraphQL语言原理概述
GraphQL是一种查询语言,用于描述数据需求和交互。 GraphQL基于直观和灵 活的语法构建客户端应用程序。 GraphQL-Java客户端使用ANTLR 4实现。 ANTLR 4是一种语言定义和识别工具。 ANTLR是一种元语言(MetaLanguage)。 GraphQL执行引擎接受Schema和Query。 GraphQL编译器将 Query翻译成可执行文档对象。 性能损耗与Schema和Query复杂度相关。

数据治理与数据中台架构方案

数据治理与数据中台架构方案
实行数据质量责任制
明确数据质量的责任人,对数据质量问题进 行追溯和问责。
建立数据校验机制
在数据采集、处理、存储等环节设置校验规 则,确保数据的准确性和完整性。
开展数据质量培训与宣传
提高全员的数据质量意识,促进数据质量的 持续提升。
03
数据中台架构设计
整体架构设计思路及特点
01
以数据为核心,构建标 准化、规范化的数据处 理流程。
场景四:其他创新业务支持
新业务探索
利用数据中台的数据处理和分析能力,探索新的 业务领域和商业模式。
创新应用
基于数据中台的数据资源和技术能力,支持业务 创新应用,如智能客服、智能风控等。
数据服务
提供数据服务接口,支持外部系统和应用的数据 需求。
06
效果评估与总结
效果评估指标体系构建
数据质量评估指标
02
方案价值
本方案将帮助企业构建一套完整的数据治理与数据中台架 构体系,实现数据的规范化管理、高效化利用和创新化应 用。这将有助于提升企业的数据管理和应用能力,加速业 务创新和发展,为企业的数字化转型提供有力支撑。同时 ,本方案还将降低企业的数据管理和应用成本,提高企业 的运营效率和竞争力。
02
数据治理体系构建
建立完善的数据备份和恢复机 制,确保数据的可靠性和业务
的连续性。
04
数据治理与数据中台融合实施
实施步骤划分及关键节点控制
实施步骤划分
明确数据治理与数据中台建设的各个阶段,包括需求调研、架构设计、开发实 施、测试验证、上线发布等。
关键节点控制
识别实施过程中的关键节点,如需求确认、设计评审、数据迁移、系统切换等 ,制定详细的控制措施和计划。
项目目标

基于中台模式的园区IOC平台架构设计研究

基于中台模式的园区IOC平台架构设计研究

电子技术与软件工程Electronic Technology & Software Engineering软件开发与应用Software Development And Application基于中台模式的园区l〇C平台架构设计研究田冬迪(上海师庆科技发展有限公司上海市201103 )摘要:本文基于中台模式的园区I0C平台通过调配规划后台硬件设备及基础设施,规划中台各业务系统间职能边界、打通数据孤岛,实现前台应用的敏捷式开发与规糢化创新,提升了各园区各业务系统的协同能力以及新建系统的开发维护效率。

从而解决了传统模式下系 统扩展能力低,业务功能重复建设、系统稳定性差,无法支撑高并发等问题。

关键词:园区;智能运营管理平台;中台模式;信息化;智慧园区1引言园区经济的快速发展承载着区域经济的产业链组合与集聚。

在 大力促进城市数字化转型的时代背景下,园区作为城市重要组成单 元和功能载体,其信息化管理发展趋势从基础网络到信息应用向纵 深发展、重塑,逐步实现结合物联化、互联化和智能化技术的发展 与应用,是构建数字孪生城市的基本单元。

在传统的园区管理模式 下,多通过增加人力、物力等形式以满足园区管理过程中各类曰益 增长的业务需求,造成极大的沟通成本及经济成本。

在园区信息化 建设过程中存在业务系统建设不规范、安全意识不足、大量重复性 功能建设、缺乏相互间参考模型、用户权限分配管理逻辑混乱、缺 乏配置管理等问题m。

与此同时,由于应用垂直化建设造成的“数 据烟囱”、“信息孤岛”、“场景不联动”等问题也日益突出[21。

园区智能运营管理平台(Intelligent Operations Center,简称 IOC平台)由此应运而生,其综合集成物联网(IOT)、大数据(Big Data)、地理信息系统(GIS)、建筑信息模型(BIM)、人工智 能(A丨)等技术手段[21,通过对园区信息化各业务系统进行海量数 据整合、多维数据展示、关注点提取,形成信息化专业系统的集成应用,实现信息技术在园区智能运营管理中的时间、空间全覆盖、各业务领域全覆盖、产业链周期全覆盖,最终实现园区管理的管理 信息化、运营智能化、统筹一体化、建设标准化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中台化背景下的元数据驱动架构实践一、背景介绍为解决系统重复建设、能力复用性低的问题,携程启动了中台化建设步伐。

旅游行业的中台建设,携程并非从零开始,前期已经积累了行业中多个场景的业务和技术的中台能力。

因系统建设的复杂,亟需一个中台大脑站在全局视角进行公司中台能力的梳理和建设。

Tripyun-携程云是中台团队打造的产品中台,采用独特的”电商开店“方式,鼓励各业务线发布具备中台能力的产品,管理产品的整个生命周期,包括产品的创建、展示、开通服务、产品需求、产品联通和度量,以此来吸引其他团队下单采用,并通过需求结构化、能力优化不断打磨各团队产品的中台能力。

Tripyun-携程云最终将以全局视角,通过能力地图将旅游行业里的中台能力都呈现出来。

为满足各团队在平台上对产品进行管理和“开店”的需求,我们为平台搭建了底层类目属性管理能力和SPU管理能力服务,满足了旅游行业特色的多样化中台产品和能力的发布需求。

本文以此中台能力的建设作为实操,详解我们探索中的中台建设的思路,重点介绍搭建类目属性和SPU中台能力过程中的技术实践,读者将了解到:1)如何提升一个产品的中台能力;2)以一个具体案例了解什么是元数据驱动和其架构实践;3)Tripyun-携程云类目属性和SPU管理能力,可考虑使用我们的能力,共建行业类目属性库。

二、什么是元数据元数据,是指一种结构化的信息,用于对某项信息资源进行描述、解释、定位,使其易于提取和使用。

我们先看下在电商应用中商品领域中的元数据定义:2.1 名词解释(1)SPU:Standard Product Unit (标准产品单位),是用来聚合描述一种商品信息的单元。

基于SPU的商品信息结构,可以实现丰富的应用,比如商品信息与资讯、评论、以及其它SPU的整合起来,就可以基于同一模型来满足多种场景的业务。

我们借鉴了电商中对于SPU的应用,即通过SPU的“类目属性”来描述Tripyun-携程云上的一切业务数据,包括系统上的产品、团队、订单信息、能力信息等数据,都作为SPU 进行整合,进行了业务数据模型的统一。

(2)类目,也就是分类,分类是为了更好的管理商品(商品管理的核心就是分类)。

在Tripyun-携程云中,我们通过类目来分类产品、订单、能力、团队的类型。

比如在产品上,通过类目把携程的基本产品做了基本分类,以满足不同类型的产品区分管理。

类目的设计主要从两个维度考虑,除了后台类目,还有前台类目,即给前端用户看的类目。

电商应用在针对用户的展示或者营销过程中,往往会给商品划分一个只用于前端展示的类目,该类目可能由于运营的需要而进行调整。

Tripyun-携程云平台也具有前台类目。

(3)类目属性,就是某个商品的特性,属性值即属性的具体内容。

对于电商来说,属性主要是商品的品牌、尺寸、大小、颜色等,对于品牌属性而言,其属性值可以为阿迪达斯、耐克、马自达等等。

类目是为了分类商品,而属性是为了描述商品。

在Tripyun-携程云平台中,我们定义了一个”广义数据模型“的概念,把产品、订单、能力、团队等业务的模板都使用属性来定义。

比如,把产品的中台能力定义为一个特殊的类目,而用户应该怎样描述自己的能力,则提供统一的属性定义页面,来允许用户定义复杂结构的属性集。

(4)SKU,大家都知道电商行业中的SKU(Stock Keeping Unit)是指库存量单位,即库存进出计量的单位,可以是以件、盒、托盘等为单位。

SKU是物理上不可分割的最小存货单元,而在Tripyun-携程云中,因为我们卖的不是货,而是中台能力,所以可以理解为我们让大家在平台上录入的能力即为SKU(可以直接”卖“给产品采用方的最小单元,可以是小到一个工具、一个框架、一个接口,或一组服务组成的应用,也可以大到一个产品线)。

对中台产品而言,能力除了可以作为SKU,还多了一层额外的意义——能力是中台产品可以被(个性化)复用的体现,由产品开放出来的互相解耦的能力选项而构成。

2.2 Tripyun-携程云中的元数据为保证Tripyun-携程云上产品数据结构足够灵活,我们夯实了类目属性的底层数据结构,支持多种不限于K-V结构(包括表格、级联等复杂表单数据存储结构)的数据存储、查询、校验等需求。

这样的数据管理能力也可以支撑除了产品外很多其他领域的数据模型,目前这套能力已经为Tripyun-携程云平台提供团队管理、产品管理、能力(SKU)管理、服务单/调用单管理等多个业务场景的数据模型定义、动态表单生成、动态规则校验和动态业务数据的存储/查询了,实际上已经成为Tripyun-携程云平台所有模块的业务数据模型——支持通过不同的规则定义和流程扩展,来做不同场景下的个性化定制。

我们把这种描述业务数据的数据,统称为元数据。

如上面提到的,元数据除了包含数据模型定义,还包含了业务规则定义、业务流程定义、业务配置(标)定义和面向前端的组件数据定义。

三、我们的实践3.1 可自定义的产品结构和能力发布结构、满足全球化背景下可复用的数据多语言——数据模型3.1.1.解决方案我们认为业务中台化的一个重要措施是进行业务模型的抽象,将模型抽象为可统一表达的元数据模型,将非常有利于行业数据的标准化管理,进一步缩短基础数据管理的成本,而基础数据模型的统一也将为后续规则的统一和业务流程的标准化提供了可能性。

在搭建Tripyun-携程云平台的时候,我们将原本业务上很多互不相干的数据管理,如团队、产品、能力、服务单等模块的信息类数据抽象成了统一的模板元数据。

而将随着业务不断变化的属性数据,如状态、活动标签、业务标记等使用业务配置(可以认为是动态的扩展字段,下一节介绍)的方式进行解耦和动态管理。

3.1.2.数据模型统一的困难电商应用中的SPU属性,因商品本身普适性强,以及买方一般具备对商品一定的基本认知,可能K-V类型的存储结构满足大多数的应用场景,结构上并不复杂。

但是Tripyun-携程云的业务范围是描述“软件产品服务”类商品,且更多的是与具体业务相关的服务,软件类“商品”本身确实比一般性商品更加“复杂”,且用户在浏览Tripyun-携程云平台上发布的软件产品时,也没有普适性认知,所以我们需要足够灵活、方便的,不只是k-v结构的展示方式,所以仅仅K-V类型的存储结构并不满足我们的需求。

如在中台概念中,我们一般会把前端应用按照“端”、“场景”属性进行分类,以端为例,我们可能需要三级级联的属性和属性值来组成“端”属性,三级级联属性分别为:第一级:online/offline,用于描述是外网应用还是内网应用;第二级:web/app/H5,用于描述前端应用触达用户的方式;第三级,则是按照行业业务归属进行的端的定义。

此类需求的难点在于,三级属性互相影响、互相依赖,如online和offline,以及不同的端类型,其对应的第三级属性的属性值,是完全不同的。

又如卖方在产品定义时,为了方便开发角色的用户在浏览产品时对接口等技术指标进行评估,可能需要对系统接口或者整体系统指标进行说明,需要一个表格类型的控件。

就这样一个简单的表格需求,对于我们类目属性的这套产品结构复杂度构成了指数级的挑战,这需要我们进行属性的层层嵌套,并且对前端页面更为友好的方式,将嵌套数据输出给前端页面。

除了结构的复杂度,我们还面临复杂结构下带来的性能、数据安全性等的挑战:(1)基于类目属性的产品结构中,因为产品属性并不是简单关系型数据库的行列,而是倒树形非关系型的结构以行列方式存储。

这对我们的查询性能造成了较大挑战。

在互联网应用对性能极致的追求下,网络连接是最“宝贵”的资源,我们需要尽可能节约前端请求数量,不可能用户每次点击属性都实时进行子属性和属性值的拉取。

所以在这种场景下,需要服务端能够一次输出该产品类目定义的所有属性和枚举的属性值、以及产品对应的属性值。

因产品属性的级联嵌套复杂度,其输出性能将会随着产品属性嵌套复杂度的提升而升高。

(2)类目、属性、规则等“描述数据的数据”(文中统一称为“元数据”),与应用运行过程中产生的产品等数据不同,元数据(如属性和规则等修改)的修改,将会影响到大批量下游数据的变更。

如果是因为人为或者程序的误操作导致元数据的错误变化,将会产生不可估量的业务后果。

3.1.3.模型元数据的技术方案为解决上述问题(1)的挑战,我们使用mysql作为存储数据库,底层数据结构:抽离一套类目属性表和类目属性值表,类目属性表描述属性的父子关系,而类目属性值表描述属性值的父子关系,即存储属性和属性值的两棵树。

再通过数据加工,组成一套产品属性模版数据和属性值关系数据。

如上面提到的“端”这个属性的例子,我们可以构造给前端应用这样一颗树及模版:树Template类在关系型数据库存储树形结构的问题,其实业界已经有一些可以参考的方法论,一般比较普遍的就是四种方法:(具体见《SQL Anti-patterns》这本书)•Adjacency List:每一条记录存parent_id•Path Enumerations:每一条记录存整个tree path经过的node枚举•Nested Sets:每一条记录存 nleft 和 nright•Closure Table:维护一个表,所有的tree path作为记录进行保存书中介绍的各种方法的常用操作代价见下图:我们的场景中,对于全树查询、插入、删除有较强的需求,根据以上表格的结论看起来Closure Table方案更好一点。

但其实需要考虑到:Closure Table需要额外维护一套全路径表,而存储路径本身就是一个不可预知的大字段。

考虑到未来的接入类目属性和SPU管理能力的数据量级、对db的读写压力以及分库分表等db的需求,我们最终选择的一个对mysql比较轻量的Adjacency List方案,为弥补此方案对全树查询的短板,做了以下两个措施:一是构建SPU树的模版,将类目属性和类目属性值相互独立,之间通过属性编码进行关联,同时构建出两条树形结构:类目属性和类目属性值。

类目属性绑定到模版,这样可以直接输出给前端应用使用,类目属性值则直接输出每一层级的数据,保证每次查询都是非常简单sql查询。

二是通过消息通知机制,尽及时做到若mysql的这两棵树有任何变更,将都能及时都获知并且更新模版及类目属性值。

上面的解决方案,解决了每个类目属性树的存储和查询的问题,我们称为类目属性模板。

模板的缓存为最终SPU树的输出性能提供了一部分保障,为了进一步解决性能问题和模板数据安全的问题,我们设计了以下方案:(1)为保证类目属性元数据模板的安全性,除按照上面陈述的存储和查询方案,我们多加了一层模板数据临时区(预览区)和正式区(运行区)的区分。

类目属性控制台可以实时修改类目的属性、属性值和规则,但是数据会保存在临时区。

相关文档
最新文档