网站制作属于什么专业,门户网站兴化建设局 金,python基础教程百度网盘,多举措加强局门户网站建设数据仓库DW
数据仓库具备 采集数据、分析数据、存储数据的功能#xff0c;最后得出一些有用的数据#xff0c;一些目标数据来使用。 采集来自不同源的数据#xff0c;然后对这些数据进行分析和计算得出一些有用的指标#xff0c;提供数据决策支持。 数据的来源有#xff…数据仓库DW
数据仓库具备 采集数据、分析数据、存储数据的功能最后得出一些有用的数据一些目标数据来使用。 采集来自不同源的数据然后对这些数据进行分析和计算得出一些有用的指标提供数据决策支持。 数据的来源有系统的业务数据、用户的行为数据、爬虫数据等。 数据仓库包含实时数据仓库、离线数据仓库。 数仓分层
数据仓库中的数据一般经过一下几层处理参考来自
1.ODS ODS主要完成
1保持数据原貌不做任何修改保留历史数据储存起到备份数据作用采集过来是什么数据就存储什么数据
2数据一般采用lzo、Snappy、parquet等压缩格式
3创建分区表防止后续的全表扫描减少集群资源访问数仓的压力一般按天存储在数仓中。
2.DWD
DWD主要完成
1. 数据清洗 1去除空值、脏数据、超过极限范围的数据。 2过滤核心字段无意义的数据比如订单表中订单 id 为 null支付表中支付 id 为空 3将用户行为宽表和业务表进行数据一致性处理 清洗的手段包括Sql、mr、rdd、kettle、Python等等。清洗掉数据不能太多也不能很少。合理范围1 万条数据清洗掉 1 条。
2. 脱敏 对手机号181****7089、身份证号等敏感数据脱敏
3. 维度退化 对业务数据传过来的表进行维度退化和降维。商品一级二级三级、省市县、年月日
4. 压缩 LZO列式存储 parquet
3.DWS 以DWD为基础进行轻度的汇总。预聚合。 DWS层就是关于各个主题的加工和使用这层是宽表聚合值是各个事实表的聚合值。这里做轻度的汇总会让以后的计算更加的高效如统计各个主题对象计算7天、30天、90天的行为 应对特殊需求例如购买行为统计商品复购率会快很多不必走ODS层反复拿数据做加工。 这层会把每个用户单日的行为聚合起来组成一张多列宽表以便之后关联用户维度信息后进行不同角度的统计分析。 涉及的主题包括访客主题、用户主题、商品主题、优惠券主题、活动主题、地区主题等 4.DWT 这层涉及的主题和DWS层一样包括访客主题、用户主题、商品主题、优惠券主题、活动主题、地区主题等。只不过DWS层的粒度是对当日用户汇总信息而DWT层是对截止到当日、或者近7日、近30日等的汇总信息。 以用户主题这个来举列
*DWS层用户主题层是记录某一个用户在某一天的汇总行为。
*DWT层用户主题层是记录某一个用户截止在当日的汇总行为。
5.ADS
统计指标。 ADS层数据是专门给业务使用的数据层这层是面向业务定制的应用数据层。
ADS主要完成
1提供为数据产品使用的结果数据、指标等。
2提供给数据产品和数据分析使用的数据一般会存放在 ES、MySQL等系统中供线上系统使用也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。如报表数据或者说那种大宽表。 这个项目中ADS层也是包含有多个主题设备主题、会员主题、商品主题、营销主题、地区主题、访客主题、用户主题、订单主题、优惠券主题、活动主题等等。每个主题都包含多个指标的计算。 离线数仓
通常是批处理数据一般一天处理一次所以是批处理数据量大处理时间长 离线数仓架构参考图 业务数据存储在MySQL用户行为数据存储在日志文件中。这两个数据源都要先采集进来然后进行分析计算等因为数据量会比较大所以采用Hadoop的HDFS存储。
业务数据在MySQL中由于是离线数仓所以每天进行全量同步一次数据到HDFS中即可这边我也不知道为啥还要进行增量同步到kafka中然后由消费者发送给HDFS存储。
日志文件由flume监控采集又因为日志文件比较大如果flume采集完就直接发送给HDFS效率不好所以flume采集完先发送给kafka的主题中接着flume消费者订阅这个主题消费日志文件发送给HDFS存储kafka消息队列在这起消峰的作用。
经过上面的步骤后数据就全部来到了HDFS中供使用。数据经过ODS、DWD、DWS、ADS层层处理产生想要的结果后数据处理经过这些层这些层总要有先后定时任务调度的作用就是如果数据在ODS处理好了就可以自动进入到下一层DWD继续处理。层层处理后的想要结果由DataX将结果每日同步到MySQL中方便进行后续的使用比如Superset可视化展示。 实时数仓
数据源源不断的来流式处理数据处理时间较短。
实时数仓用来处理那些实时性高的数据。
实时数仓架构参考图 实时的话创建flink消费者从kafka中取出数据那我就理解了为啥业务数据也要增量同步发给kafka了因为实时处理需要所以kafka就是ods层flink进行简单处理后发送给DWD层。 flume采集文件案例
以下的架构就是一个实时数仓的简单架构flume一直监控数据文件只要一有文件来就会被flume采集然后发给kafka主题接着就会被flink消费。 用户行为数据用户在使用产品过程中通过埋点收集与客户端产品交互过程中产生的数据并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。由于用户的行为数据比较多所以用户行为数据通常存储在日志文件中。 在flume的家目录中采集一个job文件夹存放flume的配置文件file_to_kafka.conf
a1.sources r1
a1.channels c1#配置source
a1.sources.r1.type spooldir
a1.sources.r1.spoolDir /mydata/spoolingDir#配置channel org.apache.flume.channel.kafka.KafkaChannel
a1.channels.c1.type org.apache.flume.channel.kafka.KafkaChannel
a1.channels.c1.kafka.bootstrap.servers 192.168.10.128:9092
a1.channels.c1.kafka.topic topic_log
a1.channels.c1.parseAsFlumeEvent false#组装
a1.sources.r1.channels c1启动
bin/flume-ng agent -n a1 -c conf/ -f job/file_to_kafka.conf -Dflume.root.loggerinfo,console bin/flume-ng这是启动 Flume 的可执行文件。agent指定要运行的 Flume 组件类型这里是代理agent。-n a1指定代理的名称这里是 a1。-c conf/指定配置文件的目录Flume 会在该目录下查找配置文件。-f job/file_to_kafka.conf指定要使用的配置文件的路径这是 Flume 的配置文件它描述了数据传输的配置。-Dflume.root.loggerinfo,console设置 Flume 的日志级别和输出方式。在此设置中日志级别为 info并将日志输出到控制台。 数仓技术选型 数据采集如果数据是以文件形式存在可以使用flume监控采集MySQL中的数据可以使用DataX采集
数据存储数据量比较小可以用MySQL存储数据量大用HDFS
数据计算实时性要求高用flink流式处理