自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(793)
  • 问答 (1)
  • 收藏
  • 关注

原创 程序人生系列1-2021年通过私活累积收益1.5w

Oracle 私活MySQL 私活大数据 私活深漂程序员 私活记录

2022-01-20 17:09:58 8865 1

原创 堪比培训机构的MySQL系列博客

这个blog,我整理了我之前写的MySQL开发系列和MySQL运维系列,知识丰富程度堪比培训机构个人能力有限,如有错误的地方,欢迎指正。文章目录一.MySQL开发系列1.1 MySQL 行转列1.2 MySQL 常用的函数1.3 MySQL 表连接1.4 MySQL分组语句小结1.5 MySQL with语句1.6 MySQL高级窗口函数1.7 MySQL正则表达式1.8 MySQL编程二.MySQL运维系列2.1 MySQL安装2.2 MySQL体系结构2.3 MYSQL启动和关闭2.4 MySQL配

2020-09-09 12:19:46 32134 15

原创 Oracle sql进阶,不可错过的文章

文章目录一.Oracle 行转列二.Oracle 常用的字符处理三.Oracle 表连接四.Oracle层次查询小结五.Oracle高级分组小结六.Oracle with语句七.Oracle高级分析函数八.Oracle正则表达式九.Oracle高级语句Model子句这个blog我们来聊聊Oracle的sql进阶很多同学熟悉了Oracle sql的基本知识,sql的增删改查、表连接、分组聚合、常用函数等之后,就开始是想要进阶了。最近抽时间整理了一下Oracle sql进阶的blog,由于个人能力有限,如

2020-05-11 09:38:06 33764 5

原创 PG案例系列3: PG备库WAL segment has already been removed

PG版本:14.3。

2023-07-03 09:48:03 649

原创 大数据开发之Hive案例篇14:某个节点HDFS块比较多

那么此时可以这么理解,当集群处于空闲时,突然来了一个任务,那么此时因为所有container的优先级相同,优先选择的就是本节点的container,而第一个container 用于启动作业的AM进程,这也就对应了之前的,chd10节点申请AM会比其他节点多很多。从图中可以看出,每个节点的HDFS空间是相同的,大多节点HDFS使用量在40%左右,而出问题的这个节点居然直逼80%,鉴于之前问题出现过多次,且每次都是利用空余时间使用HDFS的rebalance进行解决的,此处需要找出具体问题,规避此类问题。

2023-06-30 10:27:57 1389

原创 PG系列5:PG体系结构

PostgreSQL的主要结构如下:PostgreSQL进程结构图谱和分类:内存结构分为共享内存、本地内存。类似于Oracle的SGA和PGA。共享内存是指数据库服务器向操作系统申请的共享内存段,如数据共享缓冲区、日志缓冲区、事务提交日志内存区等,提供给PostgreSQL服务器的所有进程使用。数据共享缓冲区:PostgreSQL把要操作和处理的表、index,读入到内存中,放到该区域缓存。类似于Oracle的database buffer cache。其大小由shared_buffers参数决定。日

2023-06-28 09:48:52 448

原创 PG系列4:linux下编译安装PG15

对于已经安装的数据库,再单独对文档和附加模块进行编译和安装也是可以的,但是仍然推荐使用带有world的编译和安装命令一次做完这些事情,这样可以保证网络中所有数据库软件的一致性,也避免给后期维护工作带来麻烦。将linux的脚本拷贝到/etc/init.d/目录中,将脚本重命名为postgresql,并授予可执行权限。编辑postgresql.conf文件,将配置文件中listen_address的值由“localhost”修改为要监听的地址,也可以修改为“*”,表示允许所有,然后重启数据库。

2023-06-26 09:41:05 1255

原创 PG系列3:docker安装PG15

输入端口、用户名及密码即可。

2023-06-25 09:44:48 662

原创 PG系列2:Linux下yum安装PG 15

这里修改的是Linux系统登录的账号密码,不是PostgreSQL数据库的密码,后面会修改PostgreSQL数据库的密码。安装完PostgreSQL数据库以后,默认会创建一个名为postgres的Linux登录用户名,这里需要进行密码修改。用postgres账号登录Centos,并修改数据库用户密码(或者直接su postgres切换过去)选择Download。

2023-06-21 09:45:15 2044

原创 StarRocks案例7:使用shell批量broker load导入hdfs数据

