自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数仓拉链表的实现过程

1.简介数据仓库中经常会遇到维度表缓慢变化的情况,针对这种情况可采用拉链表进行处理。拉链表就是记录历史数据的每个状态,数据量大,且存在数据的新增和变化。2.实现过程本文主要实现用户拉链表2.1初始化用户拉链表在DWD层创建用户的初始化拉链表,即在原始用户维度表上添加start_date和end_date列DROP TABLE IF EXISTS gmall_2021.dwd_dim_user_info_his;-- 创建初始化拉链表CREATE EXTERNAL TABLE gmall_20

2021-02-26 11:38:03 4589 1

原创 Hive中常用开窗函数

1.简介本文主要讲解hive中常用开窗函数的使用2.代码示例2.1 row_number() over()、dense_rank() over()和rank() over()数据准备江西,高安,100江西,南昌,200江西,丰城,100江西,上高,80江西,宜春,150江西,九江,180湖北,黄冈,130湖北,武汉,210湖北,宜昌,140湖北,孝感,90湖南,长沙,170湖南,岳阳,120湖南,怀化,100创建表create table t_rn( provinc

2021-01-28 11:11:57 1274 1

原创 java实现快速排序

package com.bigdata.datastructure.sort;import java.util.Arrays;/** * @ description: 快速排序 * @ author: spencer * @ date: 2020/11/5 11:45 */public class QuickSort { public static void main(String[] args) { int[] arr = {-9, 23, 25, 23, -5

2020-11-11 15:14:24 630 1

原创 Elasticsearch 7.6.2 API操作

本文基于elasticsearch 7.6.2 的API进行测试,话不多说,直接上代码!!!package com.bigdata.es;import com.alibaba.fastjson.JSON;import com.bigdata.es.pojo.Content;import com.bigdata.es.pojo.User;import com.bigdata.es.utils.HtmlParseUtil;import com.sun.org.apache.regexp.int.

2020-08-24 14:50:13 1200

原创 flink sql lookup join学习demo

flink sql lookup join小案例学习

2022-11-10 15:43:22 815

原创 Flink CDC写入数据到kafka几种格式

flink cdc写入kafka数据常见的几种格式

2022-11-10 15:01:35 3176

原创 Hive SQL练习成长之路

1.简介本篇主要分享hive sql的一个练习题,主要是练习hive sql在具体场景中的使用,相信对于刚接触hive sql的小伙伴在练习完成之后一定会有帮助。2.数据准备在hive中首先准备4张表,分别为student、score、course和teacher,四张表的关联关系和字段信息如下:对应hdfs上的数据文件/user/hive/warehouse/hql_test.db/score/student.csv01 赵雷 1990-01-01 男02 钱电 1990-12-21 男

2021-01-22 10:05:10 243

原创 cdh-5.14.2中hadoop集群配置lzo-0.4.20

1.简介在使用flume将kafka中的数据发送到HDFS上时,使用了lzop压缩。由于hadoop集群默认不支持lzop压缩,因此本节主要讲解集群中安装lzo和lzop压缩在flume中的使用。2.配置编译环境准备:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel2.1 安装lzopyum install lzop -y2.2 安装lzo2.2.1 下载lzo源码wget http://www.oberhumer

2021-01-19 10:12:03 232

原创 java实现自定义flume拦截器

1.简介在数据采集中,我们常常会用到flume对用户行为日志进行收集。针对原始数据,可以使用flume对数据进行简单的ETL和根据不同日志类型进行分发,因此就需要根据业务需求自定义flume的拦截器flume的拦截器实现需要编写java类,实现flume中的Interceptor,并在配置文件中进行配置。2.代码示例2.1对数据进行简单的ETLpackage com.bigdata.flume.interceptor;import org.apache.flume.Context;impor

2021-01-16 09:32:20 390

原创 cdh-5.14.2集群配置yarn的资源队列,并提交任务到指定队列

1.简介本文主要在cdh集群中,添加一个yarn的资源队列,并将任务提交到新添加的资源队列中。2.修改配置文件首先选择Capacity Scheduler,默认为FIFO Scheduler。首先在yarn的配置界面搜索:容量调度程序配置高级配置代码段(安全阀)默认的资源队列尾default,本次新增一个资源队列的名称为:hive,并设置相关该资源队列的参数如下:<configuration> <property> <name>yarn.schedu

2021-01-15 14:57:08 1857

原创 Flink中实现自定义反序列化消费Kafka中的二进制数据

1.简介kafka中的数据通常以二进制或者字符串存储,本文是针对kafka中的二进制数据,自定义反序列化类,利用flink读取消费,将二进制数据反序列成指定的实体类对象。2.代码实现2.1编写自定义反序列化类继承AbstractDeserializationSchema,重写deserializer方法package com.bigdata.deserializer;import com.bigdata.bean.User;import org.apache.flink.api.common.

2021-01-13 14:18:19 1870

原创 实时数仓-mysql业务数据采集到kafka的ODS层(Canal+Protobuf+Kafka)

1.简介本篇使用Cnal监控mysql中binglog日志的变化,解析二进制日志为map类型的数据,并引入Protobuf实现对象的序列化,写入到kafka,生成实时数仓ODS层的原始数据。2.代码实现2.1项目的入口package com.bigdata.app;import com.bigdata.client.CanalClient;/** * @ description: 项目启动类 * @ author: spencer * @ date: 2021/1/12 13:41

2021-01-13 11:02:40 1298

原创 Spark Streaming 消费kafka数据,并手动维护offset

1.简介本文基于redis和mysql分别实现手动维护消费kafka的offset。2.代码实现2.1基于redisimport java.utilimport com.bigdata.analysis.travel.RedisUtilimport org.apache.kafka.common.TopicPartitionimport org.apache.spark.streaming.kafka010.OffsetRangeimport redis.clients.jedis.Jed

2021-01-11 09:45:53 646 2

原创 Druid时序数据库-案例分析一

1.简介本文是应用druid时序数据库进行案例测试,主要是对json文件数据进行实时摄取,并在druid数据库中查询数据。2.代码示例2.1数据准备数据格式如下:{"timestamp":"2e19-05-08T01:03.00z","category":"手机","areaName":"北京","money":"1450"}{"timestamp":"2019-05-08T01:01.00z","category":"手机","areaName":"北京","money":"1450"}{"

2020-12-30 16:37:43 683

原创 Druid时序数据库-安装部署Imply集群

1.简介Apache Druid是一个实时分析型数据库,旨在对大型数据集进行快速的查询分析("OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景,同时,Druid也通常被用来助力分析型应用的图形化界面,或者当做需要快速聚合的高并发后端API,Druid最适合应用于面向事件类型的数据。本文是基于Imply-3.0.4安装druid时序数据库2.安装2.1下载安装包​ 下载地址:https://static.imply.io/release/imply-3

2020-12-30 15:09:58 563

原创 Flink CEP编程入门二

一、简介本篇是flink CEP编程入门的第二篇,进一步用案例说明CEP编程中处理复杂事件流相关的知识。业务场景:业务订单在创建的一段时间内,未完成支付,则判断当前订单为超时失效的状态。二、代码示例package com.bigdata.flinkimport org.apache.flink.cep.scala.CEPimport org.apache.flink.cep.scala.pattern.Patternimport org.apache.flink.streaming.api.

2020-12-29 11:28:02 198

原创 Flink CEP编程入门一

一、简介flink中的CEP(Complex Event Processing)是处理复杂事件流的库,可以自动在流式数据处理中对相关事件进行处理和检索。比如用一个用户在1min内连续登录的失败次数超过2次,则将该用户的登录的行为判断为恶意登录的行为。本篇是CEP编程入门的第一篇二、Maven依赖 <properties> <scala.binary.version>2.11</scala.binary.version> <

2020-12-29 10:59:23 379

原创 Flink-点击流日志实时ETL

本文旨在对用户的点击流日志数据进行实时的ETL,数据来源为埋点日志发送到kafka的json数据。 业务流程: 1.解析kafka中ods层的点击流字符串数据为对应的实体类 2.根据业务需求将对应的实体类进行拉宽,得到拉宽后的样例类 3.将拉宽后的样例类转换为json字符串写入kafka的dwd层 项目中引入了httpd logparser框架对ngnix的access.log进行数据解析。logparser解析数据的相关规则如下: /** * %v 进行服务.

2020-12-18 13:05:10 419

原创 java实现选择排序(推导、优化)

package com.bigdata.datastructure.sort;import java.util.Arrays;/** * @ description: 选择排序(推导优化) * @ author: spencer * @ date: 2020/11/4 16:08 */public class SelectSort { public static void main(String[] args) { int[] arr = {101, 34, 11

2020-11-04 16:45:16 149 1

原创 java实现冒泡排序(推导、优化)

package com.bigdata.datastructure.sort;import java.util.Arrays;/** * @ description: 冒泡排序(优化) * @ author: spencer * @ date: 2020/11/4 14:51 */public class BubbleSort { public static void main(String[] args) { int[] arr = {3, 9, -1, 10,

2020-11-04 15:50:30 137 1

原创 java实现中缀表达式转后缀表达式

package com.bigdata.datastructure.stack;import java.util.ArrayList;import java.util.List;import java.util.Stack;/** * @ description: 中缀表达式转后缀表达式,并计算值 * @ author: spencer * @ date: 2020/10/30 9:21 */public class Calculator2 { public static v

2020-10-30 13:16:41 407

原创 java数组实现栈的功能

package com.bigdata.datastructure.stack;import java.util.Scanner;/** * @ description: 数组实现栈 * @ author: spencer * @ date: 2020/10/28 15:40 */public class ArrayStackDemo { public static void main(String[] args) { ArrayStack stack = ne

2020-10-29 10:38:30 100

原创 java单链表实现栈的功能(push、pop、peak)

package com.bigdata.datastructure.stack;import java.util.Scanner;/** * @ description: 单链表实现栈的功能 * @ author: spencer * @ date: 2020/10/28 16:28 */public class LinkedStackDemo { public static void main(String[] args) { LinkedStack stac

2020-10-29 10:32:40 837

原创 java实现双向链表的增删改查

package com.bigdata.datastructure.linkedlist;/** * @ description: 双向链表的增删改查 * @ author: spencer * @ date: 2020/10/28 10:41 */public class DoubleLinkedListDemo { public static void main(String[] args) { // 创建节点对象 HeroNode2 hero1

2020-10-28 12:01:46 131

原创 数据结构-单链表的操作(增、删、改、翻转、不破坏结构逆序输出、两个单链表合并之后有序输出)

数据结构-单链表的操作(增、删、改、翻转)package com.bigdata.datastructure.linkedlist;import java.util.Stack;/** * @ description: * @ author: spencer * @ date: 2020/10/27 10:16 */public class SingleLinkedListDemo { public static void main(String[] args) {

2020-10-27 14:47:40 184

原创 Flink Table API写入数据到Elasticsearch

本案例使用flink的table API将数据写入es中,其中flink版本为1.10.0,es版本为7.6.2package com.bigdata.tableimport com.bigdata.apitest.source.SensorReadingimport org.apache.flink.streaming.api.scala._import org.apache.flink.table.api.{DataTypes, Table}import org.apache.flink.

2020-07-29 17:18:48 983 7

原创 Flink消费Kafka数据写入Elasticsearch

本案例通过flink消费kafka数据,写入elasticsearch,自动生成索引,其中flink版本为1.10.0,es版本为6.4.3。package com.bigdata.flink.sinks;import com.bigdata.project.utils.FlinkUtils;import org.apache.flink.api.common.functions.RuntimeContext;import org.apache.flink.api.common.serializ

2020-07-17 15:17:41 968

原创 Flink实现WordCount(java和scala)

本文是自己在初学flink时,实现的wordcount,特此记录一下!1.java版package com.bigdata.flink.wc;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.java.tuple.Tuple2;import org.apa

2020-07-17 13:35:49 507

原创 SparkStreaming中使用SparkSQL实现WordCount

SparkStreaming基于spark sql和dataframe实现wordcountpackage com.bigdata.wb.sparkimport org.apache.spark.SparkConfimport org.apache.spark.sql.SparkSessionimport org.apache.spark.streaming.{Seconds, StreamingContext}/** * @ author spencer * @ date 2020/

2020-07-15 14:50:37 253

原创 spark中自定义UDAF函数实现的两种方式---UserDefinedAggregateFunction和Aggregator

1.基于UserDefinedAggregateFunction实现平均数的计算package com.bigdata.wb.sparkimport org.apache.spark.sql.Rowimport org.apache.spark.sql.expressions.{MutableAggregationBuffer, UserDefinedAggregateFunction}import org.apache.spark.sql.types._object SparkUDAF ex

2020-07-15 13:58:39 1069

原创 SparkStreaming中reduceByKeyAndWindow和updateStateByKey实现实时的WordCount

#linux非root用户安装mysql-生产环境# 标题@TOC##SparkStreaming中reduceByKeyAndWindow和upstateByKey实现实时的WordCount本文使用SparkStreaming中reduceByKeyAndWindow和upstateByKey实现实时的WordCount的小案例话不多说,直接上代码package com.bigdata.wb.sparkimport org.apache.spark.{HashPartitioner, Spa

2020-07-15 13:22:12 307

空空如也

空空如也

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

TA关注的人

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