自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 测试数据主外键关系处理

先建立两张表,主键外键关系如下插入外键数据,用一条SQL语句将数据表中某列更新到另一个数据表里真实情况的主键对应外键的关系其实是可能一对多的因此:需要维护一个文件specialTab,每行的内容是 表名,特殊的需要产生的测试数据条数代码在获取表名之后,会判断一下该表名是否存在文件中,如果存在,则将测试数据行数更改为文件中的并且在循环生成测试数据后,会将数据再更新为命令行输入的默认数量测试:命令行中输入每张表的测试数据为500条结果:...

2022-06-28 10:38:00 163

原创 sqoop从mysql向hive增量导入数据错误汇总

首先要理解增量的概念,每天更新的数据才需要被添加到hive中,如果全部数据都要导入,会造成冗余1 向hive导入时报错ClassNotFound hive.metastore.jar发生这种情况时,sqoop的lib的无法找到hive的jar包可能是hive3.0版本以上无法兼容sqoop,重新下载了hive2.0版本的,更改sqoop的配置参数,就可以正常使用了2 hive的表格存储格式为parquet格式,使用sqoop导入数据时可能会不兼容,报数据类型的异常需要将hive的表格存储

2022-04-07 09:16:54 2157

原创 漏斗模型概念学习

分析师定义了一种业务路径,用户沿着这个路径的各个步骤,不断走向业务目标;路径上的各个步骤,人数通常是会逐步递减的。从上到下,人数越来越少,类似于一个漏斗下面是一个业务路径:搜索->点击一个商品->添加购物车->提交订单->支付订单对需求进行抽象,步骤1:e1.p1=v1步骤2:e3步骤3:e5.p1=v2 e5.p3=v5每个漏斗每个步骤的完成人数表设计漏斗模型id,步骤号,完成人数,时间窗口开始,时间窗口结束搜购001,1,

2022-04-04 17:16:18 230

原创 用户连续活跃区间记录表设计

字段包含日期 首访日期 guid 连续活跃区间起始日 连续活跃期间结束日 2022-03-01 g01 2022-03-01 2022-03-10 2022-03-01 g01 2022-04-01 9999-12-31 2022-03-04 g02 2022-03-04 9999-12-31 2022-04-01 g03 2022-04-01 2022-0..

2022-04-02 22:13:45 374

原创 多维度统计报表的多维度查询 (高阶聚合函数)

如果我们现在有一个多维度的统计报表老板要看多个维度的不同组合下的查询结果涉及到的维度有n个要使用高阶聚合函数 with cube使用方式select-- 无法统计的字段会补nulla,b,c,count(1)from tgroup by a,b,c --最大的范围with cubegrouping set计算我们想要的组合使用方式:select-- 无法统计的字段会补nulla,b,c,count(1)from tgroup by a

2022-04-02 10:32:38 709

原创 离线数仓做多维度报表

我们把数据写道dwd层以后,就可以做一些报表统计了首先要理解一些概念分析主题、度量、维度分析主题:流量概况分析子主题、访问分析子主题、来源分析子主题、访客分析子主题核心度量:pv数、uv数、会话数、跳出数、访问时长核心维度:地域维度、访客新老属性、来源维度、时间维度、终端设备属性、网络属性、入口页、退出页、是否跳出会话维表的数据获取方式:引入业务表作为维表引入画像标签表作为维表根据规律手动构建通过计算构建出维表1-如何获取到某个网页的贡

2022-04-01 20:04:39 737

原创 离线数仓开发思路---从日志采集到dwd层

1- 首先我们先从app端采集日志到日志服务器,一般按照日期分为不同的文件夹使用到的技术:nginx\openresty产生的数据:json格式的文件2-日志服务器中flume的架构为两层,采集数据到hdfs上,压缩并且按日期分在不同的文件夹中第一层使用failover组的sink,并要考虑峰值数据传进来的速度,第一层有六个节点,第二层有四个节点,上层的三个的sink传进下层的一个source,并且当上层的一个sink,或者下层的一个节点失效无法传输时,启动上层的failover组的另一个s

2022-03-30 20:16:11 2346

原创 ods到dwd层数据关联位置信息的spark api

1 场景前提我们将ods(贴源层)数据保存到(dwd)明细数据层时,要经过下面的操作数据清洗 session切割 数据规范化处理 位置信息继承 生成一个全局唯一的guid我们可用spark来读取表,转换成rdd来进行操作2 编程spark2.1 我们要先读取两张表:session分割后的日志表 tmp.mall_applog_session_split geohash地理位置参考表 dim_refgeo,作为维度表 除了两张表,还需要ip地址库,将该数据读取成字节文件,广播