近期需要进行补录数据,需要将hive的历史数据迁移到StarRocks,因为需要补录的数据较多,hive和StarRocks均使用的是分区表,两边的日期格式也不同,hive这边是 yyyymmdd格式,StarRocks这边是yyyy-mm-dd格式。之前一直是使用DataX来从hive导入到StarRocks,因为DataX是单节点的,而hive和StarRocks是分布式的,所以这个性能其实一般,而且DataX配置json确实有点麻烦。

2023-06-20 09:33:24 591

原创 StarRocks案例6: StarRocks同关系型数据库的绑定变量功能

找了下官网,没有发现绑定变量相关的文档,只有一个类似MySQL在查询中使用变量的方法,感觉目前 还不能解决当前的问题。

2023-06-19 09:42:57 450

原创 StarRocks案例5: hive外表报错starrocks [42000][1064] hdfsOpenFile failed

(既不能是spark.zip 也不能是spark-24.zip, 需要在配置文件中写死为 spark-2x.zip)没想到打包名字居然是写死的,而且hive catalog居然受到spark 客户端的影响。现在需要使用hive外表,然后根据官网的的命令创建了hive resource。StarRocks的committer在论坛回复我了,原来是打包的问题。spark jar 打包名字需要是 spark-2x.zip。StarRocks版本 2.5.5。

2023-06-16 09:41:04 1013

原创 StarRocks案例4: Spark load第二次运行报错

使用Spark 2.4.0客户端会报错,java.lang.NoClassDefFoundError: org/slf4j/Logger。(既不能是spark.zip 也不能是spark-24.zip, 需要在配置文件中写死为 spark-2x.zip)看StarRocks lib下面使用的是Spark 2.4.6版本的jar包。然后spark_launcher_log下压根就不打印日志。spark jar 打包名字需要是 spark-2x.zip。于是使用Spark 2.4.6版本的客户端。

2023-06-15 09:48:21 1009

原创 大数据开发之Hive案例篇13:Hive SQL 常见参数调整

hive的一些默认参数设置不适合一些复杂的数据需求场景,需要针对具体情况进行调整。

2023-06-14 09:35:50 448

原创 大数据开发之Hive案例篇12:HDFS rebalance 一例

公司的离线数仓是CDH集群,19个节点,HDFS存储空间大约400TB左右,使用量在200TB左右。由于历史遗留的问题,数据仓库需要重构,新旧数仓在一段时间内需要并存,此时HDFS空间救不够了。Kafka出了问题,选主过程受到ZK的影响,导致生产者写的时候找不到主节点,进而导致数据丢失。于是申请增加6个节点,每个节点挂20T的存储,累积给HDFS增加120TB左右空间。(这还是HDFS rebalance执行了一天多的时候的截图)新增加节点与旧节点之间数据分布不均匀。

2023-06-13 20:04:14 716

