自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Starrocks异步物化视图的使用以及注意事项

最近在使用starrocks来进行实时数据项目的开发,尝试使用了一下starrocks的异步物化视图。使用版本: 3.1.2-4f3a2ee创建完成后,数据会进行初始化计算。

2023-11-27 16:21:28 1701

转载 SparkSQL与parquet,处理decimal类型数据时遇到的问题及注意事项

Spark SQL为了更好的性能,在读写Hive metastore parquet格式的表时,会默认使用自己的Parquet SerDe,而不是采用Hive的SerDe进行序列化和反序列化。设置为true时,数据会以Spark1.4和更早的版本的格式写入。究其原因是因为按照上述两个参数的配置,testdb.item中fee_rate字段类型为decimal(10,6),数据为0.000000,经过一系列处理0.000000最终会被处理为0,看下边最终导致空指针异常的部分,就会一目了然。

2023-10-11 10:44:25 682

原创 spark3使用hive zstd压缩格式总结

ZSTD(全称为Zstandard)是一种开源的无损数据压缩算法,其压缩性能和压缩比均优于当前Hadoop支持的其他压缩格式,本特性使得Hive支持ZSTD压缩格式的表。Hive支持基于ZSTD压缩的存储格式有常见的ORC,RCFile,TextFile,JsonFile,Parquet,Squence,CSV。ZSTD压缩格式的表和其他普通压缩表的SQL操作没有区别,可支持正常的增删查及聚合类SQL操作。写出的文件使用zstd压缩,spark3才开始支持。

2023-10-10 18:06:56 1137

原创 Oracle的redo日志切换频率

1、查看redo日志信息。2、查看日志切换频率。

2023-08-28 10:54:24 787

转载 hive 视图操作

Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象,没有关联的存储 ,当查询引用视图时,Hive才将视图的定义与查询结合起来。

2023-06-02 15:30:17 496

转载 数据仓库,Hive中使用 != 或 <>符号进行条件过滤时的坑

最近在建设数据仓库,处理数据的过程中,经常反复使用hive的HQL语句,尽管HQL和SQL语言有很多相同之处,但也并不是说HQL就能通用SQL的语法。在使用过程中要尤为注意。事情经过是这样的,我在把业务系统数据同步到数仓(数据存储在Hive)中时,在数据汇总层(DWS),对数据进行汇总处理时,发现有数据丢失的问题,经过排查,发现是在使用 引发的坑。

2023-05-31 10:13:30 670 1

原创 oracle 会话内存占用情况查询

对应的如果是查询sga内存的话,sn.NAME LIKE ‘session pga memory’ 改为 sn.NAME LIKE ‘session sga memory’ 即可。

2023-04-11 18:27:05 1110 1

原创 【第三节】- StreamGraph构建过程

当添加一条有虚拟节点指向下游节点的边时,会找到虚拟节点上游的物理节点,在两个物理节点之间添加边,并把虚拟转换操作的属性附着上去。这样通过 StreamNode 和 SteamEdge,就得到了 DAG 中的所有节点和边,以及它们之间的连接关系,拓扑结构也就建立了。继续往下执行,执行到doTransform方法的时候, 获取当前执行环境,将当前。最后sink操作,同样的会获取当前执行环境,将对应的。继续往下,同样的会获取当前执行环境,将对应的。中运行的任务的接口,包括流式任务和批任务。

2023-04-07 17:20:37 331

原创 【第二节】- Idea本地调试提交Flink程序

2、在IDEA本地运行 CliFrontend。右键,Add as Libiary。

2023-04-07 10:32:05 692

原创 【第一节】- flink源码编译

分析flink源码,第一步从flink源码编译开始。环境:1、首先在flink 官网下载最新的源码下载链接: https://flink.apache.org/zh/downloads/

2023-04-06 17:23:00 540

转载 MYSQL中redo log和binlog之间的区别

这里,我们可以举个例子,现在我们想对数据库的数据进行修改操作,现在一条 update 语句过来,一般 update 操作都伴随着查询的操作,得先找到这条数据,然后再进行更新操作对吧。binlog 文件写满后,会自动切换到下一个日志文件继续写,而不会覆盖以前的日志,这个也区别于 redo log,redo log 是循环写入的,即后面写入的可能会覆盖前面写入的。redo log 的大小是固定的,前面的内容会被覆盖,一旦写满,就会触发 redo log 到磁盘的同步,以便腾出空间记录后面的修改。

2023-03-29 15:14:24 149

