大数据Hive离线计算开发实战笔记第一章

1.数据库

关系型数据库:存放结构化的数据,像表格就是结构化的数据,能够对用户的请求操作做出毫秒级的响应。

如:Oracle,Mysql,Sybase,DB2,PostgreSQL,SQLserver,Access等

非关系型数据库:

如:BigTable(Google),HBase(Apache),Redis,MongoDB,Cassandra等

2.数据库的三范式

数据库的三范式用来解决数据的冗余,即数据重复的问题。

第一范式:表中的每个字段是不可拆分的,比如三年二班,可以拆分成三年级和二班

第二范式:建立在第一范式的基础上,主键的唯一性,但如果数据出现重复,要把表拆分开来

不符合第二范式的表格
NameCodeDataTypeLengthPrimary
1订单编号orderIdvarchar2(30)301
2产品号productIdint
3购买人namevarchar(30)30
4购买电话phonevarchar(20)20
5身份证carNumvarchar(20)20

当一个人同时购买许多件商品时,就会产生多条数据,其中购买人都是重复的,这就造成数据冗余,所以我们应该把这张表拆分开来,分为订单信息表和购买人信息表

拆分后订单信息表
NameCodeDataTypeLengthPrimary
1订单编号orderIdvarchar(30)301
2产品号productIdint
3购买人编号peoIdvarchar(30)
拆分后购买人信息表
        NameCodeDataTypeLengthPrimary
1购买人编号peoldvarchar(30)301
2购买人namevarchar(30)30
3购买人电话phonevarchar(20)20
4身份证carNumvarhcar(20)20

第三范式:属性之间不能有传递依赖的关系

比如员工号,姓名,年龄,性别,所在公司,公司所在地址,公司电话不能再同一个表格中。

应该拆分成:员工号,姓名,年龄,性别,所在公司     和      所在公司,公司地址,公司电话

3.数据库事务

总共四种:原子性,一致性,隔离性,持久性

原子性:即事务里的操作,要么全部成功,要么全部失败。A给B转账1000元,要么A中的账户少A,B表都更新了。代表全部成功;要么就没转成功,A,B表都不更新,A,B账户金额无变化。

一致性:即所有的数据要保持一致,要么A中的账户少1000元,B中的账户多1000元;要么无变化

隔离性:在A给B转账的同时,C也给A转账,不会影响A给B转账

持久性:一旦事务提交后就会保存在数据库中

4.数仓分层

总公四层:ods(贴原层),dwd(整合层),dim(维度层),ads(数据集市)

ods:负责将原系统的数据利用交换层技术抽取过来直接存储,其存储表结构跟源系统时一摸一样的。

dwd:按照概念模型,逻辑模型,物理模型的递进设计思想,对企业操作型历史数据进行主题域设计建模,然后分析,细化主题域,定义主题域内部实体之间的逻辑关系以及实体的属性等,进而在数据仓库中建表,索引等,并为满足高性能的数据访问需求增加相应的数据冗余及表之间的约束关联,但尽可能遵循数据库三范式设计思想。

dim:在dwd层基础上根据业务的需要对数据进行多维度的构造分析,形成可供上层系统应用的星状或雪花状数据。

ads层:从dim层中获取相应的数据,进行数据挖掘和内部管理分析的数据应用模块。

5.数据库与数据仓库的区别

数据库存放的是每个系统产生的数据,比如信贷系统,国债系统等有与之对应的系统。

数据仓库存放的是企业的历史数据和对历史数据抽取,清洗,加工,汇总和处理后的操作型数据,它按照一个或几个主题域进行数据的存储,加工。比如银行的八大主题域:公共,账户,存款之类的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值