大数据数据仓库建设流程概述

2023-11-08

数据仓库的逻辑分层架构:

想看懂数据仓库的逻辑分层架构,必须先弄懂以下4大概念。

数据源:数据来源,互联网公司的数据来源随着公司的规模扩张而呈递增趋势,同时自不同的业务源,比如埋点采集,客户上报,API等。

ODS层:数据仓库源头系统的数据表通常会原封不动地存储一份,这称为ODS层, ODS层也经常会被称为准备区。这一层做的工作是贴源,而这些数据和源系统的数据是同构,一般对这些数据分为全量更新和增量更新,通常在贴源的过程中会做一些简单的清洗。

DW层:数据仓库明细层和数据仓库汇总层是数据仓库的主题内容。将一些数据关联的日期进行拆分,使得其更具体的分类,一般拆分成年、月、日,而ODS层到DW层的ETL脚本会根据业务需求对数据进行清洗、设计,如果没有业务需求,则根据源系统的数据结构和未来的规划去做处理,对这层的数据要求是一致、准确、尽量建立数据的完整性。

DWS层:应用层汇总层,主要是将DWD和DWS的明细数据在hadoop平台进行汇总,然后将产生的结果同步到DWS数据库,提供给各个应用。举个例子,从ODS层中对用户的行为做一个初步汇总,抽象出来一些通用的维度:时间、ip、id,并根据这些维度做一些统计值,比如用户每个时间段在不同登录ip购买的商品数等。这里做一层轻度的汇总会让计算更加的高效,在此基础上如果计算仅7天、30天、90天的行为的话会快很多。

DA应用层:

① 业务产品CRM、ERP等,业务产品所使用的数据,已经存在于数据共享层,直接从数据共享层访问即可;

② 报表FineReport、业务报表,同业务产品,报表所使用的数据,一般也是已经统计汇总好的,存放于数据共享层;

③ 即席查询即席查询的用户有很多,有可能是数据开发人员、网站和产品运营人员、数据分析人员、甚至是部门老大,他们都有即席查询数据的需求;

④ OLAP:目前,很多的OLAP工具不能很好的支持从HDFS上直接获取数据,都是通过将需要的数据同步到关系型数据库中做OLAP,但如果数据量巨大的话,关系型数据库显然不行;

⑤ 其它数据接口:这种接口有通用的,有定制的。比如一个从Redis中获取用户属性的接口是通用的,所有的业务都可以调用这个接口来获取用户属性。

一、数据采集

数据采集层的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些ETL操作。数据源种类可以有多种:

  • 日志:所占份额最大,存储在备份服务器上
  • 业务数据库:如Mysql、Oracle
  • 来自HTTP/FTP的数据:合作伙伴提供的接口
  • 其他数据源:如Excel等需要手工录入的数据

二、数据存储与分析

随着公司的规模不断扩张,产生的数据也越来越到,像一些大公司每天产生的数据量都在PB级别,传统的数据库已经不能满足存储要求,目前hdfs是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。

离线数据分析与计算,也就是对实时性要求不高的部分,Hive还是首当其冲的选择。丰富的数据类型、内置函数;压缩比非常高的ORC文件存储格式;非常方便的SQL支持,使得Hive在基于结构化数据上的统计分析远远比MapReduce要高效的多,一句SQL可以完成的需求,开发MR可能需要上百行代码。当然,使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算。

三、数据共享

这里的数据共享,其实指的是前面数据分析与计算后的结果存放的地方,其实就是关系型数据库和NOSQL数据库;

前面使用Hive、MR、Spark、SparkSQL分析和计算的结果,还是在HDFS上,但大多业务和应用不可能直接从HDFS上获取数据,那么就需要一个数据共享的地方,使得各业务和产品能方便的获取数据。和数据采集层到HDFS刚好相反,这里需要一个从HDFS将数据同步至其他目标数据源的工具,同样,DataX也可以满足。

另外,一些实时计算的结果数据可能由实时计算模块直接写入数据共享。

四、维度建模

维度建模是专门用于分析型数据库、数据仓库、数据集市建模的方法。这里牵扯到两个基本的名词:维度,事实。

