数据仓库用户新增主题(代码片段)

noyouth noyouth     2022-12-01     446

关键词:

实现思路:要知道今天有哪些用户是新增用户,需要知道两件事,一是今天所有的活跃用户,因此,新增用户的数据来源,还是DWS层的设备日活表,新增用户,就是部分日活的用户。二是要知道哪些用户在以前活跃过,用今日活跃用户减去以前活跃过的用户,剩下的就是新增用户。

DWS层(每日新增设备明细表)

建表语句。

分析:这个表用来存储每日新增的设备(用户),数据量比起每日活跃表来说,要少的多。因为一台设备可以在每天都生成活跃记录,而新增设备却只会出现一条记录,数据量相对较少,可以不用分区表。

drop table if exists dws_new_mid_day;
create external table dws_new_mid_day
(
    `mid_id` string COMMENT 设备唯一标识,
    `user_id` string COMMENT 用户标识, 
    `version_code` string COMMENT 程序版本号, 
    `version_name` string COMMENT 程序版本名, 
    `lang` string COMMENT 系统语言, 
    `source` string COMMENT 渠道号, 
    `os` string COMMENT 安卓系统版本, 
    `area` string COMMENT 区域, 
    `model` string COMMENT 手机型号, 
    `brand` string COMMENT 手机品牌, 
    `sdk_version` string COMMENT sdkVersion, 
    `gmail` string COMMENT gmail, 
    `height_width` string COMMENT 屏幕宽高,
    `app_time` string COMMENT 客户端日志产生时的时间,
    `network` string COMMENT 网络模式,
    `lng` string COMMENT 经度,
    `lat` string COMMENT 纬度,
    `create_date`  string  comment 创建时间 
)  COMMENT 每日新增设备信息
stored as parquet
location /warehouse/gmall/dws/dws_new_mid_day/;

数据导入,以2019-02-10为例。用日活表取连接新增设备表,如果以前没有出现在新增设备中的数据(nm.mid_id is null),即为新增的设备。

insert into table dws_new_mid_day
select  
    ud.mid_id,
    ud.user_id , 
    ud.version_code , 
    ud.version_name , 
    ud.lang , 
    ud.source, 
    ud.os, 
    ud.area, 
    ud.model, 
    ud.brand, 
    ud.sdk_version, 
    ud.gmail, 
    ud.height_width,
    ud.app_time,
    ud.network,
    ud.lng,
    ud.lat,
    2019-02-10
from dws_uv_detail_day ud left join dws_new_mid_day nm on ud.mid_id=nm.mid_id
where ud.dt=2019-02-10 and nm.mid_id is null;

 

ADS层(每日新增设备表)

上面的新增设备明细表,只是记录了每日新增了哪些设备,但报表上要展示的,是每日新增了多少数量的设备,因此,还需要一个ADS层的表去存储count后的数据,以便于直接展示在报表里。

建表语句。

drop table if exists ads_new_mid_count;
create external table ads_new_mid_count
(
    `create_date`     string comment 创建时间 ,
    `new_mid_count`   BIGINT comment 新增设备数量 
)  COMMENT 每日新增设备信息数量
row format delimited fields terminated by 	
location /warehouse/gmall/ads/ads_new_mid_count/;

导入数据,以2019-02-10为例。

insert into table ads_new_mid_count 
select
create_date,
count(*)
from dws_new_mid_day
where create_date=2019-02-10
group by create_date;

最后,还要将上面的两个导数据的sql写成脚本,略。

 

数据仓库用户活跃主题(代码片段)

①对某一主题的分析,涉及到DWS数据服务层和ADS数据应用层。②业务术语用户:用户以设备为判断标准,在移动统计中,每个独立设备认为是一个独立用户。Android系统根据IMEI号,IOS系统根据OpenUDID来标识一个独立用户,每部手... 查看详情

数据仓库系统及特点(代码片段)

...就是一个典型的OLTP系统。OLTP在使用过程中积累了大量的数据。关系数据库概念提出之后,联机事务处理一直是数据库应用的主流。OLTP的特点是:1)对相应时间要求非常高;2)用户数量非常庞大,主要是操作人员;3)数据库的... 查看详情

数据仓库hive(代码片段)

