Python大数据架构全栈开发与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.2 逻辑架构

逻辑架构关注的对象是数据系统的功能逻辑。逻辑架构设计主要解决以下3个问题。

• 完整系统功能包括哪些模块,各模块间的依赖、制约和关系是什么。

• 除功能模块外,还有哪些保障系统正常工作的支持性模块。

• 随着需求变化,未来功能模块如何扩展,与现有功能模块如何复用、集成。

功能是逻辑架构的核心,一般包括数据源、数据同步和清洗、数据存储、数据计算、数据应用5部分。

1.数据源

数据源指的是企业内、外部数据的来源,按照类型的不同,可分为日志/文件、数据库、网络爬虫、第三方合作等。

• 日志/文件:主要对象包括机器日志、用户访问日志、监控日志等。日志通常是以半结构化的文本文件方式存储的。另外,还可能包括人工整理的数据文件。

• 数据库:数据库数据几乎是所有企业都有的数据源。常见的数据库数据包括CRM数据、呼叫中心数据、财务数据、仓储数据、销售数据、物流数据等。

• 网络爬虫:主要内容是外部市场、竞争、情报、用户的信息等,一般来自网站类型的公开站点。

• 第三方合作:很多企业可以通过合作、购买、交换的形式获得外部数据。外部数据通常包括竞争数据、营销数据、行业数据等。

2.数据同步和清洗

数据同步和清洗也被称为ETL(Extract-Transform-Load)。数据同步和清洗主要包括数据同步、质量校验、清洗转换、质量提升、数据脱敏、集成整合等。

• 数据同步:将数据从源环境中同步到数据ODS(Operational Data Store)或具有类似功能的数据环境中。

• 质量校验:从完整性、一致性、及时性、有效性、准确性、真实性6方面评估,目标是从源头把控数据质量,防止后续应用出现“垃圾进、垃圾出”的问题。

• 清洗转换:包括纠正错误、删除重复项、统一规格、转换构造和数据压缩等。

• 质量提升:以行业标准或第三方数据为基准,对残缺值、空值、异常值进行校正处理。

• 数据脱敏:通过脱敏规则对敏感信息进行转换,这是保障数据安全、避免企业隐私泄露的重要内容。

• 集成整合:对于多个数据源处理后的结果,按照特定的键值或规则将其按行或列组合为一个新的数据整体。

3.数据存储

按照不同的功能及业务需求将数据分层存储,主要包括原始数据、中间数据、明细数据、应用数据、缓存数据、灾备数据等。

• 原始数据:原始环境中的数据,或者直接从原始环境中同步过来的隔离层数据。

• 中间数据:数据清洗、处理和计算过程中的临时数据。

• 明细数据:清洗、计算完成后的明细粒度的数据,常在后续做深度计算、加工和算法建模时使用,也可以支持应用层原始数据的导出和二次使用。

• 应用数据:数据使用方需要的数据,一般是基于不同的数据粒度、不同模型、不同应用场景、不同主题得到的结果,如用户标签数据、商品标签数据等。

• 缓存数据:用于数据同步、查询、计算、Web服务等场景而缓存的数据。

• 灾备数据:除了系统自带的灾备方案(如集群多备份方案、自动镜像等),还包括本地、异地、异构环境、多系统、多数据中心的灾备数据。

随着大数据的技术演进,基于数据湖仓(或湖仓一体化)的存储模式正在被越来越多的公司接受。数据湖仓中存储的是原始的、未经处理的、包含结构化和非结构化的原始数据。数据湖仓的底层通常以文件或二进制对象存储作为支撑,而上层应用则通过数据管理层同时支持关系型和非关系型语义的管理与查询。

4.数据计算

数据计算按照计算延迟性可分为流式计算和批量计算,按照时效性可分为实时计算和离线计算。

离线计算、实时计算、批量计算、流式计算的区别与联系如下。

• 区别:离线计算和实时计算指计算的时效性,批量计算和流式计算指计算的延迟性,二者在指代对象上具有本质区别。

• 联系:流式计算由于延迟低,因此一般都为实时计算;而批量计算延迟高,大多都为离线计算。但二者的关系不是绝对的,例如,批量计算时使用高性能集群或主机也能实现实时计算。

这里主要介绍流式计算和批量计算的特点。