维度:维度是维度建模的基础和灵魂,在维度建模中,将度量成为事实,将环境描述为维度,维度是用于分析事实所需的多样环境。例如,在分析交易过程中,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。

事实:事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量。事实表中一条记录所表达的业务细节被称之为粒度。通常粒度可以通过两种方式来表述:一种是维度属性组合所表示的细节程度,一种是所表示的具体业务含义。

简单的说,维度表就是你观察该事物的角度(维度),事实表就是你要关注的内容。例如用户使用滴滴打车,那么打车这件事就可以转化为一个事实表,即打车订单事实表,然后用户对应一张用户维度表,司机对应一张司机维度表。

1、维度建模的三种模式:

  • 星型模式

星型模型架构是一种非正规化的结构,特点是有一张事实表,多张维度表,是不存在渐变维度的,事实表和维度表通过主外键相关联,维度表之间是没有关联,因为维度表的数据冗余,所以统计查询时不需要做过多外部连接。

  • 雪花模式

雪花模型架构就是将星型模型中的某些维度表抽取成更细粒度的维度表,然后让维度表之间也进行关联,通过最大限度的减少数据存储量以及联合较小的维度表来改善查询性能。

下图为使用雪花模式进行维度建模的关系结构:

星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计。雪花模型相当于将星形模式的大维表拆分成小维表,满足了规范化设计。然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大,而数据冗余问题在数据仓库里并不严重。

  • 星座模式

数据仓库由多个主题构成,包含多个事实表,而维表是公共的,可以共享,这种模式可以看做星型模式的汇集,因而称作星系模式或者事实星座模式。

事实上,星座模式是数据仓库最长使用的数据模式,尤其是企业级数据仓库(EDW)。这也是数据仓库区别于数据集市的一个典型的特征,从根本上而言,数据仓库数据模型的模式更多是为了避免冗余和数据复用,套用现成的模式,是设计数据仓库最合理的选择。

2、维度表设计:

维度的设计过程就是确定维度属性的过程,如何生成维度属性,以及所生成维度属性的优劣,决定了维度是用的方便性,成为数据仓库易用性的关键。

数据仓库的能力直接与维度属性的质量和深度成正比。

3、维度表基本设计方法:

以商品维度为例对维度设计放发进行详细说明。

  • 第一步:确定维度,具备唯一性

作为维度建模的核心,在企业级数据仓库中,必须保证维度的唯一性。以商品维度为例,有且只有一个维度定义。

  • 第二步:确定主维表,确定描述维度的主表

此处的主维表一般是ODS表,直接与业务系统同步。

  • 第三步:确定相关表,根据业务之间的关联性,确定维度的相关表

数据仓库是业务源系统的数据整合,不同业务系统或者同一业务系统中的表之间存在关联性,根据业务系统的梳理,确定哪些表和主维表存在关联关系,并选择其中的某些表用于生成维度属性。以商品维度为例,根据业务逻辑的梳理,可以得到商品与类目、sku、买家、卖家、店铺等维度存在的关联关系。

  • 第四步:确定维度属性

包含两个阶段,第一个阶段从主维表中选择维度属性,第二阶段从相关维表中选择维度属性。确定维度有以下原则:

① 尽可能丰富的维度属性,为下游分析、统计提供良好的基础

② 维度属性提供编码+文字的描述,编码用于表关联,文字表示真正的标签

③ 沉淀出通用的维度属性,一来减少下游使用的复杂度,二来避免下游口径不一致

以商品维度为例,从主维表和类目、sku、卖家、店铺等相关维表中选择维度属性或者生成新的维度属性。

该模式就属于雪花模式。

对于商品维度,如果采用反规范化,将表现为下图所示的形式:

采用雪花模式,除了可以节约一部分存储之外,对于OLAP系统来说没有其他的效用。而现阶段存储的成本非常低。出于易用性和性能的考虑,维表一般设计成不规范化的。在实际应用中,几乎总是使用维表的空间来换取简明性和查询性能。

4、事实表设计:

事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和业务过程有关的度量。

相对维表来说,事实表要细长的多,行的增加速度也比维表快很多。事实表分为三种类型:事务事实表,周期快照事实表,累计快照事实表。本文主要讨论事务事实表,不做词义赘述。

