自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用clash等第三方代理工具后无法连接校园网络解决办法

解释说明:netsh winsock reset,将本机的网络设置初始化,假如你之前没有进行任何额外的网络配置,直接运行命令即可,有的话如果不重要也可以直接运行。本人一时手贱,在没有关闭代理的情况下卸载了clash,导致重启后无法连接校园网,只能连接手机热点。在网上试了很多方法,都没有效果。最后直接跟着GPT的步骤,没想到成功了。2.执行语句:netsh winsock reset。1.管理者身份运行cmd命令。

2024-06-09 15:54:37 1224

原创 SSM之Spring(二)

bean的id默认为。

2022-12-31 12:35:24 849 2

原创 SSM之Spring(一)

Spring是最受欢迎的企业级Java应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring框架来创建性能好、易于测试、可重用的代码。Spring框架是一个开源的Java平台,它最初是由编写的,并且于2003年6月首次在 Apache 2.0许可下发布。Spring是轻量级的框架,其基础版本只有2 MB左右的大小。Spring框架的核心特性是可以用于开发任何Java应用程序,但是在Java EE平台上构建web应用程序是需要扩展的。

2022-12-31 11:36:41 1041 4

原创 SSM之MyBatis(一)

1)MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架2)MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集3)MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录4)MyBatis是一个半自动的ORM()框架。

2022-12-23 09:40:02 299 1

原创 数据库备份与恢复

如果指定databases参数,备份文件中会存在创建数据库的语句,如果不指定参数,则不存在。可能有这样的需求,比如说我们只想恢复某一个库,但是我们有的是整个实例的备份,这个时候我们可以从全量备份中分离出单个库的备份。文件中的备份导入数据库中,命令如下: 如果备份文件中包含了创建数据库的语句,则恢复的时候不需要指定数据库名称,如下所示。如果我们想备份某个库,但是某些表数据量很大或者与业务关联不大,这个时候可以考虑排除掉这些表,同样的,选项。必须确保备份数据的数据库和待恢复的数据库服务器的主版本号相同。

2022-12-15 17:17:12 3904

原创 事务的隔离级别

MySQL是一个 客户端/服务器 架构的软件,对于同一个服务器来说,可以有若干个客户端与之连接,每个客户端与服务器连接上之后,就可以称为一个会话( Session )。每个客户端都可以在自己的会话中向服务器发出请求语句,一个请求语句可能是某个事务的一部分,也就是对于服务器来说可能同时处理多个事务。事务有 隔离性 的特性,理论上在某个事务 对某个数据进行访问 时,其他事务应该进行 排队 ,当该事务提交之后,其他事务才可以继续访问这个数据。但是这样对 性能影响太大 ,我们既想保持。

2022-12-15 15:55:36 337

原创 Linux环境下MySQL的安装与使用

mysqld 这个可执行文件就代表着 MySQL 服务器程序,运行这个可执行文件就可以直接启动一个服务器进程。如果MySQL版本在5.7以后,有一定的密码规则,需要设置复杂密码或者修改密码规则。4.删除my.cnf(这个文件是mysql的配置文件)因为初始化密码默认是过期的,所以查看数据库会报错。解决,清除之前安装过的依赖即可,然后重新安装。,登录后你需要设置一个新的密码。如果带图形化界面,这些都是安装好的。为扩展名的 文件形式,易于安装。5.启动MySQL服务,查看进程。服务,需要执行下面的命令初始化。

2022-12-15 09:05:23 1565

原创 Mysql之范式详解

