自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 依赖下载国内镜像库

1

2022-06-12 22:14:05 291 1

原创 Kafka查看存储log的命令

kafka-run-class.sh kafka.tools.DumpLogSegments --print-data-log --files ./00000000000000000286.timeindex

2022-04-17 21:00:40 1882

原创 数仓建模主题--事件归因分析主题

含义:在完成了某预定任务目标的人群中,分析他们都是因为什么原因而完成的归因策略:首次触点归因:待归因事件中,最早发生的事,被认为是导致业务结果的唯一因素末次触点归因:待归因事件中,最近发生的事,被任务是导致业务结果的唯一因素线性归因:待归因事件中,每一个事件都被任务对业务结果产生了影响,影响力平均分摊时间衰减归因:越近发生的待归因事件,对业务结果的影响力位置归因:定义一个规则,比如最早,最晚事件占一部分比例,中间事件平摊影响力中间表设计:技术手段:归因权重计算逻辑复杂

2022-04-06 23:06:54 1011

原创 数仓建模主题--漏斗转化分析主题

漏斗分析的含义:分析师定义一个业务路径,路径上各个步骤的完成人数会逐渐递减,呈漏斗状漏斗分析的结果表设计:中间汇总表:主要作用:记录每个漏斗模型的每个步骤上完成的人数,以便给分析师快速查询报表计算逻辑:主要思想:利用正则表达式来判断用户的行为事件序列的模式是否匹配漏斗模型定义中的要求步骤:1.先将用户的事件序列,按照漏斗模型定义的条件进行过滤,留下满足条件的事件2.将同一个人的满足条件的事件ID收集到数据,按时间先后排序,拼接成字符串3.将拼接好的字符串,

2022-04-05 22:56:24 627

原创 app端-留存分析-周留存率报表开发

用户表user_id user_big_type user_mid_type fst_login_date100001 上海市 徐汇区 2016-01-02用户登录表user_id login_date100001 2016-03-03时间维度表date_id date_name date_year1 1900-01-01 1900....40000 2016-01-01 2.

2022-04-04 22:49:49 536

原创 app端-用户连续活跃区间记录表开发

-- 用户连续活跃区间记录表CREATE TABLE dws.mall_app_uac_range( guid bigint -- 用户id ,first_login_dt string -- 首访日期 ,range_start_dt string -- 区间起始日期 ,range_end_dt string -- 区间结束日期)partitioned by (dt string)stored as orctblp.

2022-04-03 23:02:27 554

原创 dws中间表模型设计: 页面受访明细宽表