5、事实表设计原则及基本设计方法:

  • 尽可能包括所有业务过程相关的事实
  • 只选择与业务过程相关的事实
  • 分解不可加事实为可加的组件
  • 选择维度和事实之前必须先声明粒度
  • 在同一个事实表中不可以有多重不同粒度的事实
  • 事实的单位要保持一致
  • 对事实的null值要处理
  • 使用退化维提高事实表的易用性

任何类型的事件都可以被理解成一种事务。比如交易过程中的创建订单,买家付款,物流中的发货,签收,付款等。事务事实表针对这些过程创建的一种事实表。

6、下面店铺交易事务为例,阐述事务事实表的一般设计过程。

(1)选择业务过程及确定事实表类型:

交易的过程分为:创建订单、买家付款、卖家发货、买家确认收货,即下单、支付、发货和成功完结四个业务过程。Kimball维度建模理论认为,为了便于进行独立的分析研究,应该为每一个业务过程建立一个事实表。

(2)声明粒度:

业务过程选定之后,就要对每个业务过程确定一个粒度,即确定事实表每一行所表达的细节层次。需要为四个业务过程确定粒度,其中下单、支付和成功完结选择交易子订单粒度,即每个子订单为事实表的一行,买家收货的粒度为物流单。

(3)确定维度:

完成粒度声明以后,也就意味着确定了主键,对应的维度组合以及相关的维度字段就可以确定了,应该选择能够描述清楚业务过程所处的环境的维度信息。在店铺交易事实表设计过程中,按照经常用于统计分析的场景,确定维度包含:买家、卖家、商品、商品类目、发货地区、收货地址、父订单维度以及杂项维度。

(4)确定事实:

作为过程度量的核心,事实表应该包含与其描述过程有关的所有事实。以店铺交易事实表为例,选定三个业务过程:下单、支付、成功完结,不同的业务过程有不同的事实。比如在下单业务过程中,需要包含下单金额、下单数量、下单分摊金额;

经过以上四步店铺交易事务事实表已成型,如下图所示:

在确定维度时,包含了买卖家维度,商品维度,类目维度,收发货等。Kimball维度建模理论建议在事实表中只保留这个维度表的外键,但是在实际的应用中,可以将店铺名称、商品类型、商品属性、类目属性冗余到事实表中,提高对事实表的过滤查询,减少表之间的关联次数,加快查询速度,该操作称之为退化维。

经过以上的操作,基本完成了店铺交易事务事实表的设计工作。

五、元数据管理

元数据通常定义为”关于数据的数据”,在数据仓库中是定义和描述DW/BI系统的结构,操作和内容的所有信息。

元数据贯穿了数据仓库的整个生命周期,使用元数据驱动数据仓库的开发,使数据仓库自动化,可视化。

在操作数据仓库时,操作的都是元数据,而元数据分为技术元数据和业务元数据。

业务元数据是为管理层和业务分析人员服务,从业务的角度描述数据,包括行业术语、数据的可用性、数据的意义等。常用的业务元数据有:

维度和属性、业务过程、指标等规范化定义,用于更好的管理和使用数据。数据应用元数据,数据报表、数据产品等配置和运行元数据。

技术元数据是指数据仓库开发、管理、维护相关的数据,描述了数据的原信息,转换描述、数据映射、访问权限等。常用的技术元数据有:

存储位置、数据模型、数据库表、字段长度、字段类型、ETL脚本、SQL脚本、接口程序、数据关系等。

元数据的存储有常用的两种,一种是以数据集为基础,每一个数据集有对应的元数据文件,每一个元数据文件对应数据集的元数据内容,另一种是以数据库为基础,由若干项组成,每一项标识元数据的一个元素。

六、任务调度与监控

在数据仓库建设中,有各种各样非常多的程序和任务,比如:数据采集任务、数据同步任务、数据清洗任务、数据分析任务等。这些任务除了定时调度,还存在非常复杂的任务依赖关系。

比如:数据分析任务必须等相应的数据采集任务完成后才能开始;数据同步任务需要等数据分析任务完成后才能开始;这就需要一个非常完善的任务调度与监控系统,它作为数据仓库的中枢,负责调度和监控所有任务的分配与运行。