有时候,在设计表的时候,如果一张表中有几个字段需要从另外的表中去获取信息,理论上讲,的确可以获得想要的数据,但是效率低一点,会刻意的在某些表中,不去保存另外表的主键,而是直接保存想要的数据信息,这样一来,在查询数据的时候,一张表可以直接提供数据,而不需要多表查询((效率低),但是冗余会增加。2、理论上讲,应该一张表中的所有字段都应该直接依赖于主键,如果表设计中存在一个字段,并不直接依赖主键,而是通过某个非关键字段依赖,最终实现依赖主键,把这种不是直接依赖主键,而是依赖非主键字段的依赖关系称之为传递依赖。

2022-12-15 08:34:49 477

原创 数仓DWS层之旁路缓存优化

优化原因:旁路缓存模式是一种非常常见的按需分配缓存模式。所有请求优先访问缓存,若缓存命中,直接获得数据返回给请求者。如果未命中则查询数据库,获取结果后,将其返回并写入缓存以备后续请求使用。(1)旁路缓存策略应注意两点(2)缓存的选型一般两种:堆缓存或者独立缓存服务(memcache,redis)堆缓存,性能更好,效率更高,因为数据访问路径更短。但是难于管理,其它进程无法维护缓存中的数据。独立缓存服务(redis,memcache),会有创建连接、网络IO等消耗,较堆缓存略差,但性能尚可。独立缓存服务便于维护

2022-12-07 15:26:37 845

原创 数仓开发之DWS层(二)

本节的数据来源于 Kafka dwd_trade_pay_detail_suc 主题,后者的数据由 payment_info、dwd_trade_order_detail、base_dic 三张表通过内连接关联获得,这一过程不会产生重复数据,因此,该表的重复数据由订单明细表决定。对回撤流数据生成过程进行分析,可以发现,字段内容完整数据的生成一定晚于不完整数据的生成,要确保统计结果的正确性,我们应保留字段内容最全的数据,基于以上论述,内容最全的数据生成时间最晚。最后将状态中的支付日期更新为当日。

2022-11-28 22:49:50 1362

原创 数仓开发之DWS层(一)

设计要点:(1)DWS层的设计参考指标体系;(2)DWS层表名的命名规范为dws_数据域_统计粒度_业务过程_统计周期(window)注:window 表示窗口对应的时间范围。

2022-11-28 22:41:34 4034

原创 MYSQL之触发器

MySQL从5.0.2版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一 段程序。触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE、DELETE事件。所谓事件就是指 用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生 了,就会自动激发触发器执行相应的操作。当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器来实现。

2022-11-25 11:09:20 650

原创 解决找不到依赖项的问题(根源直接解决)

问题: 原因:(1)可能是你的本地仓库里没有该依赖项。(2)如果有的话,可能是没有更新同步到idea解决方法:(1)如果是你的本地仓库里没有该依赖项,你可以去Maven的Setting文件中添加albaba的镜像文件,具体操作,可以去网上搜搜,操作步骤十分简单。 并且在idea的设置->Maven中,将路径改成自己的maven本地仓库。(2)有的话,尝试一下更新,多刷新一下,可能是网络问题。万能解决:先看报错原因: 直接去官网找到对应的依赖项jar包,并且下载到本地,然后安装到本地厂库中。具体流程:先去官方

2022-11-19 10:25:37 29509 5

原创 数仓开发之DWD层(四)

使用优惠券支付后,优惠券领用表数据就不会再发生变化,所以在操作类型为 update 的前提下,只要 used_time 不为 null,就可以断定本次操作修改的是 used_time 字段。用户使用优惠券下单时,优惠券领用表的 using_time 字段会更新为下单时间,同时 coupon_status 字段会由 1401 更改为 1402,因此优惠券下单数据应满足三个条件:① 操作类型为 update;读取优惠券领用表数据,筛选优惠券支付数据,写入 Kafka 优惠券支付主题。

2022-11-17 22:31:18 1185

原创 数仓开发之DWD层(三)

(附:由于篇幅原因,这里就不在展示代码了,直接告诉大家思路)

2022-11-17 22:27:08 2512

原创 数仓开发之DWD层(二)

字典表是作为维度表被 Flink 程序维护的,字典表与加购表不存在业务上的滞后关系,而 look up join 是由主表触发的,即主表数据到来后去 look up 表中查询对应的维度信息,如果缓存未命中就要从外部介质中获取数据,这就要求主表数据在状态中等待一段时间,此处将 ttl 设置为 5s,主表数据会在状态中保存至少 5s。因此,人为设定超时时间,超时时间内没有第二条数据就判定为跳出行为,这是一种近似处理,存在误差,但若能结合业务场景设置合理的超时时间,误差是可以接受的。

2022-11-13 22:14:14 1172

原创 数仓开发之DWD层(一)

(1)DWD层的设计依据是维度建模理论,该层存储维度模型的事实表。(2)DWD层表名的命名规范为dwd_数据域_表名。

2022-11-11 19:19:29 2297

原创 HBase学习笔记(一)

1.1 HBase定义™ 是以hdfs为数据存储的,一种分布式、可扩展的NoSQL数据库。1.2 HBase数据模型HBase的设计理念依据Google的BigTable论文,论文中对于数据模型的首句介绍。Bigtable是一个稀疏的、分布式的、持久的多维排序map。之后对于映射的解释如下:该映射由行键、列键和时间戳索引;映射中的每个值都是一个未解释的字节数组。最终HBase关于数据模型和BigTable的对应关系如下:HBase使用与。

2022-11-10 19:42:19 763

原创 数仓开发之DIM层

(1)定义类。

2022-11-09 19:49:42 4241

原创 DataX实现mysql全量数据同步到hdfs

DataX是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据 库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高 效的数据同步功能。

2022-10-27 21:35:41 2149 1

原创 解决Redis启动:未找到命令的问题

(1)sudo vim /etc/profile.d/my_env.sh ---------(这里注意:我自己是把环境配置方法哦my_env.sh文件中,你们要根据自己的情况而定)回到redis的安装目录,并且移动到src目录下执行make install命令,最后重启启动命令redis-server ./my_redis.conf。export REDIS_HOME=/opt/moudle/redis ---(注释:我们redis的安装目录)

2022-10-19 21:47:22 7410

原创 kafka-maxwell-kafka信息采集通道

Maxwell 是由美国Zendesk公司开源,用Java编写的MySQL变更数据抓取软件。它会实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变更数据以 JSON 格式发送给 Kafka、Kinesi等流数据处理平台。

2022-10-14 10:16:23 825 1

原创 Flink中的CEP(二)

Flink CEP 是 Flink 对复杂事件处理提供的强大而高效的应用库。本章中我们从一个简单 的应用实例出发,详细讲解了 CEP 的核心内容——Pattern API 和模式的检测处理,并以案例 说明了对超时事件和迟到数据的处理。最后进行了深度扩展,举例讲解了 CEP 的状态机实现, 这部分大家可以只做原理了解,不要求完全实现状态机的代码。CEP 在实际生产中有非常广泛的应用。对于大数据分析而言,应用场景主要可以分为统 计分析和逻辑分析。

2022-10-06 13:03:30 1384

原创 Flink中的CEP(一)

一个匹配规则(2)将匹配规则。

2022-10-05 19:50:41 1428 2

原创 Flink中Table API和SQL(五)

那么就将在追加(Append)模式下运行,

2022-10-05 11:10:50 1833

原创 Flink中Table API和SQL(四)

系统函数尽管庞大,也不可能涵盖所有的功能;如果有系统函数不支持的需求,我们就需要用自定义函数(,UDF)来实现了。事实上,系统内置函数仍然在不断扩充,如果我们认为自己实现的自定义函数足够通用、应用非常广泛,也可以在项目跟踪工 具 JIRA 上向 Flink 开发团队提出“议题”(issue),请求将新的函数添加到系统函数中。Flink 的 Table API 和 SQL 提供了多种自定义函数的接口,以抽象类的形式定义。

2022-10-04 15:48:58 1386 1

原创 Flink中的Table API和SQL(三)

在创建表的 DDL(CREATE TABLE 语句)中,可以增加一个字段,通过 WATERMARK语句来定义事件时间属性。WATERMARK 语句主要用来定义水位线(watermark)的生成表达式,这个表达式会。

2022-10-03 19:05:41 659

原创 解决:Could not find any format factory for identifier ‘csv‘ in the classpath.问题

在Maven工程中的pom.xml文件添加以下依赖。在类路径中找不到标识符‘在类路径中找不到标识符‘在类路径中找不到标识符‘

2022-10-03 17:37:59 1539

原创 Flink中Table Api和SQL(二)

被称为“动态表”(Dynamic Tables)。动态表是Flink在Table API和SQL中的核心概念,它为流数据处理提供了表和SQL支持。我们所熟悉的表一般用来做批处理,面向的是固定的数据集,可以认为是“静态表”;而。

2022-10-02 11:31:03 3532 1

原创 Flink中Table API和SQL(一)

目录十一:Table API和SQL11.1 快速上手11.1.1 需要引入的依赖11.1.2 一个简单示例11.2 基本 API11.2.1 程序架构11.2.2 创建表环境11.2.3 创建表11.2.4 表的查询在 Flink 提供的多层级 API 中,核心是 DataStream API,这是我们开发流 处理应用的基本途径;底层则是所谓的处理函数(process function),可以访问事件的时间信 息、注册定时器、自定义状态,进行有状态的流处理。DataStream API 和处理函数比较通用

2022-09-28 16:54:57 1298 1

原创 Flink容错机制(二)

既然是端到端的 exactly-once,我们依然可以从三个组件的角度来进行分析:(1)Flink 内部 Flink 内部可以通过检查点机制保证状态和处理结果的 exactly-once 语义。(2)输入端输入数据源端的 Kafka 可以对数据进行持久化保存,并可以重置偏移量(offset)。所以我 们可以在 Source 任务(FlinkKafkaConsumer)中将当前读取的偏移量保存为算子状态,写入到 检查点中;

2022-09-27 09:26:03 931

原创 Flink容错机制(一)

目录十:容错机制10.1 检查点(Checkpoint)10.1.1 检查点的保存10.1.2 从检查点恢复状态 10.1.3 检查点算法 10.1.4 检查点配置10.1.5 保存点(Savepoint)流式数据连续不断地到来,无休无止;所以流处理程序也是持续运行的,并没有一个明确 的结束退出时间。机器运行程序,996 起来当然比人要容易得多,不过希望“永远运行”也是 不切实际的。因为各种硬件软件的原因,运行一段时间后程序可能异常退出、机器可能宕机, 如果我们只依赖一台机器来运行,就会使得任务的处理被迫中

2022-09-26 12:28:47 1663

原创 Flink状态编程(二)

它与常规列表状态的区别 在于,算子并行度进行缩放调整时对于状态的分配方式不同。我们看到,算子状态的注册和使用跟 Keyed State 非常类似,也是需要先定义一个状态描述器(StateDescriptor),告诉 Flink 当前状态的名称和类型,然后从上下文提供的算子状态存储(OperatorStateStore)中获取对应的状态对象。这种“均 匀分配”的具体方法就是“轮询”(round-robin),与之前介绍的 rebanlance 数据传输方式类似, 是通过逐一“发牌”的方式将状态项平均分配的。

2022-09-25 17:30:47 671

原创 Flink状态编程

Flink 不会对状态进行任何自动操作,也不 知道状态的具体数据类型,只会把它当作最原始的字节(Byte)数组来存储。我们需要花费大量的精力来处理状态的管理和维护。

2022-09-24 16:14:07 851 1

原创 Flink多流转换(二)

多流转换是流处理在实际应用中常见的需求,主要包括分流和合流两大类,本章分别做了 详细讲解。在 Flink 中,分流操作可以通过处理函数的侧输出流(side output)很容易地实现;而合流则提供不同层级的各种 API。最基本的合流方式是联合(union)和连接(connect),两者的主要区别在于union 可以对 多条流进行合并,数据类型必须一致;而connect 只能连接两条流,数据类型可以不同。

2022-09-18 16:56:39 1284

原创 Flink多流转换(一)

所谓“分流”,就是将一条数据流拆分成完全独立的两条、甚至多条流。也就是基于一个DataStream,得到完全平等的多个子 DataStream,如图 所示。一般来说,我们会定义一些 筛选条件,将符合条件的数据拣选出来放到对应的流里。其实根据条件筛选数据的需求,本身非常容易实现:只要针对同一条流多次独立调 用.filter()方法进行筛选,就可以得到拆分之后的流了。例如,我们可以将电商网站收集到的用户行为数据进行一个拆分,根据类型(type)的不 同,分为“Mary”的浏览数据、“Bob”的浏览数据等等。

2022-09-18 12:00:41 692

原创 Flink处理函数(一)

目录 7.1 基本处理函数(ProcessFunction)7.1.1 处理函数的功能和使用7.1.2 ProcessFunction 解析7.1.3 处理函数的分类7.2 按键分区处理函数(KeyedProcessFunction)7.2.1 定时器(Timer)和定时服务(TimerService)7.2.2 KeyedProcessFunction 的使用7.3 窗口处理函数7.3.1 窗口处理函数的使用7.3.2 ProcessWindowFunction 解析7.4 应用案例——Top N7.4.

2022-09-17 09:34:18 3855

原创 Flink中的时间和窗口(三)

对于不同的窗口类型,触发计算的条件也会不同。例如,一个滚动事件时间窗口,应该在 水位线到达窗口结束时间的时候触发计算,属于“定点发车”;而一个计数窗口,会在窗口中 元素数量达到定义大小时触发计算,属于“人满就发车”。所以 Flink 预定义的窗口类型都有 对应内置的触发器。对于事件时间窗口而言,除去到达结束时间的“定点发车”,还有另一种情形。当我们设 置了允许延迟,那么如果水位线超过了窗口结束时间、但还没有到达设定的最大延迟时间,这 期间内到达的迟到数据也会触发窗口计算。

2022-09-15 16:07:29 1055 2

原创 Flink中的时间和窗口(二)

所以截取出的就是某一时间 段的数据。到达结束时间时,窗口不再收集数据,触发计算输出结果,并将窗口关闭销毁。所 以可以说基本思路就是“定点发车”。用结束时间减去开始时间,得到这段时间的长度,就是窗口的大小(window size)。这里 的时间可以是不同的语义,所以我们可以定义处理时间窗口和事件时间窗口。Flink 中有一个专门的类来表示时间窗口,名称就叫作。

2022-09-14 18:42:06 2055 2

原创 Flink 中的时间和窗口(一)

在事件时间语义下,我们不依赖系统时间,而是基于数据自带的时间戳去定义了一个时钟, 用来表示当前时间的进展。于是每个并行子任务都会有一个自己的逻辑时钟,它的前进是靠数 据的时间戳来驱动的。但在分布式系统中,这种驱动方式又会有一些问题。因为数据本身在处理转换的过程中会 变化,如果遇到窗口聚合这样的操作,其实是要攒一批数据才会输出一个结果,那么下游的数据就会变少,时间进度的控制就不够精细了。另外,数据向下游任务传递时,一般只能传输给一个子任务(除广播外),这样其他的并行子任务的时钟就无法推进了。

2022-09-12 20:30:23 1332 1

空空如也

空空如也

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

TA关注的人

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