2022-03-29 19:08:10 1463

原创 采集系统数据完整性监控(离线数仓项目)

1 场景前提当前的需求是:我们要统计日志服务器的文件的行数再统计上传到hdfs的文件的行数比对以下有没有少数据问题:日志服务器和hdfs集群不在同一个机器上,shell脚本没有办法同时获取两台机器的信息触类旁通:我们有时会需要将数据进行一个统计并汇总,需要想一个办法将不同机器上的数据统计在一起的需求。解决方案:公司可以开发一个web监控系统,【信息总线系统工程】2 脚本#!/bin/bash#获取日期dt=$(date -d'-1 day' +%Y-%m-%d)

2022-03-28 19:13:01 1291

原创 空账号的设备的user_id 映射表开发

1 场景前提:我们现在有三张表:ods.mall_app_log_dtl : 用户行为日志表贴源层的用户行为日志dws.mall_app_device_account_bind : 设备账号绑定关系权重表(截至今天的数据)dws.mall_app_device_tmpid : 空账号设备映射表(截至昨天的数据)2 需求:2.1 我们要将今天(2022-02-13)的用户行为日志查找出来没有登录过一次账号的设备(deviceId)2.2 再去表dws.m...

2022-03-28 17:06:10 247

原创 给用户日志加上一个全局唯一标识设计

1 如果只用deviceId劣势:一部设备上登录两个账号的话,就会被当作一个人同一个账号在多个设备登录,就会被当作多个人2 只用account劣势:一部设备上没有登陆账号产生的日志,那么这个账号该给谁3 结合两个作为用户表示优先使用账号作为用户标识看这部设备最近一段时间登录次数最多的账号,匿名日志就归谁的本质上,就是形成“设备”和”账号“的绑定关系只要是识别出来一个用户,则为这个用户专门生成一个正数类型的自增的全局唯一id---gid...

2022-03-28 11:13:51 224

原创 ods层数据到dwd层的处理需求说明

目录1 清洗过滤2 数据解析3 SESSION分割1 清洗过滤去除json数据中的废弃字段,因为前端开发人员更新了埋点设计方案之后,可能有些没有用的字段也会保留 json格式不正确的 过滤掉缺少关键字段的记录(deviceId、properties、eventId、sessionId缺任何一个都不行)sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jses

2022-03-28 10:39:28 1771

原创 将日志加载入库的脚本设计(离线数仓项目)

1 场景前提:在我们通过flume将日志服务器的数据采集到hdfs上了接下来需要将hdfs上的文件导入到hive中而离线项目数据隔天当天晚上之前传入即可因此我们可以开发个脚本,每晚自动将数据写入到hive库中2 涉及到的shell脚本技术2.1 获取时间的命令date -d'-1 day' +%Y-%m-%d释义:获取到前一天的时间,例如:2022-03-272.2 发送信息给邮件mail -s "数仓任务平台-执行通知" 2427770367@qq.com..

2022-03-28 09:36:44 941

原创 从零开始自学大数据之linux-压缩和解压类

gzip/gunzip指令gzip用于压缩文件,gunzip用于解压的基本语法:gzip文件gunzip 文件.gzzip/unzip指令用于压缩文件或者文件夹zip 选项 xxx.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)unzip 选项 xxx.zip(功能描述:解压所文件)zip常用选项:-r:递归压缩,即压缩目录unzip常用选项:-d 目录:指定解压后文件存放的目录tar指令打包指令,最后打包的文件格式为.tar.g..

2021-08-28 22:30:22 65

原创 从零开始自学大数据之linux-搜索查找类命令

find指令基本语法:find 搜索范围 选项选项包含有-name 文件名 -user 指定用户名所有文件 -size 指定文件大小 locate指令可以快速定位文件路径基本语法:locate 搜索文件第一次使用locate之前必须先使用updatedb指令创建locate数据库which指令可以查询某个指令在哪个目录下which lsgrep指令和管道符号“|”grep过滤查找,管道符,“|”表示将前一..

2021-08-28 21:35:31 82

原创 从零开始自学大数据之linux-时间日期类命令

date指令基本语法date:显示当前时间date+%Y:显示当前年份date+%m:显示当前月份date+%d:显示当前天date+%Y-%m-%d %H:%M:%S:显示当前年月份时分秒date - s 字符串时间cal指令cal :显示当前日历cal 2020 :显示2020年一整年的日历...

2021-08-28 18:40:49 90

原创 从零开始自学大数据之linux-如何找回root密码(面试题)