• 流式计算的设计主要受流数据集、时间周期、算法等因素的影响,数据延迟性一般是秒级甚至毫秒级。由于它对延迟性要求较高,因此数据处理量较小、数据窗口和周期较短。

• 批量计算有相对充裕的时间,可以对更多、更全的数据进行运算,数据延迟性一般为分钟、小时、天级别,对应的数据量可以达TB、PB级以上。

5.数据应用

常见的数据应用包括数据分析、实时业务监控、人工智能、数据开放服务。

(1)数据分析。

数据分析应用包括报表分析、OLAP(在线联机分析)、即席查询和Dashboard(仪表盘)等,需求主要来自业务、数据分析、商业分析、数据挖掘等部门。该需求侧重于数据查询、数据分析、数据挖掘能力,因此,提供便捷的多源数据关联模式、统一的数据查询视图、多种数据分析模式、多种查询方法和功能、快速的数据返回和完整数据导出是其核心。

(2)实时业务监控。

实时业务监控用于实时监控和统计企业的核心业务要素,并通过系统打通实现自动化业务管理、控制和管理。例如,实时统计网站各渠道流量,便于营销和运营实时把握运营节奏;实时监控订单信息,基于黑名单规则对订单主体进行识别,及时关闭黄牛订单、恶意刷单、批量优惠券使用等异常订单,降低企业经营损失。

(3)人工智能。

人工智能应用是各个企业普遍关注的核心领域,其典型应用场景如下。

• 精准营销+自动化。通过识别高价值营销人群,基于Lookalike算法扩展投放人群或提炼出人员规则,并自动推送到营销渠道实现自动人群投放。

• 个性化推荐。根据用户特征、实时上下文特征、Item特征,实时推荐用户最喜欢的商品、内容、咨询、活动等,以提升用户体验、用户活跃度及销售额。

• 网站智能资源管理。根据网站最优化运营目标(如点击量最大化、销售额最大化),对页面、楼层、区块、位置、功能等不同级别的资源与运营内容做优化组合,通过与CMS打通实现自动化资源投放管理。

• 会员运营+自动推送。会员运营中涉及优惠券发放、活动推送、流失会员识别和挽回、会员关怀等过程,找到与用户匹配的最优规则,并打通CRM实现自动推送。

• 库存预测+自动补货。基于企业内部营销计划、促销活动、商品信息,以及外部竞争对手的广告活动、商品价格、库存等信息,预测未来不同周期内可能产生的销售量,并推送到进销存或库存管理系统,实现自动制订补货计划、下单等。

• 智能素材设计。当面对大型促销活动时,通过人工智能学习素材设计规律,并应用到海量素材设计中,满足营销、站内运营、销售渠道运营等对于推广素材的并发设计需求。

• 基于图像识别的应用。当企业可采集图像(如线下实体店中的人脸)时,通过对图像进行识别、匹配、跟踪、分析,实现深度客户分析与服务支持。例如,基于客户上传图像实现“以图搜图”的功能等。

• 基于自然语言的应用。通过数字设备上的应用程序,支持用户以自然语言(包括文本和语音)的方式输入需求,实现自动内容识别、需求分析和需求满足,典型场景包括自助客服中心、实时语音搜索等。

(4)数据开放服务。

数据开放服务泛指一切对数据系统之外的应用方的服务支持。典型的服务方式是将数据能力和数据结果以API的方式封装并对外提供开放服务。

• 数据能力:泛指一切对数据进行整合、同步、清洗、治理、计算的能力。例如,将推荐系统的完整功能部署在云端,外部调用方只需按照部署要求进行基础数据采集,并在网站中部署一段JS(JavaScript)代码或在CMS中调用推荐API,即可实现实时推荐功能。

• 数据结果:一般是将处理后的结果(非原始数据)以API的方式提供给应用方。典型应用场景如用户标签的开发服务,调用方只需输入用户ID和其他必要的验证信息,即可返回该用户的标签信息,调用方可基于用户标签做验证、画像更新、画像补全及二次数据开发。

除了上述功能层的逻辑设计,还会涉及用户管理、权限分配、系统监控、实时告警、任务调度、资源协调、元数据管理等相关管理、控制和服务内容,这些都是系统正常工作、安全访问的重要保障。