目前有能力的公司都是自己开发调度工具,如中国平安(linkdu),银行行业用的较多是Control-M,一些互联网公司可能会选择airflow作为自己的调度工具。

具体采用哪种工具,可以根据自己公司的本身现状去做定夺。

最后,在我看来,数据仓库建设是一个综合性技术,而且当企业业务复杂的时候,这部分工作更是需要专门团队与业务方共同合作来完成。

因此一个优秀的数据仓库建模团队既要有坚实的数据仓库建模技术,还要有对现实业务清晰、透彻的理解。

另外,架构并不是技术越多越新越好,而是在可以满足需求的情况下,越简单越稳定越好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据数据仓库建设流程概述 的相关文章

  • Hive:转换“yyyy-MM-dd'T'HH:mm:ss.SSS'Z'”中缺少秒数的字符串日期时间

    我使用以下代码将字符串日期时间变量转换为日期时间 但转换后的字符串缺少 SSS 部分 使用的代码 cast FROM UNIXTIME UNIX TIMESTAMP oldtime yyyy MM dd T HH mm ss SSS Z y
  • MapReduce 排序和洗牌如何工作?

    我正在使用 yelps MRJob 库来实现映射缩减功能 我知道 MapReduce 有一个内部排序和洗牌算法 它根据键对值进行排序 所以如果我在地图阶段后得到以下结果 1 24 4 25 3 26 我知道排序和洗牌阶段将产生以下输出 1
  • Hive 表的默认分隔符是什么?

    如果我们在创建表时不提及任何分隔符 hive 是否有默认分隔符 创建表日志 ts bigint 行字符串 按 dt 字符串 国家 地区字符串 分区 默认分隔符 001 如果创建hive表时没有设置 您可以将其更改为其他分隔符 例如 hive
  • Hive如何存储数据,什么是SerDe?

    当查询表时 SerDe 将将文件中的字节中的一行数据反序列化为 Hive 内部使用的对象来操作该行数据 执行 INSERT 或 CTAS 时 请参阅第 441 页上的 导入数据 表的 SerDe 将将 Hive 的一行数据的内部表示序列化为
  • Hadoop setInputPathFilter错误

    我正在使用 Hadoop 0 20 2 无法更改 并且我想向我的输入路径添加一个过滤器 数据如下 path1 test a1 path1 test a2 path1 train a1 path1 train a2 我只想处理所有文件trai
  • Cat 文件与 HDFS 中的模式不匹配?

    我正在尝试 cat 与 hadoop HDFS 中的以下模式不匹配的文件 hdfs dfs cat gz 如何捕获所有不以 gz 结尾的文件 编辑 抱歉 但我需要在 Hadoop 中管理文件 显然 hdfs 附带的命令非常少 编辑2 所有文
  • Hive(查找连续 n 列中的最小值)

    我在 Hive 中有一个表 有 5 列 即电子邮件 a first date b first date c first date d first date a b c d 是用户可以执行的 4 个不同操作 上表中的 4 列表示用户执行第一个
  • Sqoop Import --password-file 功能在 sqoop 1.4.4 中无法正常工作

    我使用的是hadoop 1 2 1 sqoop版本是1 4 4 我正在尝试运行以下查询 sqoop import connect jdbc mysql IP 3306 database name table clients target d
  • 在 Hadoop 中按文件中的值排序

    我有一个文件 其中每行包含一个字符串 然后是一个空格 然后是一个数字 例子 Line1 Word 2 Line2 Word1 8 Line3 Word2 1 我需要按降序对数字进行排序 然后将结果放入文件中 为数字分配排名 所以我的输出应该
  • 如果 HBase 不是运行在分布式环境中,它还有意义吗?

    我正在构建数据索引 这将需要以形式存储大量三元组 document term weight 我将存储多达几百万个这样的行 目前我正在 MySQL 中将其作为一个简单的表来执行 我将文档和术语标识符存储为字符串值 而不是其他表的外键 我正在重
  • hadoop2.2.0追加文件发生AlreadyBeingCreatedException

    我遇到了一个关于hadoop2 2 0追加操作的问题 我通过 HDFS java API 将一些字节附加到 hdfs 文件 首先 如果在附加操作之前文件不存在 我将创建目标文件 代码如下 String fileUri hdfs hadoop
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 将日期字符串转换为“MM/DD/YY”格式

    我刚刚看到这个例子 我该如何解决这个问题 Hive 元存储包含一个名为 Problem1 的数据库 其中包含一个名为 customer 的表 customer 表包含 9000 万条客户记录 90 000 000 每条记录都有一个生日字段
  • 这个 Java 语法是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 java中的是什么意思 https stackoverflow com questions 12649572 what does the type in java mean 在下面的代码中 Itera
  • hive创建表的多个转义字符

    我正在尝试将带有管道分隔符的 csv 加载到配置单元外部表 数据值包含单引号 双引号 括号等 使用 Open CSV 版本 2 3 测试文件 csv id name phone 1 Rahul 123 2 Kumar s 456 3 Nee
  • 如何在 Hadoop 中将 String 对象转换为 IntWritable 对象

    我想转换String反对IntWritableHadoop 中的对象 任何过程都可以进行转换 IntWritable value new IntWritable Integer parseInt someString 并处理以下可能性par
  • 猪参考

    我正在学习 Hadoop Pig 并且我总是坚持引用元素 请查找下面的示例 groupwordcount group chararray words bag of tokenTuples from line token chararray
  • Hive - 线程安全的自动递增序列号生成

    我遇到一种情况 需要将记录插入到特定的 Hive 表中 其中一列需要是自动递增的序列号 即在任何时间点都必须严格遵循 max value 1 规则 记录从许多并行的 Hive 作业插入到这个特定的表中 这些作业每天 每周 每月批量运行 现在
  • 在映射器的单个输出上运行多个减速器

    我正在使用地图缩减实现左连接功能 左侧有大约 6 亿条记录 右侧有大约 2300 万条记录 在映射器中 我使用左连接条件中使用的列来创建键 并将键值输出从映射器传递到减速器 我遇到性能问题 因为两个表中的值数量都很高的映射器键很少 例如分别
  • 运行时异常:java.lang.NoSuchMethodException:tfidf$Reduce.()

    如何解决这个问题 tfidf是我的主类 为什么运行jar文件后会出现这个错误 java lang RuntimeException java lang NoSuchMethodException tfidf Reduce