不同版本找回方式不同下面是centos7以后的方式找回root密码1-进入开机界面时,在界面中按e进入编辑界面2-进入编辑界面以后,找到linux16开头内容所在命令的结尾,输入:init=/bin/sh3-快捷键ctrl+x进入单用户模式4-在光标闪烁的位置,输入mount -oremount,rw/,完成后按回车5-使用passwd命令6-输入两次密码7-输入touch /.autorelabel(table 与/后面有一个空格),完成后按回车8-继续输入ex.

2021-08-28 18:27:43 96

原创 从零开始自学大数据之linux-运行级别

理解:0:关机1:单用户【找回丢失密码】2:多用户状态没有网络服务3:多用户状态有网络服务4:系统未使用保留给用户5:图形界面6:系统重启常用运行级别是3和5,也可以指定默认运行级别命令:init【x】(x:0/1/2/3/4/5/6)来执行不同的运行级别查看当前的运行级别:systemctl get-default设置默认的运行级别:systemctl set-default TARGET.target ...

2021-08-27 22:40:59 54

原创 从零开始自学大数据之linux-vi与vim的使用,各种指令学习

VI VIM + 文件名可以进入一般模式,是内置在linux的文本编辑器vim可以看作vi的加强版vi与vim快捷键1-拷贝当前行【yy】,拷贝当前行向下的5行 【5yy】 粘贴命令为【p】2-删除当前行【dd】,删除当前行向下的5行【5dd】3-文件中查询某个单词,在命令行下输入 【 /关键字】,回车查找,输入【n】查找下一个4-设置行号【 :SET NU 】取消行号【 :SET NONU】5-编辑/etc/profile文件,在一般模式下,输入指令:到该文档的最末行【g】和首.

2021-08-27 22:20:55 100

原创 从零开始学大数据之linux-安装vmtools

当我们已经安装好一个linux安装系统,需要更多一样的系统的虚拟机,克隆即可两种方式1-直接拷贝一份安装好的虚拟机文件

2021-08-26 22:45:15 68

原创 每日算法-day01 -两数之和

给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。自己写的:(还无法判断什么是时间复杂度)以下是大小排序...

2021-08-26 21:54:45 61

原创 从零开始学大数据之linux-基础篇-课程内容

学习目标(前言):了解什么是linux各种基本操作命令linux用户管理命令useradd userdel usermod等linux的各种配置 环境变量的配置,网络的配置,服务的配置linux下搭建环境javaee 大数据 phythonshell脚本集群管理安全措施,防止攻击,对系统调优深入了解linux的内核首先建立整体框架、再建立细节不需要掌握所有的指令,但要会查询手册不要死磕一个问题linux不是变成,linux实操性的东西,一定要常用指令练习到

2021-08-25 22:33:35 158

原创 从零开始自学前端-盒子模型篇

盒模型、盒子模型、框模型 css将页面中的所有元素都设置为了一个矩形盒子 将元素设置为矩形的盒子后,对页面的布局就可以理解为摆放盒子 每一个盒子都有以下几个部分 内容区(content) 内边距(padding) 边框(border) 外边距(margin)内容区(content)设置属性(width\hei...

2021-08-25 21:45:50 77

原创 从零开始自学前端-文档流

网页是一个多层的结构,一层摞着一层通过css可以分别为每一层来设置样式作为用户来讲只能看到最顶层这些层中,最底下的一层成为文档流,文档流是网页的基础 我们所创建的元素默认都是在文档流中进行排列 元素有两个状态:在文档流中,不在文档流中元素在文档流中的特点: 块元素:div 块元素在页面中独占一行 默认宽度是父元素的全部默认高度是被内容撑...

2021-08-25 18:21:48 107

原创 从零开始自学前端-大小单位的定义(像素与百分比以及长度单位)补充颜色单位

像素不同的屏幕的像素大小是不同的,像素越小的屏幕显示效果越清晰同样的200px在不同的设备下显示效果不一样div{ width:200px; height:200px; color:red;}百分比这里的50%是相对于父元素的比例div{ width:50%; height:50%; color:red;}em相对于自身元素的字体大小计算的例如:字体大小默认为16px,10em=160px;div{

2021-08-25 17:56:47 127

原创 从零开始自学前端-选择器篇

1- 复合选择器:交集选择器 并集选择器代码如下: <style> /* 交集选择器 用.隔开*/ p.red{ color:blue; } /* 并集选择器 用,隔开*/ h1,span{ color:blue; } </style> <body> <div clas

2021-08-25 16:05:38 96

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除