
数仓
文章平均质量分 64
xiaoxaoyu
小小鱼
展开
-
数仓项目笔记梳理
文章目录1、上传表2、使用SparkSQL对问题数据进行探索和处理探索思路:思路1,对空值进行处理:思路2,对重复值进行去重:思路3,行转列:思路4,规范化字段内容2.1、User表2.2、events表2.3、user_friends表2.4、event_attendees2.5、trains表3、kafka多线程并行写进不同分区4、Flume采集数据流向kafka4.2、依次创建kafka中对应主题4.3、打开消费者,执行对应flume-ng命令4.4、查看最终flume条数4.5、flume脚本案例(原创 2021-06-07 22:15:05 · 8010 阅读 · 11 评论 -
sparkStreaming对kafka topic数据进行处理后再重新写入kafka
文章目录1、需求:2、知识点:3、方法1:4、方法2:4.1、伴生类创建KafkaProducer包装器4.2、SparkStreaming消费kafka并写入kafka1、需求:使用sparkStreaming对kafka中某topic数据进行数据处理后再重新写入kafka2、知识点:广播变量SparkStreaming连接kafka进行消费rdd算子写入kafka懒加载伴生类与伴生对象的使用producerRecord手动序列化3、方法1:KafkaProducer不可序原创 2021-04-02 00:07:53 · 1988 阅读 · 3 评论 -
数仓项目流程简单梳理
文章目录数仓搭建简易案例一、源数据构建1、通过Java和Python生成模拟日志2、使用Excel模拟维度字段3、使用pymysql直接往MySQL里写数据4、使用jdbc往MySQL里写数据二、使用flume从Tomcat读取数据到hdfs上三、构建ODS层数据:创表脚本,导入脚本四、DWD层构建五、根据需求,构建DWS层六、把DWS层数据导入到MySQL数仓搭建简易案例一、源数据构建此处为模拟方法,实际生产中不会用到1、通过Java和Python生成模拟日志JAVA:创建文件名;根据初始和截止原创 2021-03-20 16:58:14 · 1580 阅读 · 0 评论 -
DWD层构建思路
DWD层构建思路ODS层数据是近源层,基本上没做过大的格式或数据转换(一般仅对数据进行格式上的转换,比如说对json、URL等格式的日志文件,提取出列数据),因此在DWD层,我们会把数据做一定的整理和优化,并加入一些常用维度,比如说维度、地域等,下面案例简单介绍下DWD层方向一:创建分区表set hive.exec.dynamic.partition=true;set hive.exec.dynamic.partition.mode=nonstrict;insert overwrite tabl原创 2021-03-20 16:38:04 · 1477 阅读 · 0 评论 -
pyspark读取hive表解析json日志并写入hive表的简单案例——原始数据初步清洗
有如下数据:32365 MOVE 1577808000000 {"goodid": 478777, "title": "商品478777", "price": "12000", "shopid": "1", "mark": "mark"} 6.0.0 android {"browsetype": "chrome", "browseversion": "82,0"}90339 MOVE 1577808008000 {"goodid": 998446, "title": "商品998446", "pri原创 2021-03-13 01:24:11 · 876 阅读 · 0 评论 -
实现MySQL数据全量迁移至Hive的简单脚本
1、主要思路:编写脚本执行建表语句、sqoop命令1.1、编写建表语句脚本思路:在虚拟机下执行hive -f /脚本路径即可执行hql脚本1.2、编写shell脚本脚本内容为分为两部分执行hql建表语句脚本sqoop迁移命令2、示范案例:2.1、hive建表脚本:-- 示范案例drop database if exists ods_myshops cascade;create database ods_myshops;use ods_myshops;create table o原创 2021-03-12 01:48:29 · 936 阅读 · 0 评论 -
使用python、Java简单模拟日志输出
使用python简单模拟日志输出使用模块:datetime–>日期模块,类似Java里的calendar作用,主要用于日期与字符串之间相互转换,time–>日期和时间戳的相互转换,random–>随机数,math–>四舍五入代码如下:import datetimeimport timeimport randomimport mathdef createLogFileByDate(begin, over, path): # 先把输入的字符串转为日期格式,两个日原创 2021-03-07 02:14:42 · 954 阅读 · 0 评论 -
flume+Tomcat日志收集
文章目录一、日志生成环境模拟二、flume任务配置1、任务脚本文件配置2、执行flume任务错误1:错误2:错误3:错误4:错误5:错误6:一、日志生成环境模拟Tomcat安装:新建一台虚拟机作为webserver,安装jdk和Tomcat,把二者安装包传入至虚拟机中[root@slave02 spark]# tar -zxf apache-tomcat-8.5.63.tar.gz -C /opt/software/spark/[root@slave02 spark]# mv apache-tom原创 2021-03-11 00:42:37 · 924 阅读 · 0 评论 -
JDBC单例模式-insert海量数据时的效率优化
文章目录一、配置文件1、装载驱动,创建SQL链接2、BaseDao类3、插入数据,并优化速度一、配置文件1、装载驱动,创建SQL链接配置类构造器私有,不允许外界调用创建多个对象,仅能在调用其中的public静态方法时创建一个对象import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBUtils { private DBUtils(){}原创 2021-03-11 01:39:27 · 332 阅读 · 4 评论 -
单节点数仓环境配置以及docker的基本使用
数据仓库环境部署前言:Docker的作用图解一、Docker安装1.1 Centos Docker安装# 镜像比较大, 需要准备一个网络稳定的环境# 其中--mirror Aliyun代表使用阿里源curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun1.2 Ubuntu Docker安装【推荐】curl -fsSL https://get.docker.com | bash -s docker --mirro原创 2021-02-28 23:58:27 · 332 阅读 · 0 评论 -
数据仓库-shell脚本-集群用
Shell 脚本1、远程拷贝脚本注:SERS="chust01 chust02"为集群节点使用时传入两个参数:1为本机要传入的目录,2位要拷贝到的地方的目录#!/bin/bashif [ $# -lt 2 ]then echo "please input 2 agrs : source and dest path"fiSERS="master01 master02 slave01 slave02"echo "start to scp distribute : $1 ..."原创 2021-01-14 19:43:57 · 304 阅读 · 0 评论