原创 oracle redo日志分析: V$LOGMNR_CONTENTS 的字段解释

【代码】oracle redo日志分析: V$LOGMNR_CONTENTS 的字段解释。

2023-03-22 16:05:39 589

原创 kafka connect结合debezium采集oracle数据的时候,任务失败重启的数据偏移量问题

这将导致旧 SCN 值和新提供的 SCN 值之间发生的更改丢失,并且不会写入主题。当连接器报告找不到此偏移 SCN 时,这表明仍然可用的日志不包含 SCN,因此连接器无法从它停止的地方挖掘更改。Debezium Oracle 连接器在偏移量中维护两个关键值,一个名为 scn 的字段 和另一个名为commit_scn的字段。找出连接器的最后一个偏移量、存储它的键并确定用于存储偏移量的分区。重启对应的task,就可以从设置的新的低水位线开始消费了。找出包含连接器偏移量的主题的名称。属性的值进行配置的。

2023-03-17 16:11:11 997

原创 oracle分析sql执行流程

注意: v$sql 这个视图针对相同的sql, 一个会话执行多次,只会出现一条,只会更新 LAST_ACTIVE_TIME。oracle版本: 11g。

2023-03-16 16:59:16 191

原创 oracle中查看pga内存占用, Linux 查看操作系统PGA内存占用

我们平时为ORACLE分配内存除了考虑ORACLE自身占用的内存外,还要考虑进程本身占用的操作系统内存。RSS列为真正的进程占用内存大小,可以看到每个ORACLE进程都差不多占用了30M的操作系统内存。RES列为进程占用的操作系统内存大小,基本在30M左右。PGA_ALLOC_MEM:PGA分配的空间。PGA_FREEABLE_MEM:可释放空间。PGA_USED_MEM:PGA可用空间。PGA_MAX_MEM:PGA最大空间。当然通过TOP命令来看也是最方便的。

2023-03-15 18:32:31 1302

原创 flink CDC2.3.0修改源码升级debezium版本至1.9.7,详细步骤以及操作流程

该问题在flink CDC2.3.0中并没有得到解决,由于flinkCDC底层依赖了debezium, 所以该问题的根源出在debezium这里,查debezium的issues发现,在debezium 1.9.3的时候,debezium修复了这个bug, 并且增加了新的配置参数来解决这个问题,所以如果要在flinkCDC侧解决这个问题,只能通过对flinkCDC的源码进行升级,接下来就介绍一下详细的源码修改步骤。

2023-03-15 17:02:13 1220 15

原创 Debezium-oracle-connector 1.9.7 源码分析

由于生产上需要用到debezium采集oracle的数据,所以本着用一个工具就需要了解其运行原理的初衷,对debezium相关的源码进行分析。好了,直接开始吧。首先,我们需要通过一段代码找到debezium执行的入口。相关的pom依赖:

2023-03-10 18:48:41 1154

原创 使用debezium采集oracle数据报错: NonRelationalTableException: Table xxx is not a relational table