目标表结构-- 目标表建表语句:create table dws.mall_app_pv_wide( url string ,session_id string ,guid bigint ,stay_long bigint ,ref_url string ,ts bigint ,is_new int ,fol

2022-04-02 22:44:16 2529

原创 离线数仓用户唯一标识(guid)的设计

含义:为每条日志数据都打上这条日志所属的用户的唯一标识目的:为后续的数据分析提供方便策略:第一种策略:使用设备id作为用户的唯一标识这种策略的弊端:①一个账号可能登陆了多个设备,会被标记为多个用户②一个设备登录了多个账号,会被标记为一个用户第二种策略:使用账号作为用户的唯一标识这种策略的弊端:①有些数据中根本没有账号②有些用户还没有注册账号,这部分数据会丢失所以使用第三种策略,动态绑定设备账号①维护一张设备账号绑定权重表...

2022-03-29 21:31:36 761

原创 离线数仓数据可靠性的问题

1.如何检测?使用脚本统计日志服务器上的采集的日志文件的行数与HDFS上的目标存储目录中的文件的行数,进行对比2.如何保证数据的不丢失?日志采集网络架构设计为两层第一级采用了tailDirSource,fileChannel,avroSink的搭配,第二级采用了avroSource,fileChannel,hdfsSink的搭配tailDirSource实现了flume的事务机制,并且可以记录偏移量fileChannel落地磁盘,是可靠的第一级的avroSin...

2022-03-28 21:42:50 1120

原创 canal的安装

修改MySQL的配置canal的原理是基于mysql binlog技术,所以这⾥⼀定需要开启mysql的binlog写⼊功能,配置 binlog模式为row①修改MySQL配置⽂件vi /etc/my.cnf注意:⼀定要配置mysql的biglog模式为ROW[mysqld] log-bin=mysql-bin #添加这⼀⾏就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的sl

2022-03-08 16:11:05 2729

原创 OpenResty的安装:在线YUM安装

OpenResty = Nginx + Lua,是一个增强的Nginx,可以编写lua脚本实现非常灵活的逻辑了1.安装开发库依赖yum install -y pcre-devel openssl-devel gcc curl2.配置yum的依赖源yum install yum-utilsyum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo3.安装OpenRestyyu

2022-03-03 14:29:54 3448

原创 Nginx安装

1.上传nginx安装包 安装依赖 yum -y install gcc pcre-devel openssl openssl-devel2.解压nginx tar -zxvf nginx-1.21.6.tar.gz -C /usr/local/src/3.进入到nginx的源码目录 cd /usr/local/src/nginx-1.21.6/4.预编译(可能会出错,需要安装下面的依赖) ./configure5.安装gcc编译器和依赖 yum -y...

2022-03-03 10:42:20 1839

原创 Flink--KafkaSink实现Excatly-once的过程

FlinkKafkaProducer继承了TwoPhaseCommitSinkFunction(分为两个阶段提交的Sink),TwoPhaseCommitSinkFunction实现了两个接口CheckpointedFunction和CheckpointListener实现CheckpointedFunction接口要实现initializeState和snapshotState实现CheckpointListener接口要实现notifyCheckpointComplete和notify...

2022-03-02 09:30:09 1406

原创 FLINK-SQL

关联MySQL中的维度表示例/** * @Description: * 从Kafka中读数据,然后关联MySQL的维表,最后将结果输出到MySQL中 */public class MySQLDimensionDemo { public static void main(String[] args) { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment

2022-03-01 21:54:00 1858

原创 Flink-join的三种方式

Join/** * * 将两个数据流,进行join * * 如果让两个流能够join上,必须满足以下两个条件 * 1.由于数据是分散在多台机器上,必须将join条件相同的数据通过网络传输到同一台机器的同一个分区中(按照条件进行KeyBy) * 2.让每个流中的数据都放慢,等等对方(划分相同类型,长度一样的窗口) * */public class EventTumblingWindowJoin { public static void main(String[] args)

2022-02-25 22:18:18 4869

原创 Flink--广播状态

/** * * 广播状态的使用场景 * 1.少量的数据可以使用广播状态(广播状态的数据存储在内存中,如果数据量非常大,不能使用广播状态) * 2.广播状态的数据可以动态修改 * * 需要先将维度数据读取过去才能进行关联 * * 如果要广播的数据量非常大,或者根本无法获得数据 * 为了高效的关联维度数据,可以使用异步IO */public class BroadcastStateDemo { public static void main(String[] args) thr.

2022-02-25 22:16:20 1052 1

原创 Flink--AsyncI/O

使用异步IO查询高德地图关联数据/** * 封装数据的对象 */public class OrderBean { public String oid; public String cid; public Double money; public Double longitude; public Double latitude; public String province; public String city; pu

2022-02-24 22:09:31 869

原创 Flink测流输出

测流输出示例/** * 测流输出 * 本质上,就是将一个流中的数据打上标签,未打标签的数据叫主流, * 打标签的数据流,叫侧流(非主流) * * 在Flink中,DataStream中的数据流,按照是否打标签,分为两类 * 1.侧流,就是打上标签的数据流,想要获取,就必须根据标签才能获取到 * 2.主流,就是未打标签的数据,直接操作DataStream就可以了 */public class SideOutputDemo { public static void main(S

2022-02-24 09:42:01 1516

原创 flink读取kafka的数据处理完毕写入redis

/* * 从Kafka读取数据处理完毕写入Redis */public class KafkaToRedis { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //开启checkpointing e.

2022-02-23 19:57:15 574

原创 Flink中StateBackend的方式

FsStateBackend/** * 从Kafka读取数据处理完毕写入Redis */public class KafkaToRedis { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //开启checkp

2022-02-23 19:56:10 1755

原创 Flink状态概念--KeyedState示例

ValueSate/** * * ValueState的底层实现 * Flink中的State分为两种:KeyedState(keyBy之后对应的State),和OperatorState(没有keyBy的State) * * ValueState是KeyedState中的一种 * * 1.KeyedState是KeyedState中的一种 * 2.如果想要容错,必须要开启checkpointing,并且按照Flink的状态API进行编程(将中间结果保存在Flink特殊的变量中) *

2022-02-20 21:03:07 927

原创 flink的资源槽

资源槽的概念1.一个TaskManager就是一个单独的JVM(java进程)2.一个TaskManager中如果有多个slot,会将TaskManager托管的内存进行等分;一个TaskManager中也可以只有一个slot,该slot中的subtask独占整个TaskManager中的内存3.每个slot中的内存都是相互独立的,在同一个TaskManager中,多个slot还有共享内存4.slot使用的线程没有隔离,最好让cpu的逻辑核的数量和TaskManager中的slot数量保

2022-02-18 19:55:26 790

原创 flink简单示例

示例1. WordCountpublic class WordCount { public static void main(String[] args) throws Exception { // link运行环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //调用Source生成DataStream

2022-02-13 22:01:18 2717

原创 Kafka--Producer参数

三个必选项key.serializer 数据写入key的序列化方式默认值没有参数为 org.apache.kafka.common.serialization.Serializer 接口的实现类String类型可以用org.apache.kafka.common.serialization.StringSerializervalue.serializer 数据写入value的序列化方式默认值没有参数可以为 org.apache.kafka.common.seri

2022-02-12 08:58:54 822

原创 kafka参数consumer.properties之auto.offset.reset

auto.offset.reset:可以理解为消费者读取数据的策略earliest:如果没有偏移量的话,从头开始读取数据;有偏移量的话从偏移量开始读latest:如果没有偏移量的话,从消费者启动以后开始读取数据;有偏移量的话会从偏移量开始读;而且没有偏移量的话使用这个参数,虽然没有读取到数据,但是偏移量会记录到原来数据的最后的位置;再使用earliest参数也无法读到数据,因为偏移量已经存在了...

2022-02-10 22:38:18 1124

原创 kafka的安装和简单操作

kafka安装步骤1.安装zookeeper2.修改配置文件#server.properties#指定broker的id id必须为唯一的integer类型broker.id=1#数据存储的目录log.dirs=/data/kafka#指定zk地址zookeeper.connect=linux01:2181,linux02:2181,linux03:2181#可以删除topic的数据(生成环境不用配置)#delete.topic.enable=true将配置好的ka

2022-02-10 20:36:35 1041

原创 Kafka基本概念

kafka的特点1.解耦:  允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2.冗余:  消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。3.扩展性:  因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。4.灵活性 &am

2022-02-10 19:40:56 107

原创 Hive分区表和分桶表

分区表分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件.Hive中的分区就是目录,把一个大的数据集根据业务需要分割成小的数据集.在查询是通过WHERE子句中的表达式选择查询需要的指定的分区,这样的查询效率会提高很多将表中的数据以某种维度进行划分文件夹管理,当要查询数据的时候,根据维度直接加载对应文件夹下的数据!不用加载整张表所有的数据再进行过滤,从而提升处理数据的效率!静态分区一级静态分区演示数据准备bj.csv1,zs,bj2,ls,

2022-02-09 20:21:22 926

原创 Hive数据导入和导出

数据的导入1.直接将数据放到表目录下hdfs dfs -cp /data/user/*.csv hdfs://mydfs/user/hive/warehouse/myhive.db/tb_managed_user-put -mv 操作也可以2.向表中装载数据( load )--装载本地数据load data local inpath '/data/user.csv' into table tb_managed_user ;--装载HDFS的数据 相当于将数据移动到表目录

2022-02-09 16:49:24 876

原创 Hive管理表(内部表),外部表

默认创建的表都是所谓的管理表,有时也被称为内部表。因为这种表,Hive会(或多或少地)控制着数据的生命周期。Hive默认情况下会将这些表的数据存储在由配置项hive.metastore.warehouse.dir(例如,/user/hive/warehouse)所定义的目录的子目录下。 当我们删除一个管理表时,Hive也会删除这个表中数据。管理表不适合和其他工具共享数据。因为表是外部表,所以Hive并非认为其完全拥有这份数据。删除该表并不会删除掉这份数据,不过描述表的元数据信息会被删除掉。 在hi

2022-02-09 15:44:45 1094

原创 Hive基本语法

--建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] 分区[CLUSTERED BY (col_name, col_name, ...) 分桶[SORTED B.

2022-02-09 11:53:50 991

原创 Hive安装部署

1.Hive安装地址1.Hive官网地址Apache Hive TM2.文档查看地址GettingStarted - Apache Hive - Apache Software Foundation3.下载地址Index of /dist/hive4.github地址https://github.com/apache/hive

2022-02-09 10:06:05 762

原创 HBase--Region拆分策略

Region为什么要拆分?随着数据的增加,一个Region管理的数据条数越来越多,出现传统SQL数据库的单节点并发问题,将region拆分,将region移动均衡到其他的节点!1.默认的拆分策略(大小)当region的大小达到一定大小的时候会被拆分IncreasingToUpperBoundRegionSplitPolicysplit策略实现类<property><name>hbase.regionserver.region.split.policy&lt

2022-02-09 09:17:53 1271

原创 HBase--flush时机

Region级别-跨列族Region的其中一个MemStore大小达到阈值(hbase.hregion.memstore.flush.size),该Region所有MemStore一起flush,写入HDFS.默认大小是128MRegionServer级别当一个RS内的全部MemStore使用内存总量所占比例达到了阈值(hbase.regionserver.global.memstore.upperLimit),那么会一起按Region的MemStore用量降序排列flush,直到降低到阈值(h

2022-02-08 23:02:24 542

原创 HBase读写数据流程

写数据流程1.客户端请求ZK获取存储元数据信息的META表所在的机器2.请求META表所在的机器,下载META表到客户端并缓存到本地3.客户端解析META表,获取到要写的数据所在的RegionServer的机器4.请求对应的RegionServer下的Region写数据5.RegionServer接收到数据后会分别在HLog和MemStore上写一份6.MemStore达到一个阈值后把数据刷写成一个StoreFile文件.若MemStore中的数据有丢失,则可以从HLog上恢复

2022-02-08 22:40:40 1771

原创 HBase批量导入操作

shell--buckload数据准备1,zss,23,M2,lss,33,M3,fj,35,F4,ny,42,M5,xq,44,F1)在hbase中创建表 create 'tb_friends' , 'cf'2) 使用shell命令将数据转换成hfile文件hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \ -- 使用类执行操作-Dimporttsv.separator=, \ --指定行数据的字段分隔符-D

2022-02-08 15:31:00 1322

原创 HBase--shell客户端指令

--general 组status 查看集群状态version 查看版本号whoami 查看用户-- ddl 组

2022-02-08 08:56:43 511

原创 Hbase安装配置

1. --hbase-env.sh 注意:解开注释export JAVA_HOME=/opt/apps/jdk1.8.0_141/esc /ZK 回车export HBASE_MANAGES_ZK=false2. --hbase-site.xml<!-- 指定hbase在HDFS上存储的路径 --><property> <name>hbase.rootdir</name> <value>hdfs://linux01:.

2022-02-07 21:10:02 406

原创 Zookeeper安装部署

-- 1) 先在zookeeper的家目录下创建一个zkData文件夹[root@linux01 zookeeper-3.4.6]# mkdir zkData-- 2) 进入到配置文件夹中cd conf/-- 3) 修改配置文件名 生效mv zoo_sample.cfg zoo.cfg -rw-rw-r--. 1 1000 1000 922 Feb 20 2014 zoo.cfg-- 4) 修改配置文件 dataDir=/opt/apps/zookeeper-3.4.6/zk.

2022-02-07 20:08:32 903

原创 Hadoop配置详情

--HDFS环境 hadoop-env.shexport JAVA_HOME=/opt/apps/jdk1.8.0_141--core-site.xml 配置程序操作的文件系统<property><name>fs.defaultFS</name><value>hdfs://linux01:8020</value></property>--hdfs-site.xml HDFS常用参数<!-- 集群的n.

2022-02-07 16:53:34 491

clickhouse.md

clickhouse.md

2022-01-19

空空如也

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

TA关注的人

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