- 博客(42)
- 资源 (2)
- 收藏
- 关注
原创 2-经营管理之点和面的分析
2-经营管理之点和面的分析经营管理数据决策面向的是中高层领导,所以我们需要展示的大都是一些点和面的数据。点:是比较明细的一些数据,能直接观察和定位问题的数据,比如是哪个运单的质量有问题,哪个客户的折扣过高了等等。 运单号 收入 理赔金额 客户编码 收入 折扣 折扣率 YD001 20 .
2021-03-21 21:17:18
640
原创 1-如何诊断公司经营情况
如何诊断一家公司的经营情况,主要关注的是收入、成本、利润、质量这四大支柱,再对这四大支柱的细分,以及它们的互相关联。收入:公司的主营业务或其他营业收入,收入高层主要观注的是当月目标达成率,累计目标达成率,以及跟行业平均增长率的水平情况,公司每年都会对下面部门或销售线制定相应的销售目标,老板观注的是下面的达成情况,以及累计达成情况。这样老板就能很直观的知道目前各部门和销售线的完成...
2020-04-01 19:55:41
1475
原创 7-hive优化
1:按需取数正确脚本:select id from t_tab;错误脚本:select * from t_tab;所以查询数据如果只需要一两个字段,尽量不要用*,如果表为parquet列式存储,能很好的体现性能。2:在获取含分区的大表数据时,当使用关联时,如果将副表的过滤条件写在Where后面,那么就会先全表关联,之后再过滤select a.* from t_ta...
2020-04-01 19:53:50
369
原创 6- ABC迁移大数据2
1.存储过程迁移方法:存储过程的迁移我们直接用单个的HQL脚本里进行逻辑的迁移,需要注意的点是,在过程里有一些不需要落地的临时表(先delete再insert),以及最终的结果表需要落地(先delete再insert)。如下图:在HQL脚本里,临时表(删除表后再重建表),结果表覆盖方式重写指定分区数据(overwrite)。如下图:2.包迁移方法:包的迁移,我们可以理...
2019-09-22 09:40:48
263
原创 5- ABC迁移大数据1
从这部份开始,我们整体从ABC的ORACLE环境,迁移到大数据的HIVE环境,并且让系统自动调度,定时进行数据的计算。本节我们迁移基础表的数据,主要是构建我们的ODS数据同步,另一个是逻辑的迁移,主要是从ORACLE的语法,迁移到HIVE的语法。ABC迁移大数据仓库架构图:本节具体脚本可以参见:https://github.com/blt328/abc_hive1.表结构迁移见...
2019-09-01 22:00:43
260
原创 4- sqoop语法
Sqoop的安装很简单,直接解压配置相关hdfs信息,另外一个重要的是与关系库的驱动包,如果是oracle则要ojdbc14.jar,classes12.jar包,如果是mysql则要mysql-connector-java-5.1.32-bin.jar,为了方便大家下载可以直接到下面地址下载后,放到sqoop安装的lib目录下。百度网盘:https://pan.baidu.com/s/17b...
2019-08-25 20:54:08
213
原创 3- hive语法
1.创建内部表和外部表。内部表和外部表的区别是,内部表在删除表后,会对表存储所在的数据目录也做删除操作,外部表删除后则不会删除数据所在的目录。外部表语法:drop table if exists t_abc_dept;create external table t_abc_dept(dept_id int comment '机构id ',d...
2019-08-25 20:53:05
210
原创 2- hive元数据与hadoop的关系
大数据平台组件的安装,大家可以先在网上搜索,后期我会出一个安装过程图解,并支持HA的类生产环境的安装。Hive是构建在hadoop平台上的大数据仓库,方便大数据平台的数据读写和离线计算。为了方便管理hive自己有一套元数据的管理数据库,默认是存放在derby数据库中,不过此方法不适合生产,因为每个用户登录hive都是在本地目录创建元数据信息,不适合统一管理,所以一般生产上我们是放到mysql中...
2019-08-04 22:20:55
606
原创 1- hive和sqoop组件介绍
Hive:Facebook为了解决海量日志数据的分析而开发了Hive,后来开源给了Apache软件基金会。Hive是一种用类SQL语句来协助读写、管理那些存储在分布式存储系统(hadoop)上大数据集的数据仓库软件。Hive的特点:1:通过类SQL脚本执行大数据平台数据读取和写入以及数据分析,避免开发人员需要写复杂的mapredurce程序,让数据分析人员专注他们的分析工作。2:非富的...
2019-07-28 23:15:46
828
原创 10-数据分析和应用体系化
在上次的数据分析中,我们的数据分析都是一个个很零碎的看数方式,没有一个整体的思想,如何指导我们一步步的深挖原因,找到问题点。比如在上次我们只是单独从客户、流向、作业来看成本,如果下次用户想到看客户+流向,或者流向+作业一起来看呢,此时我们又要重新做数据了,最大的问题是这种事情是经常发生的,如果不从一开始就体系化,有一个主导思想,这样我们开发在后续中会很被动,天天给用户临时开发和提数。如下图:...
2019-07-14 11:30:43
405
原创 9- ABC模型之数据分析和应用
ABC模型计算好成本数据后,我们需要应用成本数据,在之前,我们有提到过项目的目标。一:利润分析,在没有ABC成本之前,我相信要分析产品的利润,流向的利润,客户的利润是做不到的,哪现在我们来分析下这几个维度的利润。1:产品利润分析:select to_char(a.rec_dt, 'YYYYMM') month_code, a.prod_code, a...
2019-07-14 11:29:23
898
原创 8- ABC模型之分摊(检测)
在成本的分摊过程中,我们需要保证2件重要的事:一:每步的分摊过程保证正确无误,分摊前和分摊后的成本要相等,此时我们需要做些检测机制,对每步分摊建立5种子过程状态,1:理论分摊金额,在分摊前确认的成本。2:实际分摊金额,在分摊过程中,我是拿了多少成本在分摊的。3:已分摊金额,能分摊下去的成本,即找到业务量的。4:未分摊金额,不能分摊下去的成本,即找不到业务量的成本。5:重复分...
2019-07-07 09:38:37
599
原创 7- ABC模型之分摊(实现)
分摊:就是对成本的摊销过程,依据动因占比进行分摊。分摊过程是有过程依赖的,即需要做完RR分摊才能做RA,RO分摊。如下图是一个正规的分摊过程。不过我们的案例省掉了RO分摊过程。在上图中,大家需要理解几个字母的意思。R:资源(成本)A:作业(生产过程的流程作业)O:对象(企业的产品或服务)RR分摊:就是资源到资源的分摊过程,一般是为了区分在同一网点同一资源下,服务不同的作业,...
2019-06-30 21:54:38
1149
原创 6- ABC模型之动因
动因是反应成本消耗的因子,用于成本分摊计算。因动分为单一动因和复合动因。比如A,B,C去吃大餐,花费了300元,如果AA制,则每人动因占1个人,分摊后每人出100元,这就是单一动因,其实这样还是不太公平,A和B很自律,一直保持好身材,只吃一点点并且只吃素菜,C是一个体重150斤以上了,对形象无所谓了,吃的多又只吃肉,如果还按AA制,对A,B不太好,为了体现公平,他们3人达成一致,A,B每人占一...
2019-06-27 14:17:38
1090
原创 5- ABC模型之业务建模
业务建模是最关键的一个环节,如何真实的反应业务流程,让成本更精确的分摊到对应的服务对象上,这个过程需要业务的专家和负责人,业务系统的产品经理、工程师都需要加入进来,并且共同讨论和决策,让业务加入是确定成本的分摊是否合理,各个利益部门是否达成共识,让技术加入是讨论数据和系统是否支持。在建模过程我们需要尽量做到抽象而标准,就是前面我们所说的,相同的网点类型做相同的事,抓主要放次要,比如在网点上我们...
2019-06-16 12:46:13
1027
原创 4- ABC模型之业务数据生成
为了业务数据更真实,理解整个方法论的过程,我们用程序模似了物流的生命周期数据。所有程序代码和建表脚本,初始数据见https://github.com/blt328/abc_blt分别如下:1:机构数据在源头机构表我们定义了深圳、广州、上海、北京的机构信息,分别有营业点、业务区、分拨区、总部。营业点:负责收件和派件业务,完成业务区的指标。业务区:管理营业点,制定相关指标和制度...
2019-06-15 17:55:48
332
原创 3- ABC模型之资源
资源就是公司的成本,财务采用记账方式录入公司的成本项,按科目细分到各个费用项,但我们的ABC项目在分析和应用时,并不一定需要这么细粒度,所以就需要做一个归类。如何归类,就需要跟据公司的费用花费形和管理方式来定义了,总体可以按下面方法来归类:1:按公司管理层关注的细粒度划分,比如老板比较关心公司的人工成本,运输成本,设备成本,管理成本等等。此时我们就需要把相关的工资、社保、福利等费用归到人工成本...
2019-06-09 23:01:11
695
原创 2-物流和快递行业ABC模型
下图是一个简单的快递物流生命周期,描述了整个快递物流环节过程,以及主要的作业环节。快递路由:客户寄一个快递通过收件->支线运输到中转场->飞机、陆运、铁路等->目的地中转场->派件。网点类型:每个机构的职责不一样,相同类型的机构做相同的事,如果一个企业机构庞大,我们则需要对机构就进归类,抽象出他们的作业,方便模型建模,在上面我们定义了营业点、中转场这2种类型的机...
2019-05-30 20:52:47
1406
原创 1-财务数据解决方案介绍
在接下来的分享里,我会讲解财务数据建模在企业中的应用,以及解决方案。在企业里,是很难准确的核算公司产品的成本,主要体现在以下几点:1):财务核算是按科目核算的,无法核算到产品上。比如薪酬这个成本在核算的时候是不能记录到产品的。2):非直接产品消耗的成本部门费用如何体现到产品上,比如一些后勤支持部门,非生产和销售部门等这些成本如何核算到对应的产品上。3):同一个部门或同一个岗位的人员...
2019-05-30 20:51:38
370
原创 5-dw_星型模型和雪花模型
星型模型:由一个事实表连接多个维度表,图形显示像星星一样,在维度表上存在一定的数据冗余,如下图:在上图中,我们的客户维表,对客户存储的省、市、县是有对数据一定的冗余,为了解决这个问题,设计出来的雪花模型。雪花模型:为了减少数据的冗余,在星型模型的基础上,对维度表增加了维度,以减少数据冗余。如下图:在上图中,我们对县、市、省在客户维表去掉,增加了行政维表,在客户维表中只存放了行政...
2019-05-26 11:06:02
621
原创 6-dw_元数据管理
元数据是帮助用户和技术人员对数据仓库里的数据理解,可以分为技术元数据和业务元数据。技术元数据包含:1:模型定义定义数据仓库里各各种模型的功能,包括数据的口径,各个字段的含义,使用范围,出数时间和频率。2:血缘定义模型里的源头数据来源,ETL同步方式,时间,频率,各个系统和表的上下游关系。3:ODS定义模型里的源头表的源系统名称,技术负责人,源头表数据逻...
2019-05-19 19:30:29
519
2
原创 2-dw_事实表、维度表
事实表:记录公司的一笔正常的业务数据,需要提供4W,什么时候(When)在什么地方(Where)有哪些人(Who)做了什么事(What)。为了方便后续分析,在设计事实表的时候,我们应该尽可能的提供详细的维度信息和度量信息。比如我们在谈一家物流公司的数据仓库的时候,如何去设计落地一个事实表,我们按以下过程来落地。1:用户的目的:首先我们需要知道用户的目的,以价值为导向,解决用户的问题,这时用...
2019-05-12 21:44:22
613
原创 4-dw_退化维
目前是一个数据爆炸时代,数据量增长很快,很多的一些维度表数据量大到足可以影响到你的报表展示,比如一些企业的客户维度表,产品维度表等。我们拿客户维度表来说,在客户维度表中,我们有客户代码,客户名称,月结客户代码,月结客户名称等,见如下图:在有一些大客户上,他们很多分公司,所以在业务往来的时候都是跟分公司进行合作的,但是在费用结算这块,又是跟这些大客户的总公司进行费用结算的,就像上面数据,...
2019-05-12 21:42:07
323
原创 3-dw_缓慢变化维
上次我们理解了维度表,哪什么是缓慢变化维呢,比如我们有这样的一个场景,A客户在4月份的时候归属于X部门,在5月的时候归属于Y部门,如果A客户的销售额需要体现归属部门的变化关系。此时就需要用到缓慢变化维了。如下图就是对客户表的一个缓慢变化。上面设计就是对每个月把客户生成一份数据,但如果我们的客户有100万个呢,每月生成一份,一年后就有1200万了,这样导致数据量会很大,在关联的时候会严重影响...
2019-05-09 21:16:16
230
原创 1-dw_数据仓库
此系列主要是讲数据仓库的实战。主要包括如下1:数据仓库的概念、事实表、维度表、缓慢变化维,退化维。2:星型模型设计、雪花模型设计。3:数据仓库元数据治理。4:实战经验在公司和企业里一般会有很多的业务系统,比如像销售、财务的、人资等各个部门都有自己为了开展工作或业务需要的系统,正常每个部门的系统都是独立的,如果确实需要别人系统里的数据也是做一个接口来访问,互相之间的数据交互很少,...
2019-05-04 11:23:03
486
原创 14-oracle_数据库开发过程
前面基础知识已经学的差不多了,我们更重要的是如何应用这些基础知识在工作中,把业务的需求通过这些知识点落地,在学习具体案例之前,怎么保证我们的开发过程正确,以下几点是大家在工作中需要经常记住的。1:理解源头数据业务含义和格式。 我们在做任何开发之前,都应该熟悉源系统的业务,理解后台表里的数据格式,以及业务系统的展示情况,如果可以模似一次完整的业务流程,加深理解。其实一个业务系统最主要的核...
2019-05-04 11:21:20
398
原创 13-oracle_数据库存储过程和包的开发
一:存储过程(图片左边的procedure目录):在数据库的实际开发过程中,我们不可能每个脚本用人工的方式执行,需要自动的批量提交脚本到数据库执行,数据库就提供了像存储过程这样的对象,方便开发人员把处理某个功能或报表的逻辑写到存储过程里。1)存储过程的优点:a.执行速度更快:在数据库中保存的存储过程语句都是编译过的b.允许模块化程序设计和可移植性更强:类似方法的复用(使用存储过...
2019-05-04 11:20:19
463
原创 12-oracle_分区
当表中的数据量不断增大,查询数据的速度就会变慢,这时就应该考虑对表进行分区。表分区后,逻辑上表仍然与原来表一样,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表的数据文件。如上表就是分区前后的差异,在分区前这个表的数据全放在一个文件上,导致数据量很大,按月份分区后,把相同的月份放在一个文件存储,多个文件存储不同月份的数据,这样在做数据查询的时候...
2019-04-14 09:53:10
178
原创 11-oracle_索引
索引大家可以理解为一本书里的目录,方便大家快速定位到自己要的章节,哪么在数据库里也一样,如果一个表数据有1000行数据,如何更快的查询到满足条件的记录,哪么索引就可以派上用场了,索引跟表一样,有自己的存储空间,只是表现形式不一样。索引有很多种:分区和非分区索引、常规B树索引、位图(bitmap)索引、翻转(reverse)索引等。其中,B树索引属于最常见的索引,今天我们讲解下B树索引的原理。...
2019-04-14 09:51:26
178
原创 10-oracle_表达式
1)关系表达式>,<,>=等在我们做查询语句时,经常会在where后面加上关系表达式。返回逻辑为TRUE的记录。select * from t_sales a where a.sales_amt > 5000;所以结果只返回了销售额大于5000的记录3条2)逻辑表达式and,or,notselect * from t_sales ...
2019-04-14 09:50:08
238
原创 9-oracle_union和union all
Union是对结果集的并集操作,会要求2个集合是要有相同的字段和类型。Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序Union all:对两个结果集进行并集操作,包括重复行,不进行排序Union:我们对同一个表做2次查询,查询的结果并没有出现重复的2条出现:select user_no, dept_code, sales_amt from t...
2019-04-14 09:48:46
388
原创 0-oracle执行脚本
本课程的所有执行脚本都上传在github上。请参见:https://github.com/blt328/oracle_blt自行下载。
2019-03-23 17:57:23
269
原创 8-oracle_分析函数(二)
1): Lead(),Lag()其实这2个函数的作用非常好理解,Lead()就是取当前顺序的下一条记录,相对Lag()就是取当前顺序的上一行记录。经常会有判断在一定条件下的两条记录之间的时间差、或者数值差这样的需求。比如有一个员工号+部门+销售金额的表结构,现在求出每个部门的后一名与前一名的销售金额差,每个部门的第一个差异为0select user_no, dept...
2019-03-23 17:46:47
184
原创 7-oracle_分析函数(一)
1.分组聚合函数聚合函数主要有求和:sum();最大数:max();最小数:min();平均值:avg();统计数:count()等,在应用此类函数的时候,要么是从全集合来看或者从分组来看的。分组就是我们之前所说的维度,比如在成绩表中,我们需要按科目求出总成绩,最低成绩,最高成绩,平均成绩,以及人数。select a.subject, sum(a.score) all_sc...
2019-03-23 17:45:58
146
原创 6-oracle_表关联
表关联是对2个表的列合并,怎么合并呢,这里需要一个连接信息,也就是关联字段,比如一个学生表里有学号+班级+出生日期,另一个表里有学号+科目+成绩,哪如果需要得到学号+班级+科目+成绩这样的信息,这就需要表关联,关联的字段用什么呢,只能用这2个表共同相关的字段,也就是学号这个字段,这样就能把2个表连接起来。哪分别有哪几种关联类型呢?有如下数据:1)内关联:inner join比如需求...
2019-03-23 17:44:39
275
原创 5-oracle_创建表
表可以理解是数据库的一种复杂数据类型,用于存放具体数据的逻辑对象。表的形式是一个二维表格,由行和列组成,在统计学里你可以把行理解为样本,列理解为特征,在数据仓库里行就是一个事实,列就是由维度和度量组成。在创建表的时候,哪怎样去设计一个表的属性呢(列),比如我们要创建一个用户表,哪用户会有一些什么信息呢,即特征:用户名+性别+住址+学历+身高+年龄+收入等等,其中:用户名+性别+住址+学历是...
2019-03-23 17:43:49
152
原创 4-oracle_基本数据类型
本课我只讲解一些基本常用的数据类型:Char:定长字符串,如果字符没有定义的长度,则后面补空格。Varchar2:可变长字符串。大家需要注意下这2个类型的区别,不然在后续的应用中会有一些坑,如下截图是我定义的一个表,其中A字段定义为char(10),B字段定义为varchar2(10),两个字段的长度都为10,我插入一条这相同的字符到表中,分别统计这2个字段的长度,会发现什么情况呢?...
2019-03-23 17:42:46
128
原创 3-oracle_创建用户
oracle内部有两个建好的用户:system和sys。用户可直接登录到sys用户以创建其他用户,因为sys具有创建别的用户的权限,为什么需要创建一个新的用户,主要是sys用户权限太大了,如果某天一不小心,就把生产的重要信息删除了,后果很严重的,另外一个是从管理上来考虑的,一个用户负责一个应用程序的数据管理,以及权限的控制。创建语法:create user 用户名 identified by...
2019-03-23 17:41:39
229
原创 2-plsql开发工具安装
本课主要是安装oracle的开发工具PLSQL Developer 12链接:https://pan.baidu.com/s/1PSVW3LYkAIMjADqVD4G3Ig提取码:kdxz安装步骤就不一步步截图了,大家默认的点下一步就行了,但是在安装软件前,请注意自己电脑上是否已经安装了oracle的服务端或客户端(即我们上节课的软件安装),不然在连接oracle服务器时会碰到连接串不...
2019-03-09 21:56:57
311
原创 1-oracle环境准备
此课程是oracle开发的第一课,我们先从环境的准备开始。1:oracle的下载和安装 大家登录下面网页下载安装文件https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html可以跟据情况选择11G或12C,目前我的环境是11G,如图下载完2个文件后解压在同一目...
2019-03-09 21:49:38
138
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