使用debezium采集oracle日志数据的时候报错: Table xxx is not a relational table报错日志如下: ```javatraceorg.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.

2023-03-09 20:00:42 660

原创 Flink消费kafka的debezium-json数据(包含增删改消息),将数据同步到starrocks

只能更换方案使用高版本debezium + kafka connect的方式来同步对应的数据到kafka中,后面使用flink sql消费对应的kafka消息,来达到实时同步的目的。

2023-03-08 15:27:20 1696

原创 starrocks 表日期字段设置时间默认值

由于使用starrocks需要存在数据的写入时间,source端数据没有对应的时间字段,且不能手动加入时间字段,故需要在starrocks中添加默认时间字段。date字段会更新为最新的时间。

2023-03-08 10:37:23 1938

原创 【oracle】问题分析常用查询语句

这个视图提供的信息,都是oracle服务进程的信息,没有客户端程序相关的信息。服务进程分两类,一是后台的,一是dedicate/shared server。paddr 即v$process中的server进程的addr。6、查看 Oracle 正在执行的 sql 语句以及发起的用户。pid, serial# 这是oracle分配的PID。这个视图主要提供的是一个数据库connect的信息,program 这是服务进程对应的操作系统进程名。spid 这才是操作系统的pid。7、查询当前用户正在执行的SQL。

2023-03-02 17:15:17 501

转载 Hive sql - <> 和 != 中的大坑

在日常开发中,使用 Hive sql 中的不等于判断符,即 和!= ,不小心踩了一个小坑, 和!= 都是会把 null 值的数据剔除掉的。如果我们希望保留 null 值,可以采取补全 null 值数据的方式,比如上述案例中:if(col1 is null,‘未知’,col1)通过以上案例的查询结果,我们可以发现,无论是使用 还是使用!= ,除了会剔除指定的条件外,还会把 null 值剔除了。首先分别测试使用 和!

2023-02-27 19:50:47 255

原创 Spark结合多线程批量执行任务

若该任务申请到10个core,10G内存,而在执行第一个sql1时,job只使用了4个Core和2G内存,那么就造成了资源的浪费和剩下的任务还在等待该job的执行,不能做到资源的合理使用,而且任务时串行执行效率慢。await()方法会一致阻塞,直到计数器的值减为0,才会释放锁,以便所有任务执行完毕后继续执行下一步操作。注意:任务中视图表的创建、临时表的创建、等共享变量的创建,多个任务同时执行时,会造成同时使用!返回值Future 的get()方法是个阻塞方法,会等待结果的返回,直到任务结束。

2023-02-27 18:32:37 1125

转载 Flink检查点(checkpoint)、保存点(savepoint)的区别与联系

checkpoint和savepoint是Flink为我们提供的作业快照机制,它们都包含有作业状态的持久化副本。用几句话总结一下。checkpoint的侧重点是“容错”,即Flink作业意外失败并重启之后,能够直接从早先打下的checkpoint恢复运行,且不影响作业逻辑的准确性。而savepoint的侧重点是“维护”,即Flink作业需要在人工干预下手动重启、升级、迁移或A/B测试时,先将状态整体写入可靠存储,维护完毕之后再从savepoint恢复现场。

2023-02-20 11:53:57 1017

原创 Spark JDBC采用分区读取数据库时partitionColumn, lowerBound, upperBound, numPartitions参数理解

partitionColumn是应该用于确定分区的列。lowerBound并upperBound确定要获取的值的范围。完整数据集将使用与以下查询对应的行:numPartitions确定要创建的分区数。例如,如果:步幅等于100。

2023-02-01 15:30:29 1004

原创 hive join关联字段,两边不一致导致的问题

可以使用explain查看一下执行计划,发现会使用UDF函数将两边的字段都转成double, 由于double类型精度问题,可能导致最终关联的结果和预期不符,数据可能会出现重复,也可能出现关联不上的情况。注: spark sql不存在这种问题。

2022-10-24 11:33:03 939

转载 StarRocks 技术内幕:实时更新与极速查询如何兼得

实时数据的分析对企业数字化运营和决策已然至关重要,因此很多用户构建了实时数据分析平台。为了对业务各类“变更”进行实时分析、快速响应业务变化,实时数据更新成了实时分析的核心要求。很多用户在进行实时数据更新时,查询性能不够理想,大大降低了业务分析效率。和其他行业领先OLAP数据库不同,StarRocks设计和实现了PrimaryKey模型,让数据可以更好地实时更新,并且具备极速的查询能力。......

2022-07-26 17:58:01 1493

原创 mac M1安装的mysql,开启binlog

macM1下使用homebrew安装了mysql,但是找不到my.cnf,这导致很多mysql的设置只能在session里生效(比如showvariables命令列出来的变量设置),mysql断开重连之后就又回到初始状态了。要想一直生效只能修改my.cnf。,可以找到mysql加载my.cnf的默认路径,我们可以将列出来的路径依次检查一下。如果都不存在,我们可以选择任意路径创建一个,然后重启mysql即可。执行,查看是否开启成功。...

2022-07-18 18:05:32 701

原创 DataX DorisWriter 插件文档

DorisWriter支持将大批量数据写入Doris中。DorisWriter 通过Doris原生支持Stream load方式导入数据, DorisWriter会将读取的数据进行缓存在内存中,拼接成Json文本,然后批量导入至Doris。这里是一份从Stream读取数据后导入至Doris的配置文件。3.2 参数说明jdbcUrlfeLoadUrlbeLoadUrlusernamepassworddatabasetablecolumntimeZonepreSqlpostSqlmaxBatchR

2022-07-14 10:33:08 1273 2

原创 使用Flink1.14操作Iceberg0.13

环境:flink1.14.5iceberg0.13.2hadoop2.6.7从https://iceberg.incubator.apache.org/releases/下载flink1.14所需的运行jar,放到flink的lib目录下,启动flink集群:启动Flink SQL Client:执行操作查询数据结果:

2022-07-11 16:17:10 580

原创 hive替换数据中的制表符和换行符

使用正则替换:regexp_replace(需要处理的字段名称,'\\n|\\r|\\t','') as 重新命名

2022-05-10 14:42:57 5826

原创 Kafka Connect 的 REST API 接口

REST API由于 Kafka Connect 的意图是以服务的方式去运行,所以它提供了 REST API 去管理 connectors,默认的端口是 8083(我们也可以在启动 Kafka Connect 之前在配置文件中添加 rest.port 配置):GET /connectors:返回所有正在运行的 connector 名POST /connectors:新建一个 connector;请求体必须是 json 格式并且需要包含 name 字段和 config 字段,name 是 connect

2022-05-10 11:50:54 2731

原创 Kafka connect: 使用JDBC connector同步无主键的表时,如何处理无法执行delete操作的问题?

环境:kafka 2.8.0debezium 1.9.0Source端:{ "name": "oracle-source-connector-5", "config": { "connector.class" : "io.debezium.connector.oracle.OracleConnector", "tasks.max" : "1", "database.server.name" : "ORCL", "da

2022-04-30 10:18:46 1054

转载 javac编译后class$1,class$2,class$innerclass中的$的含义

class文件名中的$的含义如下:后面的类是后面的类是后面的类是前面的类的内部类内部类有以下两种情况:1.普通的组合类形式,即在一个类内部定义一个普通的类public class Outer { class Inner { public Inner { } }} javac Outer.java后会出现两个class文件:Outer.classOuter$Inner.class2.在一个类内部定义一个匿名类(一般是接

2022-04-26 18:17:31 688

原创 使用kafka connect结合debezium的方式采集oracle数据,日期类型时区问题处理

环境配置:1、kafka 2.8.02、debezium 1.9.03、oracle 11g使用kafka connect结合debezium的方式采集oracle数据, 参考我的上篇文章 https://blog.csdn.net/qq_36039236/article/details/124236918?spm=1001.2014.3001.5501本篇主要解决使用 debezium 采集数据过程中,日期类型的数据比正常时间多8个小时的问题,废话少说,直接上干货。我的解决办法是直接调整 de

2022-04-26 16:32:25 4489

原创 使用kafka connect结合debezium的方式采集oracle数据

环境配置:1、kafka 2.8.02、debezium 1.9.03、oracle 11g1、oracle环境配置该步骤参考我的上篇文章 https://blog.csdn.net/qq_36039236/article/details/124235751?spm=1001.2014.3001.5502本章节继续针对FAMILY.STUDENT_INFO表进行操作。2、kafka connect配置kafka内部集成了kafka connect, 只需要下载对应的debezium-orac

2022-04-18 10:59:35 3886 12

原创 FlinkSQL CDC实现同步oracle数据到mysql

环境准备1、flink 1.13.02、oracle 11g3、flink-connector-oracle-cdc 2.1.01、oracle环境配置首先需要安装oracle环境,参考 https://blog.csdn.net/qq_36039236/article/details/124224500?spm=1001.2014.3001.5502进入容器进行配置:docker exec -it oracle11 bash# 切换到oracle用户su - oracle# 创建数据需

2022-04-17 21:12:13 9446 21

原创 mac 使用docker安装oracle

使用docker安装oracle由于开发需要,需要配置oracle环境,所以在本地安装oracle进行相关开发测试,使用M1的mac同学请忽视该教程,因为M1使用的ARM架构,和本教程的docker镜像环境不兼容。1、拉取docker镜像docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g2、下载完成后,查看镜像3、创建容器docker run -d -p 1521:1521 --name oracle11g reg

2022-04-17 08:18:49 2616

转载 Hive Lateral View explode列为空时导致数据异常丢失

1.问题描述日常工作中我们经常会遇到一些非结构化数据,因此常常会将Lateral View 结合explode使用,达到将非结构化数据转化成结构化数据的目的,但是该方法对应explode的内容是有非null限制的,否则就有可能造成数据缺失。SELECT name,infoFROM ( SELECT name, split(info_list,',') as info_arrary FROM ( select '张三' as name,'1,

2022-04-06 15:15:43 1485

原创 hive的三种join

Hive中就是把Map,Reduce的Join拿过来,通过SQL来表示。参考链接:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins1、Common/Shuffle/Reduce JoinReduce Join在Hive中也叫Common Join或Shuffle Join如果两边数据量都很大,它会进行把相同key的value合在一起,正好符合我们在sql中的join,然后再去组合,如图所示:2、Map Jo

2022-04-06 14:59:55 470

空空如也

空空如也

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

TA关注的人

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