网站策划书主题,外包给网站建设注意事项,获取网站访问者qq号,wordpress音乐页面1、事实表主要分成几种#xff1a;
1、事务事实表#xff1a;又称作原子事实表#xff0c;主要是用来描述业务过程#xff0c;跟踪控件或者时间上某点的度量事件#xff0c;保存的是最原子的数据
2、周期事实表#xff1a;以一个周期作为一个时间间隔#xff0c;用来记…1、事实表主要分成几种
1、事务事实表又称作原子事实表主要是用来描述业务过程跟踪控件或者时间上某点的度量事件保存的是最原子的数据
2、周期事实表以一个周期作为一个时间间隔用来记录事实一个周期可以是每天、每周、每月、每年等。
3、累计快照事实表用来描述过程开始和过程结束之间的关键步骤事件覆盖过程的整个生命周期通常具有多个日期字段来记录关键时间点当过程随着生命周期不断的变化时记录也会随着生命的周期变化而被修改。
2、数仓建模的规范
数仓分层阿里主要分成了五层分别是ods、dwd、dim、dws、ads层每一层都有自己的一个单独的作用
ods层的主要的作用就是将数据从数据源采集过来对数据来说基本上是不做任何的处理。
dwd层这层的主要的作用就是ods层的数据采集过来在这层会对数据做一些处理例如说在这层会对一些空的数据进行过滤对于用户的手机号、身份证号码进行加密的操作等。
dim层主要存储的是一些维度数据就是一些不怎么变化的数据例如说一些省份的名称是不会发生改变的。
dws层的主要的作用就是对数据进行汇总构建宽表对维度表进行维度退化的操作
ads层的主要的作用就是计算一些指标对外使用构建好的宽表以便计算指标。
在构建宽表的时候需要注意的是禁止逆向调用需要避免同层调用、还需要避免跨层调用
3、将数据从ods层采集到dwd层主要的操作有哪些
对数据进行清洗过滤一些空数据对敏感数据进行脱敏操作。又是也会做一些维度退化。
4、 宽表的设定
做宽表实际上就是做join实际上就是做维度退化把维度表中的数据退化到事实表中。
5、 什么是维度退化
就是将维度表退化到事实表中例如说一个订单表是一个事实表还有一个就是商品的信息表是维度表将来进行展示的时候需要展示的商品的所有的信息就类似于join将维度表关联到事实表中。
6、什么是维度表
主要存放的就是一些不怎么变化的数据表就比如说一些地域的省份的名称就不会发生改变。
7、什么事实表 有度量值的表就是哪些需要需要参与计算的一些表就比如说订单表中会有金额、数量等信息。
8、hdfs中的组件的作用
hdfs中的组件主要包括namenode、datanode、SecondaryNameNode分别的作用
namenode主要的作用就是存储元数据也是接收客户端的一些读写数据的请求。
datanode是hdfs中的真实存储数据的地方会与namenode保持保持心跳机制。
SecondaryNameNode主要的作用就是用来合并日志文件下次hadoop会根据这个合并的文件启动。将hadoop中的edit logs文件合并到fismage文件中。
9、hadoop不适合存储小文件以及解决方法
不适合存储小文件的原因
首先小文件的数量变多那么namenode的压力就会变大因为元数据是存储在namenode中可能会导致namenode出现宕机。其次就是计算的资源消耗会比较大小文件越多map任务的数量就会越多此时消耗的计算资源就会比较多。
解决方法
1、使用har归档hadoop archivehar是一个高效的将小文件放入到hdfs块中的文件存档工具它能够将多个小文件打包成一个HAR文件
例如
在本地准备两个小文件
cat
user1.txtEOF1,tom,male,162,jerry,male,10EOFcat
user2.txtEOF101,jack,male,19102,rose,female,18EOF将本地的文件put到hdfs中
hdfs dfs -put user.* /foo/bar/对某个目录/foo/bar下的所有小文件存档成/outputdir/zoo.har
hadoop archive -archiveName foo.har -p /foo/bar/outputdir查看文件
hdfs dfs -ls har:///user/zoo/foo.har
但是需要注意的是对小文件进行存档的时候原来的小文件是不会被删除的需要用户进行手动删除。
2、使用Sequence file 由一个二进制key/value组成如果key为小文件的名称那么value就是文件的内容可以将大批的小文件合并成一个大文件。
3、CombineFileinputFormat针对hive表中的小文件数合并处理
是一种新的inputformat用于将多个文件合并成一个单独的split在map和reduce处理之前进行合并小文件。
4、开启JVM重用
有小文件的时候需要开启JVM重用会在任务执行前将所有需要的资源进行申请当任务只想完成后在释放资源。
property namemapreduce.job.jvm.numtasks/name value10/value
description
How many tasks to run per jvm,if set to -1 ,there is no limit
/description
/property
5、将本地的小文件进行合并再将文件上传到hdfs中。appenToFile
将本地的多个小文件上传到hdfs中可以通过hdfs的客户端的appendToFile命令对小文件进行合并
在本地准备两个文件
cat
user1.txtEOF1,tom,male,162,jerry,male,10EOFcat user2.txtEOF101,jack,male,19102,rose,female,18EOF使用appendToFile合并小文件
hdfs dfs -appendToFile user1.txt user2.txt /test/upload/merged_user.txt# 查看
hdfs dfs -cat /test/upload/merged_user.txt
6、合并hdfs中的小文件下载到本地getmerge
可以通过hdfs中的命令getmerge将多个小文件进行合并在下载到本地。
# 先上传小文件到
hdfs dfs -put user1.txt user2.txt /test/upload
# 下载同时合并
hdfs dfs -getmerge /test/upload/user*.txt ./merged_user.txt
10、hive与mysql的区别 1、数据存储位置 Hive存储在 HDFS 上数据库将数据保存在块设备或者本地⽂件系统中 2、数据更新 Hive默认不⽀持 update delete 操作需要开始事务配置。⼀般场景不建议使⽤跟新。 mysql⽀持更新删除操作。如果在 hive 中需要 update 。可以 insert into 新表 select 字段 1 字 段 2 if 更新条件返回否则返回 from 旧表 3、执⾏延迟 Hive执⾏延迟较⾼数据库的执⾏延迟较低。这个是有条件的在数据规模较⼩时在数据 规模⼤到超过数据库的处理能⼒的时候Hive 的并⾏计算显然能体现出优势。 4、数据规模 Hive⽀持很⼤规模的数据计算数据库可以⽀持的数据规模较⼩。 5、SQL 语法区别 1 hive 不⽀持 where 后⾯跟⼦查询。 2 hive ⽀持建表分区操作 mysql 不⽀持。 3 group by 。 hive 中 sql select 中的维度字段必须出现在 group by 后⾯。 mysql 语法可以不 ⽤。 11、hive的四个by的区别 order by 全局排序只有⼀个 reduce sort by 分区内有序 distribute by 类似于 MR 中 partition 进⾏分区结合 sort by 使⽤ cluster by 当 distribute by 和 sort by 字段相同的时候可以使⽤ cluster by ⽅式。 cluster by 除了 具有 distribute by 的功能外还兼具了 sort by 的功能。但是排序只能是升序排序不能指定排序规则 为 ASC 或者 DESC 。 12、自定UDF的步骤
⽤UDF函数解析公共字段⽤UDTF函数解析事件字段 ⾃定义UDF继承UDF重写evaluate⽅法
13、hbase的架构每一个组件的作用
hbase的架构主要包括zookeeper、regionserver、region、memstore、storefile、hmaster、hlog
zookeeper作用
1、保证在任何的时候集群中只含有一个hmasterhbase也是一个主从架构的支持高可用
2、存储所有的region的寻址入口用户需要访问数据就需要向zookeeper发送请求获取元数据的元数据表的地址信息返回给客户端客户端与对应的regionserver建立连接
3、实时监控regionserver的上线和下线实时向hmaster进行报告。
hmaster作用 1、为regionserver分配region
2、监控region server发现失败的region server重新分配region
3、管理用户对表的增删改。
regionserver作用
1、regionserver用来维护region负责接受region的io
2、region server负责监控region对于那个变大的region进行切分。
hlog作用
就是hadoop中的有个Sequence FileSequence File 的Key是 HLogKey对象HLogKey中记录了写入数据的归属信息除了table和 region名字外同时还包括sequence number和timestamptimestamp是” 写入时间”sequence number的起始值为0或者是最近一次存入文件系 统sequence number。HLog SequeceFile的Value是HBase的KeyValue对象即对应HFile中的 KeyValue
region作用
hbase会自动的将表水平划分成多个region每一个region中都存储一串连续的数据首先一张表一开始只含有一个region但是随着数据的不断的插入region就会不断的增大当达到一定的阙值的时候默认是128Mregion就会等分成两个region当表中的行不断的增加就会有越来越多的region被regionserver多管理。
memstore作用
1、一个region由多个store组成一个store对应一个CF列簇
2、store包括位于内存中的memstore和位于磁盘的storefile写操作先写入 memstore当memstore中的数据达到某个阈值hregionserver会启动 flashcache进程写入storefile每次写入形成单独的一个storefile
3、当storefile文件的数量增长到一定阈值后系统会进行合并minor、 major compaction在合并过程中会进行版本合并和删除工作 majar形成更大的storefile。
4、当一个region所有storefile的大小和超过一定阈值后会把当前的region 分割为两个并由hmaster分配到相应的regionserver服务器实现负载均衡。
5、客户端检索数据先在memstore找找不到再找storefile
6、HRegion是HBase中分布式存储和负载均衡的最小单元。最小单元就表 示不同的HRegion可以分布在不同的HRegion server上。
7、HRegion由一个或者多个Store组成每个store保存一个columns family。
8、每个Strore又由一个memStore和0至多个StoreFile组成。
14、spark中的一些转化算子和行为算子
转化算子 map、gruopby、groupbykey、reducebukey
行为算子foreach、foreachpartition、take、top、count
15、persist与cache的区别
persist持久化在大数据处理的框架中persists是将rdd或者是dataframe持久化到内存中或者是持久化到磁盘中以便在后续的操作中重复中这些数据而不需要在冲重新计算持久化是用来提高性能在使用相同的数据的时候比较明显可以选择不同级别的持久化例如MEMORY_ONLY、DISK_ONLY、MEMORY_AND_DISK
cache缓存在类似的spark这样的分布式计算框架中cache的主要的作用是将数据缓存到内存中以便以后可以快速的访问。
两者的区别
1、持久化的方式不同persists既可以将数据缓存到内存中也可以将数据缓存到磁盘中。
2、使用的方式不同persists是一种比较通用的持久化的方式可以选择不同的缓存级别然而对于cache来说它是persists的一种的特殊情况将数据持久化到内存中。
16、dataframe、dataset、rdd的区别
1、RDD
RDD是spark中最早引入的抽象数据类型代表的是一个弹性分布式数据集。
RDD是面向对象的可以包含任何类型的java、scala、python对象
2、dataframe
是基于RDD的高级抽象代表的是一张表格化的数据结构类似于关系型数据库中的表。
dataframe具有优化的执行计划可以提高新性能。
dataframe通常用于结构化数据的处理支持sql操作列式操作dataframe API等。
3、dataset
结合了rdd面向对象的风格和dsataframe的查询优化的特点
dataset是类型安全的允许使用强类型的API可以在编译的时候捕获编译的错误。
17、flink中的插槽
主要是用来资源隔离因为在flink中每一个task都是在taskmanager中运行solt就是最小的资源单位每一个solt中接受一个task防止在多个task在运行的时候抢占资源。
18、flink中的组件以及每一个的作用
client、jobmanager、taskmanager
client
构建和配置flink作业设置作业的参数并将任务通过flink run提交到jobmanager上去执行。
jobmanager
主要的作用是负责接收客户端的作业提交的请求负责整体任务的资源调度协调任务之间的数据交换同时也负责整体的状态维护。
taskmanager
主要是负责接受jobmanager分配的任务并执行这些任务并负责任务之间的数据传输并将计算的结果返回。
19、窗口
滑动窗口、滚动窗口、会话窗口、统计窗口
会话窗口在定义的时候于滑动窗口、滚动窗口的区别是在定义窗口的时候是基于事件之间的间隔而不是固定的时间段或者是固定数量的事件。
20、事实表设置的主要的流程
1、选择业务 2、声明粒度 3、确定维度 4、确定事实 5、冗余维度