数据仓库什么时候需要用到数据仓库?一个公司里面不同项目可能用到不同的数据源,有的存在MySQL里面,又的存在MongoDB里面,甚至还有些要做第三方数据。但是现在又想把数据整合起来,进行数据分析。此时数据仓库(DataWarehou... 查看详情

hadoop之hive(代码片段)

数据仓库数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持。数据仓库是存数据的,企业的各种数据往里面存,主要目的是为了分析有效数据,后续会基于它产出供分析挖掘的数据,或... 查看详情

数据仓库的架构与设计(代码片段)

公司之前的数据都是直接传到Hdfs上进行操作,没有一个数据仓库,趁着最近空出几台服务器,搭了个简陋的数据仓库,这里记录一下数据仓库的一些知识。涉及的主要内容有:什么是数据仓库?数据仓库的架构数据仓库多维数... 查看详情

mysql5.7新增数据避免重复记录(代码片段)

目录一、MySQL5.7新增数据避免数据重复的语法二、MySQL5.7新增数据避免数据重复的演示示例1、建表并初始化假数据2、创建唯一索引3、插入用户名、邮箱和创建时间三个属性值的数据已经存在用户表中的数据,会提示警告࿰... 查看详情

数据仓库的架构与设计(代码片段)

公司之前的数据都是直接传到Hdfs上进行操作,没有一个数据仓库,趁着最近空出几台服务器,搭了个简陋的数据仓库,这里记录一下数据仓库的一些知识。涉及的主要内容有:什么是数据仓库?数据仓库... 查看详情

数据仓库期末复习(代码片段)

1、什么是“数据仓库”?数据仓库是用于存储海量数据以及供分析决策的工具。补充:特点:面向主题的、集成的、非易失的、随时间变化的2、由于原始数据和导出数据的差异而引发数据分离的自然扩展过程形成的... 查看详情

数据仓库期末复习(代码片段)

1、什么是“数据仓库”?数据仓库是用于存储海量数据以及供分析决策的工具。补充:特点:面向主题的、集成的、非易失的、随时间变化的2、由于原始数据和导出数据的差异而引发数据分离的自然扩展过程形成的... 查看详情

hive数仓项目之访问咨询主题看板增量的流程(代码片段)

 往期内容:Hive数仓项目架构说明、环境搭建及数据仓库基础知识Hive数仓项目之数仓分层、数仓工具的使用Hive数仓项目之访问咨询主题看板:数据的采集、转换、分析导出今日内容:访问咨询主题看板_增量的流程(操作)1.... 查看详情

数据仓库dws层之用户行为宽表(代码片段)

...便之后关联用户维度信息后,进行不同角度的统计分析。数据来源:DWD层相关的业务数据表创建用户行为宽表:这张宽表整合了下单、支付和评论3种行为。droptableifexistsdws_user_action;createexternaltabledws_user_action(user_idstringcomment‘用... 查看详情

wordpress主题ripro6.6(代码片段)

...启关闭修复新增后台可以查看会员订单,资源订单里显示用户开通会员订单的详情新增优化会员开通会员可以直接付费开通,可以选择余额支付和在线支付多种模式新增优化个人中心开通vip页面天数提醒,具体提醒规则为:如果... 查看详情

数据仓库-学习理解(代码片段)

概要:数据仓库是一个过程而不是一个项目;是一个环境而不是一件产品。数据仓库将多个数据源的数据按照一定主题集成起来,经过抽取、清洗、转换。整合后的数据不允许随便修改,定期更新,这个过程... 查看详情

presto+superset数据仓库及bi(代码片段)

基于Presto和superset搭建数据分析平台。Presto可以作为数据仓库,能够连接多种数据库和NoSql,同时查询性能很高;Superset提供了Presto连接,方便数据可视化和dashboard生成。基本概念datawarehouse数据仓库整合各类数据库数据,面向主... 查看详情

jdbc-图书管理系统(代码片段)

文章目录JDBC-图书管理系统数据库设计BOOKBoorrowreaderuser数据库系统登录界面管理员界面1:用户登录2:修改密码3:新增用户功能4:删除用户功能5:查询用户(根据用户名模糊查询)UserControlUserService6:新增图书7:删除图书8:修改图书BookControlB... 查看详情

vue-element-template实战使用mock数据,新增用户管理界面(代码片段)

实现功能包括:用户列表,搜索,新建和编辑。用户数据:用户名,类型,有效期,备注。一、从vue-element-admin复制文件:  vue-admin-templatesrclayoutcomponentsPagination文件夹  vue-admin-templatesrcutilsscroll-to.js二、使用mock.js模拟api返... 查看详情

数据仓库之电商数仓--1用户行为数据采集(代码片段)

目录一、数据仓库概念二、项目需求及架构设计2.1项目需求分析2.2项目框架2.2.1技术选型2.2.2系统数据流程设计2.2.3框架版本选型2.2.4服务器选型2.2.5集群规模2.2.6集群资源规划设计三、数据生成模块3.1目标数据3.1.1页面日志3.1.2事... 查看详情

大数据项目之电商数仓-用户行为数据采集(代码片段)

数据仓库简介数据仓库是为企业所有决策制定过程,提供所有系统数据支持的战略集合,通过数据仓库中的数据的分析,可以帮助企业改进业务流程、控制成本、提高产品质量等。项目需求实时采集买点的用户行为数... 查看详情