随机推荐

  • 如何打开iso文件

    iso文件用什么打开 iso文件用什么打开 使用光驱可以打开iso文件 iso文件是一种光盘 CD 上的系统文件格式 因此我们只需要将iso文件写入到光盘当中 然后用光驱打开光盘即可安装iso文件软件了 目前我们常购买的光盘系统盘就是商家将
  • 服务器远程如何修改密码,服务器远程如何修改密码

    服务器远程如何修改密码 内容精选 换一换 本地Windows操作系统主机 推荐使用 方法1 使用RDP文件登录在控制台单击 远程登录 下载RDP文件至本地 运行RDP文件 输入密码 密钥鉴权方式请先获取登录密码 登录远程桌面 详细操作请参考
  • 如何屏蔽百度搜索推广

    这几天大家都在说百度推广的事 笔者没什么好说的 毕竟已经很久没有见过百度推广了 不过说实话 很多时候谷歌搜出来的东西才是我想要的 今天就讲一下如何使用插件屏蔽百度推广 一 工具 1 chrome浏览器 2 Tampermonkey 插件 c
  • 性能优化工具:SQL Profiler

    https www cnblogs com kissdodog p 3398523 html 一 SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程 其作用如下 图形化监视SQL Server查询 在
  • Hexo + GitHub 搭建个人博客(二) Hexo monie主题

    前言 hexo theme monie 卡片化设计 安装 Git 安装 在项目的根目录下执行 git clone https gitee com lyboy6 hexo themes monie git themes monie npm 安
  • STM32NVIC中断优先级管理

    目录 抢占优先级响应优先级区别 中断设置相关寄存器 IO unit8 t IP 240 中断优先级控制寄存器组 中断参数初始化函数NVIC Init NVIC InitTypeDef结构体 抢占优先级响应优先级区别 抢占优先级高的可以打断正
  • 常用的LaTeX公式用法

    常用的LaTeX公式用法 常用的latex公式用法 常用的latex公式用法 加法 效果 减法 效果 乘法 叉乘 times 例子 a b a times b a b 效果 a b 乘法 点乘 cdot
  • 本地Linux服务器安装宝塔面板,并内网穿透实现公网远程登录

    文章目录 前言 1 安装宝塔 2 安装cpolar内网穿透 3 远程访问宝塔 4 固定http地址 5 配置二级子域名 6 测试访问二级子域名 转发自CSDN远程穿透的文章 Linux安装宝塔 并实现公网远程登录宝塔面板 内网穿透 前言 宝
  • MySQL数据库基本操作-DQL

    文章目录 一 基本查询 二 运算符 2 1 算术运算符 2 2 位运算符和逻辑运算符 2 3 比较运算符 三 排序查询 四 聚合查询 4 1 聚合查询举例 4 2 NULL值处理 五 分组查询 六 分页查询 七 INSERT INTO SE
  • ONES CTO

    2021年4月24日 4月26日 华为开发者大会在深圳大学城举办 本次大会主题为 每一个开发者都了不起 来自华为及各行业的技术大咖们与开发者汇聚一堂 探讨最新 ICT 技术在行业的深度创新与最佳实践 ONES CTO 冯斌先生受邀出席大会
  • 打开页面js自动加载的方法

    一 js方法 1 在body标签加onload属性 例 2 window onload方法 例 二 jQuery方法 1 window onload function alert 自动加载 2 document ready function
  • 全国计算机等级考试题库二级C操作题100套(第95套)

    第95套 给定程序中 函数fun的功能是 计算N N矩阵的主对角线元素和反向对角线元素之和 并作为函数值返回 注意 要求先累加主对角线元素中的值 然后累加反向对角线元素中的值 例如 若N 3 有下列矩阵 1 2 3 4 5 6 7 8 9
  • C++常量

    C 常量 常量是固定值 在程序执行期间不会改变 这些固定的值 又叫做字面量 常量可以是任何的基本数据类型 可分为整型数字 浮点数字 字符 字符串和布尔值 常量就像是常规的变量 只不过常量的值在定义后不能进行修改 整数常量 整数常量可以是十进
  • android webview 加载https

    在设置的WebViewClient 接收所有信任证书 wv setWebViewClient new WebViewClient Override public void onReceivedSslError WebView view Ss
  • 利用mysqldump实现分库分表备份的shell脚本

    一 信息摘要 linux版本 CentOS 7 9 mysql版本 MySQL 5 7 36 脚本实现功能 利用mysqldump工具实现对mysql中的数据库分库备份 和对所备份数据库中的表分表备份 二 shell脚本 bin bash
  • tensorflow的gpu版本错误

    出现错误 E tensorflow stream executor cuda cuda event cc 48 Error polling for event status failed to query event CUDA ERROR
  • statsmodels笔记:绘制ACF和PACF

    理论部分见 算法笔记 ARIMA UQI LIUWJ的博客 CSDN博客 3 1 3 2 1 绘制自相关函数ACF from statsmodels graphics tsaplots import plot acf plot acf df
  • Pytroch 模型权重初始化

    目录 1 概念 2 权值初始化方法 2 1 常数初始化 2 2 均匀分布初始化 2 3 正态分布初始化 2 4 Xavier 均匀分布 2 5 Xavier 正态分布 2 6 kaiming 均匀分布 2 7 kaiming 正态分布 2
  • 在产品中,我们常说的A端/B端/C端是什么?

    一 引言 在IT产品中 我们常常把各类型的技术系统分为A端 B端 C端 那它们到底是什么呢 又是有什么区别呢 今天小郭就带大家来仔细看看 二 我们常说的A端 B端 C端 R端是什么 2 1 产品分类 IT产品大致可以分为这四个类型 A端 是
  • 大数据数据仓库建设流程概述

    数据仓库的逻辑分层架构 想看懂数据仓库的逻辑分层架构 必须先弄懂以下4大概念 数据源 数据来源 互联网公司的数据来源随着公司的规模扩张而呈递增趋势 同时自不同的业务源 比如埋点采集 客户上报 API等 ODS层 数据仓库源头系统的数据表通常