这个问题的核心点在于:不同商品类别差异很大,如何设计通用的存储方案?简单来说,用数据库去存储所有信息,不管横表还是纵表,都有明显的缺陷:横表:同一个字段对不同商品含义不一样,这到了后面开发和维护是很蛋疼的纵表:一个商品的属性分布到很多行记录中,业务处理很麻烦,而且纵表的记录数会非常多,性能会有问题所以不要尝试只用数据库去统一解决这个问题,思路扩散一些其实就简单了:公共表:提炼商品公共的信息放到数据库,例如商品id、名称、发布的商家、发布日期、上架状态扩展表:将变化的信息放到另外一个表,可以是数据库表,例如电脑商品一个表、服装一个表;也可以将信息放到MongoDB或者ElasticSearch这类文档数据库。搜索组件:扩展表在全文搜索的时候不好实现,因此需要独立的组件负责搜索,可以用Elastic Search或者Solr来冗余一份数据,用于搜索。表结构不算复杂,因为项目关系只有SPU,没有涉及到SKU,但是可以做参考,更多的还是要根据项目实际情况设计。重点说明一下产品表的SPU,Keyword字段。本来之前设计了关系表,但是发现在做SQL查询时太痛苦,所以约定了一种数据存储结构(数据结构的重要性)基于上面的基础,可以实现URL规则变化的查询,类似京东的产品查询URL变化c=1,3 指分类层次关系ev=3_1+4_18 指SPU查询 按约定规则转换成字符串再进行查询。
(1)为什么要分层
作为一名数据的规划者,我们肯定希望自己的数据能够有秩序地流转,数据的整个生命周期能够清晰明确被设计者和使用者感知到。直观来讲就是如图这般层次清晰、依赖关系直观。
但是,大多数情况下,我们完成的数据体系却是依赖复杂、层级混乱的。如下图,在不知不觉的情况下,我们可能会做出一套表依赖结构混乱,甚至出现循环依赖的数据体系。
因此,我们需要一套行之有效的数据组织和管理方法来让我们的数据体系更有序,这就是谈到的数据分层。数据分层并不能解决所有的数据问题,但是,数据分层却可以给我们带来如下的好处:
1)清晰数据结构: 每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解;
2)减少重复开发: 规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算;
3)统一数据口径: 通过数据分层,提供统一的数据出口,统一对外输出的数据口径;
4 )复杂问题简单化: 将一个复杂的任务分解成多个步骤来完成,每一层解决特定的问题。
为了满足前面提到好处,通常将数据模型分为三层:数据运营层( ODS )、数据仓库层(DW)和数据应用层(APP)。简单来讲,我们可以理解为:ODS层存放的是接入的原始数据,DW层是存放我们要重点设计的数据仓库中间层数据,APP是面向业务定制的应用数据。下面详细介绍这三层的设计。
(2)数据模型的分层
1)源数据层(ODS)
此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
2)数据仓库层(DW)
也称为细节层,DW 层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。
此层可以细分为三层:
明细层DWD(Data Warehouse Detail) :存储明细数据,此数据是最细粒度的事实数据。该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。
中间层DWM(Data WareHouse Middle) :存储中间数据,为数据统计需要创建的中间表数据,此数据一般是对多个维度的聚合数据,此层数据通常来源于DWD层的数据。
业务层DWS(Data WareHouse Service) :存储宽表数据,此层数据是针对某个业务领域的聚合数据,业务层的数据通常来源与此层,为什么叫宽表,主要是为了业务层的需要在这一层将业务相关的所有数据统一汇集起来进行存储,方便业务层获取。此层数据通常来源与DWD和DWM层的数据。
在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。
3)数据应用层(DA 或 APP)
前端应用直接读取的数据源;根据报表、专题分析的需求而计算生成的数据。
4)维表层(Dimension)
最后补充一个维表层,维表层主要包含两部分数据:
A)高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。
B)低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。数据量可能是个位数或者几千几万。
(3)问题扩展
数据仓库系统架构
上图系统各部分的执行流程是:
1)确定分析所依赖的源数据。
2)通过ETL将源数据采集到数据仓库。
3)数据按照数据仓库提供的主题结构进行存储。
4)根据各部门的业务分析要求创建数据集市(数据仓库的子集)。
5)决策分析、报表等应用系统从数据仓库查询数据、分析数据。
6)用户通过应用系统查询分析结果、报表。
(4)结合项目中使用
电商网站的数据体系设计,这里针对用户访问日志这一部分数据进行举例说明:
在ODS层中,由于各端的开发团队不同或者各种其它问题,用户的访问日志被分成了好几张表上报到了我们的ODS层。
为了方便大家的使用,我们在DWD层做了一张用户访问行为天表,在这里,我们将PC网页、H5、小程序和原生APP访问日志汇聚到一张表里面,统一字段名,提升数据质量,这样就有了一张可供大家方便使用的明细表了。
在DWM层,我们会从DWD层中选取业务关注的核心维度来做聚合 *** 作,比如只保留人、商品、设备和页面区域维度。类似的,我们这样做很多个DWM的中间表。
然后在DWS层,我们将一个人在整个网站中的行为数据放到一张表中,这就是我们的宽表了,有了这张表,就可以快速满足大部分的通用型业务需求了。
最后,在APP应用层,根据需求从DWS层的一张或者多张表取出数据拼接成一张应用表即可。
电子商务网站建设需要以下步骤:第一步:网站的规划与设计
商城后台管理系统搭建开发是个较复杂的系统,一开始就要想好需要有的功能,网站的规划也是建所有网站都需要做的事情,在规划设计中需要对网站进行整体的分析,明确网站的建设目标,确定网站的访问对象,网站提供的内容与服务,网站的域名,logo,网站风格和网站目录分类等内容,这一步也是电商系统网站后台建设成功的前提,因为所有的建设步骤都是按规划设计进行实施的。
第二步:站点的建设
网站规划设计以后,就开始进入网站的建设阶段,电商系统网站后台建设这一阶段主要有域名注册,网站配置,网页制作和网站测试的四个部分。除了网站测试,需要在其他三项完成之后才能进行之外,域名注册,网站配置和网页制作相对独立,可以同时进行。
第三步:经营目标
经营目标是企业进行网络营销的目的所在,网络营销在运营过程中的“指南针”。一般情况下,一份网络营销计划书主要包括以下3个方面目标。
1、任务,即需要完成什么。
2、可量化的工作指标,即工作量是多少。
3、时间限制,即什么时候完成。
第四步:网络营销战略
接下来,营销人员按照“4P营销理论”(4P即产品、价格、渠道、促销四个因素)的内容和关系管理制定营销战略,以实现开发电子商务系统平台后台既定的目标,也就是关于产品、价格、促销和渠道的计划目标,此外,营销人员还要考虑产品定位,市场细分,市场差异化,客户关系管理等战略的制订。
第五步:做好网站建设的策划方案
企业建设商城网站,首先要进行的网站建设步骤就是要了解自己建设这个商城网站的目的是什么,电子商务是互联网时代发展的大热门,有许多企业制作电商商城网站系统纯粹是盲目跟风行为,不提倡这样的行为。所以需要在事前做好商城网站建设的策划方案,方案内容包括网站定位、目标用户定位、网站风格设计和营销目标等众多内容。
第六步:做好商城网站内容的建设
企业商城网站建设不是随便把一些产品信息和图片发布到网站上就行的,要做好一个商城网站的经营也不是一件简单的事情。所以在建设商城网站是要重视其内容,做好网站的内容建设才可以增加网站的点击率并提升转化率。
第七步:商城网站的推广不可忽视
定制开发一个成功的商城网站,并不是制作出功能完整的网站就可以了的,在上线后,还需要对网站进行推广,只有推广了才能让更多的人知道并了解你的新网站。所以推广也属于商城网站建设工作的重要组成部分。
建设网站上凡科建站,凡科建站拥有完善的自助建站系统,企业完全自主搭建网站, *** 作简单,还提供免费版建站,可以让中小企业一并解决过去烦恼的建站问题。
0代码轻松建站!点击这里获取精美网站模板:凡科建站
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)