原创 PG系列1:windows下安装PG15

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Zd0Ips8-1686533614058)(https://upload-images.jianshu.io/upload_images/2638478-38f401bb74f6a96b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]选择Download。

2023-06-12 09:36:12 607 1

原创 PG案例系列2:PG的执行计划没有走索引

shared hit代表的是缓存的数据块,一个数据块默认是8k,算上和表的总数差不多了,所以直接从内存读会比通过索引回表块,此时当然就直接走全表从内存中读取了。因为buffers是全局的,而且这个环境是生产环境,我暂时不好处理,于是就等了几分钟,重新运行查询。今天开发的找到我,说他创建了一个索引,但是查看执行计划,依旧走的是全表扫描,很让人头疼。我把复杂问题简单化,就单表执行where条件查询表,看能不能重现开发说的问题。我看了下居然真的走了全表扫描,不过我看了下,基本上都在buffers中缓存了。

2023-06-09 09:38:50 445 1

原创 大数据开发之Hive案例篇11: 配置资源队列

公司有一个hadoop的集群。但是A项目组经常做一些定时的BI报表,B项目组则经常使用一些软件做一些临时需求。那么他们肯定会遇到同时提交任务的场景,这个时候到底如何分配资源满足这两个任务呢?是先执行A的任务,再执行B的任务,还是同时跑两个?以Capacity 调度为例。

2023-06-08 09:55:00 455

原创 大数据开发之Hive案例篇10-大表笛卡尔积优化

我们需要求每一个start_date的累积数量,那么此时我们可以先求每天的,然后求每天累积的,再求当天每一个start_date累积的,加上前一日的累积的,就是最终我们需要的数据。就算数据量提升数倍,因为 join的条件由一个 data_source 变为了两个 data_souce 、dt,大大减少了笛卡尔积的数据量,整个代码的计算量也减少了许多。同样的逻辑,表连接的方式居然就可以了,而分析函数却不行,估计一个是写内存,一个是写磁盘把。将数据倾斜严重的数据,单独拿出来执行。最终的运行时间在5分钟左右。

2023-06-07 09:53:56 1383 1

原创 大数据开发之Hive案例篇9-Not yet supported place for UDAF ‘count‘

后面把order by子句注释掉之后,居然就可以了,那么就是order by 后面不能跟聚合函数了。一个很简单的group by和count(*) 操作,然后居然报错了。大概是在Oracle MySQL上写SQL写习惯了,以为可以这么写。于是使用了聚合函数的别名,问题搞定。出了问题也是不知道从何排查。

2023-06-05 10:36:11 1505

原创 StarRocks案例3: 通过[broadcast] 优化慢SQL

但是实际情况是 table_b 居然是扫描了 5kw数据后,在于table_a 进行join,table_a 通过关联字段 与 table_b 进行join,然后再进行group by。table_a 10W 左右数据,通过where条件过滤数据后 剩下 10行数据。table_b 5亿左右数据,通过where过滤条件后 剩下 5kw 数据。table_b join后其实只剩下少量的数据,进行聚合运算,应该也不会太慢。通过explain查看了执行计划,发现了table_b 访问的行数太多了。

2023-06-02 09:32:48 541

原创 StarRocks案例2: 升级后性能变慢

CPU解析SQL生成执行计划,需要依赖统计信息,如统计信息正在收集中,那么此时CPU会等待统计信息收集完成或采用动态采样。可以看到,慢查询里面,CPU用于解析SQL生成执行计划的时间非常长,远高于实际执行的时间。从下图我们可以看到列的统计信息是此次新增的,要收集所有存量表的列的统计信息,耗时较久。从普罗米修斯上看到,集群CPU资源使用率不高,也就不存在资源的瓶颈。后面想到了,新版本的统计信息会有新增,那我们来看看统计信息。升级完成后,所有的查询均比较慢,前端报表页面点开也卡。

2023-06-01 09:49:01 794

原创 StarRocks案例1: DBeaver执行SQL报unknown error

因为StarRocks也属于mysql的生态,而且使用的是mysql 5.1的版本。在DBeaver上执行某些SQL语句的时候,直接报 unknown error。奇怪的是我直接用命令行连接没报错,可以正常运行成功。那么此时问题就是DBeaver这个工具的问题了。将驱动降到5.1版本,重新测试,SQL运行正常。然后我们看看DBeaver使用的驱动的版本。是最新的8.0.29的。

2023-05-31 09:30:08 788

原创 PG案例系列1:优化大表的count(*)

为了缓解这个问题,PostgreSQL引入了可见性映射(visibility map),这是一种数据结构,用于存储每个人是否都可以看到表块中的所有元组。对于count(*) 操作,完全可以借助索引,因为索引占的空间比表小太多,那么几十M的索引扫描起来为什么那么慢呢?遇到的问题是,第一次执行会很慢,6秒左右,如果间隔时间段第二次执行,因为缓存了第一次的数据,所以查询很快。开启4个并行,并调整参数后,我进行了5次测试,以示公平,每次测试后,休眠5分钟。前端页面需要分页展示,经常需要查询总数,然后做分页展示。

2023-05-30 10:04:44 1589

原创 大数据开发之Hive案例篇8-解析XML

因为Hive不支持XML数据格式,后端写入数据库存的是一个String类型,此时格式就没那么规范了,会有一些特殊字符。遇到不懂的问题,首先上官方文档查询相关文档,然后照着官网的demo改改,一般就能解决问题了。今天接到一个新需求,hive表里面有个字段存储的是XML类型数据。丰富的XML相关函数及测试用例。

2023-05-26 09:58:29 786

原创 大数据开发之Hive案例篇7- 笛卡尔积优化一例

这种非等值连接,不能写在on子句,只能写在where子句后面,那么此时的问题就是连个表的关联变成笛卡尔积了,产生的数据量太大了,而且笛卡尔积是全局的,所以只有一个reduce,执行进程上看,reduce进度一直卡在99%不动。那么此时我们需要的是人工的给两个表一个join条件,避免只有一个reduce操作。顺便指定一下reduce的个数,以免hive自动判断的reduce数发生错误。今天遇到一个问题,一个大表join 一个拉链表,获取对应的数据。优化后,执行时间由之前的18分钟,优化到4分钟左右。

2023-05-25 09:39:39 613

原创 大数据开发之Hive案例篇6- MR任务shuffle过程中失败

今天跑一个MR任务,数据量不大,跑了半个小时左右,遇到了超时的报错。

2023-05-25 09:37:43 196

原创 大数据开发之Hive案例篇5- count(distinct) 优化一例

因为本身是离线数据,此时可以借助临时表,首先把每个用户首次访问的时间记录下来,这样就可以将处理的数据大大减少,最后再通过开窗函数处理即可。一般一个reduce处理的数据是1G,所以首先想能不能增加reduce的个数来调优上述Hive SQL。SQL也是因为 count(distinct)的存在,导致reduce数分配少了,进而出现数据性能问题。上述SQL所代表的业务逻辑是求截止当前每分钟的用户访问数(如出现多次,只算一次)经验证,调整了上述参数后,问题依旧没有得到解决。

2023-05-24 10:03:42 289

原创 Hudi系列26: Spark处理Flink CDC同步的实时数据

因为数据已经同步到了Hive,Spark SQL默认可以读取Hive表的数据,所以可以直接进行操作。

2023-05-24 09:43:03 391

原创 Hudi系列25: Flink SQL使用checkpoint恢复job异常

如果是整个yarn-session异常,也可以启动yarnsession的时候指定checkpoint。在网上看到的资源都是针对代码级别的,没有看到Flink SQL级别的。对于一些大表,最好还是先通过Spark进行初始化,然后在接增量。把yarn-session的资源由8G提升到16G问题解决。在Flink web界面将Flink SQL任务手工结束掉。Flink可以自己重试,这个还是比较不错,无需人工干预。等mysql启动成功之后,任务又可以继续衔接上。看来是我的checkpoint都没成功。

2023-05-23 09:47:17 1452

原创 Hudi系列24: COW表初始化大表

如果是生产环境,可以指定一个较高的并行度,我这个地方因为是测试环境,并行度指定为1。内存尽量多指定,不然会包 OOM的错误。

2023-05-23 09:38:47 127

原创 Hudi系列23:常见问题

索引 index 是判断数据重复的核心数据结构, index.state.ttl 设置了索引保存的时间, 默认 1.5 天,对于昌时间周期的更新, 比如更新一个月前的数据,需要将 index.state.ttl 调大(单位 天), 设置小于0代表永久保存。Merge On Read 默认开启了异步的compaction,策略是 5 个 commits 压缩一次, 当条件满足会触发压缩任务,另外,压缩本身因为耗费资源,所以不一定能跟上写入效率,可能有滞后。,我还以为是提示错误,后来想想也不至于,然后想到。

2023-05-22 18:33:35 1065 1

原创 Hudi系列22:离线Clusting

异步的 clustering 相对于 online 的 async clustering 资源隔离, 从未更加稳定。仍然保持开启,由写任务阶段性出发 clustering plan。为 false,关闭在线 clustering。推荐由写定时出发,写参数。

2023-05-19 09:32:03 545

原创 Hudi系列21:离线Compaction

hudi

2023-05-18 10:35:53 637

原创 Hudi系列20: Bucket索引

从 0.11 开始支持默认的flink 流式 写入使用 state 存储索引信息: primary key 到 fileID 的映射关系。当数据量比较大的时候, state的存储开销可能成为瓶颈, bucket 索引通过固定的 hash 策略, 将相同 key 的数据分配到同一个 fileGroup 中,避免了索引的存储和查询开销。

2023-05-17 09:38:56 515

原创 Hudi系列19:Hudi写入模式

Hudi写入模式

2023-02-17 11:21:58 910

原创 Hudi系列18:Hudi全量接增量

Hudi全量接增量

2023-02-15 11:14:02 714

原创 Hudi系列17:离线批量导入

Hudi离线批量写入

2023-02-13 15:06:06 1244

原创 Hudi系列16:Hudi核心参数

hudi常用参数

2023-02-07 15:41:46 1245 1

原创 Hudi系列15:Hudi元数据同步到Hive

Hudi元数据同步到Hive

2023-02-06 10:17:48 1613 1

空空如也

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

TA关注的人

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