- 博客(89)
- 收藏
- 关注
原创 postgresql增量备份系列一
在一些大容量得数据库应用中,采用全量备份得方式,会带来大量时间浪费和开销,此时定期的增量备份可以使得数据存储周期变长。本文讲解几个增量备份工具。
2024-10-30 09:20:41 1231 1
原创 自定义函数查看OS的file cache
在OS中使用cache机制,主要为了提高磁盘的读取效率,避免高频的IO交换。将频繁访问的数据存放在file cache中,下一次在获取的时候就可以直接读取,缓存高命中率对于数据高速检索十分有利。那就数据库端,写个脚本定时查看其file cache情况import rerows = []try:else:return []return (执行函数。
2024-10-17 14:46:13 1124
原创 PG+PGBOUNCER同一端口,竟然能同时运行
今天遇到了一个非常低级的错误,psql无法访问已知的数据库当我使用psql -h 的时候,会提示报错首先postgres数据库是有的其次白名单也没有问题数据库监听也没有问题在查看服务器对外服务地址的时候,就发现了问题tcp协议的对外服务中没有postgres进程。这样就好理解了,psql 没有加h的时候是不走TCP协议的。加了h 是需要走TCP 协议的,但是却没有对应的,虽然在对外服务中你有看到tcp6 协议,那是PG默认开启时就是对所有IPv6 可以访问。
2024-10-17 14:45:37 219
原创 postgresql僵尸进程的处理思路
僵尸进程(zombie process)是指一个已经终止但仍然在进程表中保留条目的进程。正常情况下,当一个进程完成执行并退出时,操作系统会通过父进程调用的wait()或waitpid()系统调用来收集该子进程的退出状态。如果父进程未及时调用这些函数,子进程的状态信息就无法从内核中移除,导致进程在内核中以“僵尸”状态存在。此状态下的子进程,使用kill -9 就是“鞭尸”,是无法移除僵尸进程的僵尸进程的主要特点是它们不再消耗CPU或内存资源,因为其已终止,只保留一个进程号(PID)和少量的状态信息。
2024-10-01 15:20:43 310
原创 postgresql僵尸进程的处理思路
僵尸进程(zombie process)是指一个已经终止但仍然在进程表中保留条目的进程。正常情况下,当一个进程完成执行并退出时,操作系统会通过父进程调用的wait()或waitpid()系统调用来收集该子进程的退出状态。如果父进程未及时调用这些函数,子进程的状态信息就无法从内核中移除,导致进程在内核中以“僵尸”状态存在。此状态下的子进程,使用kill -9 就是“鞭尸”,是无法移除僵尸进程的僵尸进程的主要特点是它们不再消耗CPU或内存资源,因为其已终止,只保留一个进程号(PID)和少量的状态信息。
2024-10-01 11:49:33 527
原创 postgresql-patroni高可用安装部署
patroni+etcd,算是目前比较主流的PG高可用搭配了。patroni都出4.0版本了,一直没时间,断断续续写了好久,最近有人问到,那就当作一个笔记发表吧,自行搭建一个测试库做测试吧。来来回回改了好几遍。文中可能不妨地方没有同步修改的遗漏点。
2024-09-12 20:35:03 1514
原创 PG逻辑解码
在postgresql中,库级别的复制,通常使用主从复制,但是主从暂时不支持跨大版本复制,使用跨版本复制以及表级别的复制通常使用发布订阅。postgresql15在逻辑订阅上做了一些修改,对于使用者的便利性更高。
2024-09-01 15:55:24 558
原创 PG中逻辑订阅的秘密
在postgresql中,库级别的复制,通常使用主从复制,但是主从暂时不支持跨大版本复制,使用跨版本复制以及表级别的复制通常使用发布订阅。postgresql15在逻辑订阅上做了一些修改,对于使用者的便利性更高。
2024-08-13 00:04:20 853
原创 去O化神器 Exbase
随着去O化进程推动,很多旧业务依赖的oracle数据库,都需要实现做数据库的替换,当下能很好兼容Oracle,并实现异构数据库之间转换的工具并不多。这里给大家推荐一个商业工具数据库迁移工具exbase(北京海量),支持oracle迁移pg。博主感觉是一个相对比较好用的工具,支持数据库全量迁移、数据效验、实时增量同步。其增量同步支持正向和反向的增量同步是一大特性。
2024-07-07 22:51:51 635
原创 介绍两个压测工具pgbench\sysbench,可视化监控工具NMON
写篇文章对数据库、OS性能的性能评估,需要选择合适的压测工具,给找出数据库的运行瓶颈。
2024-06-30 19:45:19 1204
原创 postgresql中写python去读取HDFS数据,像表一样使用。
首先postgresql是支持python的,在安装postgresql数据库的时候需要执行python支持。可以使用python进行写fundcation 自然也就可以自定义funcation去读取HDFS文件,以此替换掉hive的,省去中间频繁切换服务器的麻烦。
2024-05-11 17:09:01 408
原创 postgresql中控制符带来的数据错觉
在数据库字符集中,由于数据质量的控制不够完善,每一个字符集都并不是所有字符的能看见,有些字符的展示可能会出现乱码,甚至出现不同字符展示成同样效果的可能,给开发人员造成分析错觉。当数据库存入了控制符,类似制表符,展示的效果竟然和空格效果一样,而且还无法trim掉,对于开发人员可能会带来视觉错觉。Seq十进十六进缩写字符名00x00NULNull (空)^A10x01SOHStart of Heading (报头开始)^B20x02STX。
2024-05-09 17:43:49 416
原创 OOM就一定要启用swap?
在技术群中到,看到有人数据库OOM了,DBA没有去排查高占用的进程,而是去排查为什么swap没有生效,我觉得很有意思。为此我查阅了一些资料,先给大家讲讲swap的作用是什么”
2024-04-18 21:23:47 1000 1
原创 hive了解系列一
查询延迟高:每一次启动脚本,hive都会去调用mapdurce导致其启动时间长。复杂查询性能有限:对于一些复杂场景(如:行列转换、递归查询等)。数据更新和事务性操作不佳:不支持update、delete语句。ACID:hive不是一个ACID模型数据库工具,不支持事务处理。
2024-04-15 11:56:45 806
原创 多进程数据库不适合作为hive的元数据库
今天发现一个比较奇怪的现象,因为博主不熟悉mysql,所以在安装hive的使用了postgresql作为hive的元数据库,在测试几个连接工具对hive进行链接,后面再测试的时候发现链接不上了,并且报错日志如下:”null大概意思就是我JVM的资源不足了,内存溢出了这个就很奇怪, 我就测试了几个数据库链接工具,还没上强度,也没上job,怎么就内存溢出了呢?我查看了一下进程(看看是什么事务占用了资源),吓我一跳。
2024-03-17 13:27:18 688
原创 hive中spark SQL做算子引擎,PG作为MetaDatabase
hive架构原理1.客户端可以采用jdbc的方式访问hive2.客户端将编写好的HQL语句提交,经过SQL解析器,编译器,优化器,执行器执行任务。hive的存算都依赖于hadoop框架,所依赖的真实数据存放在hdfs中,解析好的mapreduce程序,提交给yarn。3.另外hive框架自带一个名为debay的数据库,其作用是用来记录hdfs上数据的存放位置,也就是说,在客户端提交任务之后,hive优先会去数据库中查询所需要数据在hdfs上面的路径信息,然后在拿着路径信息再去hdfs寻找数据。
2024-03-03 15:42:18 1008
原创 SparkStreaming在实时处理的两个场景示例
Spark Streaming是Apache Spark生态系统中的一个组件,用于实时流式数据处理。它提供了类似于Spark的API,使开发者可以使用相似的编程模型来处理实时数据流。Spark Streaming的工作原理是将连续的数据流划分成小的批次,并将每个批次作为RDD(弹性分布式数据集)来处理。这样,开发者可以使用Spark的各种高级功能,如map、reduce、join等,来进行实时数据处理。
2024-03-02 15:28:56 720
原创 hadoop ha安装
Hadoop是一个开源的分布式存储和计算框架,最初由Apache软件基金会开发。它的发展背景可以追溯到Google的MapReduce和Google File System(GFS)的论文,这两篇论文启发了Hadoop的设计。Hadoop的主要应用场景包括大数据存储、处理和分析,特别是在需要处理海量数据的互联网和企业环境中。它被广泛用于日志分析、数据挖掘、机器学习、图像处理等领域。Hadoop的生态系统还包括许多相关项目,如Hive、HBase、Spark等,为大数据处理提供了丰富的工具和技术。
2024-02-01 00:06:45 1029
原创 Kafka常见指令及监控程序介绍
kafka在流数据、IO削峰上非常有用,以下对于这款程序,做一些常见指令介绍。下文使用–bootstrap-server 10.0.0.102:9092,10.0.0.103:9092,10.0.0.104:9092需自行填写各自对应的集群IP和kafka的端口。该写法 等同。
2024-01-21 00:48:46 1362
原创 kafka简单介绍和代码示例
在大数据领域开发者常常会听到MQ这个术语,该术语便是消息队列的意思,Kafka是分布式的发布—订阅消息系统。它最初由LinkedIn(领英)公司发布,使用Scala语言编写,与2010年12月份开源,成为Apache的顶级项目。Kafka是一个高吞吐量的、持久性的、分布式发布订阅消息系统。它主要用于处理活跃的数据(登录、浏览、点击、分享、喜欢等用户行为产生的数据)。● 主题是生产者发布到Kafka集群的每条信息所属的类别,即Kafka是面向主题的,一个主题可以分布在多个节点上。
2024-01-16 23:06:53 1792 3
原创 POSTGRESQL中ETL、fdw的平行替换
该方法不仅可以应用到数据库对数据库之间,也可以应到,数据库对文件路径下。在postgresql嵌入python代码 其实可以替换掉一些中间件的使用。可控性,定制性也会更强。
2024-01-13 19:24:20 545
原创 了解spark计算模型
在集群背后,有一个非常重要的分布式数据架构,即弹性分布式数据集(resilient distributed dataset,RDD),它是逻辑集中的实体,在集群中的多台机器上进行了数据分区。通过对多台机器上不同RDD分区的控制,就能够减少机器之间的数据重排(datashuffling)。Spark提供了“partitionBy”运算符,能够通过集群中多台机器之间对原始RDD进行数据再分配来创建一个新的RDD。RDD是Spark的核心数据结构,通过RDD的依赖关系形成Spark的调度顺序。
2023-12-24 17:42:20 633
原创 Spark Shell的简单使用
Spark shell是一个特别适合快速开发Spark原型程序的工具,可以帮助我们熟悉Scala语言。即使你对Scala不熟悉,仍然可以使用这个工具。Spark shell使得用户可以和Spark集群交互,提交查询,这便于调试,也便于初学者使用Spark。格式:spark-shell spark://host:port, 可以进入spark集群的任意一个节点默认情况是进入到一个scala语言环境的一个交互窗口。
2023-12-22 00:55:32 1311
原创 spark介绍及简单使用
Spark是由加州大学伯克利分校AMPLab(AMP实验室)开发的开源大数据处理框架。起初,Hadoop MapReduce是大数据处理的主流框架,但其存在一些限制,如不适合迭代算法、高延迟等。为了解决这些问题,Spark在2010年推出,提供了高效的内存计算和更灵活的数据处理方式。
2023-12-17 02:26:46 728
原创 线性回归在数据库中的应用
今天看到微信群有人问,如何知道数据库一年的磁盘增量?如果没有研究过统计学,IT人员对于这个问题就只能靠经验了去断定了。没经验的往往都是回复扩容越大越好。当然未来的事情我们是无法预料的。本博主就通过简单的线性回归做一个计算,算出一年数据库的磁盘增量的大小和概率。
2023-12-15 15:00:06 201
原创 基于hadoop下的spark安装
Spark主要⽤于⼤数据的并⾏计算,⽽Hadoop在企业主要⽤于⼤数据的存储(⽐如HDFSHive和HBase 等),以及资源调度(Yarn但是也有很多公司也在使⽤MR2进⾏离线计算的开发。Spark + Hadoop在当前自建平台技术中,是离线计算任务开发的主流组合方式。数据存储:HDFS资源调度:Yarn数据计算:Spark或MapReduce,取决于具体的企业需求场景Spark提供了Spark CoreSpark SQL。
2023-12-10 23:54:23 1426
原创 postgresql自带指令命令系列三
在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量export PATH=/home/postgres/pg/bin:$PATH,该变量会指向postgresql安装路径下的bin目录。这个安装目录和我们在进行编译的时候./configure --prefix= [指定安装目录] 中的prefix参数设置相关。--bindir=DIR 参数可以指定bin目录的具体存放路径。
2023-12-09 20:04:39 468 1
原创 Finereport基于linux的简单安装(单节点)
本文以单节点简单部署为例,不适用企业级高可用部署策略。FineReport的运行依赖于Tomcat ,Tomcat 是免费且性能相对稳定的 Web 应用服务器,也可以充当JSP容器。它是一个用于运行Java Servlet和JavaServer Pages(JSP)的Web服务器。Tomcat本身并不包含完整的JDK,但它需要在运行时依赖于JDK。在安装和配置Tomcat之前,确保已经安装了JDK。
2023-12-09 02:20:30 946
原创 postgresql自带指令命令系列二
在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量export PATH=/home/postgres/pg/bin:$PATH,该变量会指向postgresql安装路径下的bin目录。这个安装目录和我们在进行编译的时候./configure --prefix= [指定安装目录] 中的prefix参数设置相关。--bindir=DIR 参数可以指定bin目录的具体存放路径。
2023-12-06 20:32:12 249
原创 postgresql自带指令命令系列一
在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量export PATH=/home/postgres/pg/bin:$PATH,该变量会指向postgresql安装路径下的bin目录。这个安装目录和我们在进行编译的时候./configure --prefix= [指定安装目录] 中的prefix参数设置相关。--bindir=DIR 参数可以指定bin目录的具体存放路径。
2023-12-05 19:28:24 390
原创 基于hadoop下的Kafka分布式安装
Kafka是一种分布式流处理平台,它具有高吞吐量、可扩展性、可靠性、实时性和灵活性等优点。它能够支持每秒数百万条消息的传输,并且可以通过增加节点来增加吞吐量和存储容量。Kafka通过将数据复制到多个节点来实现数据冗余和高可用性,即使某个节点故障,也可以保证数据不会丢失。它能够快速地处理和传输数据,支持实时数据的处理和分析。此外,Kafka可以与各种不同的数据处理和分析工具集成,包括流处理、批处理、数据挖掘等等。Kafka的优点包括高吞吐量、可扩展性、可靠性、实时性和灵活性。
2023-12-03 19:50:20 686
原创 基于hadoop下的hbase安装
HBase是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
2023-12-02 00:42:03 292
原创 Findreport中框架图使用的注意事项
在框架图的应用中,一些表达上下游关系的数据非常适合用于做链路图相关的报表。可以展示成雪花图,普通架构图。但是在实际操作中有几点关于数据的注意事项需要留意。
2023-11-29 21:05:38 297
原创 数据库中生成列的对比
生成列(虚拟列):在实际开发中,相对一个历史数据的表增加一个字段,增加下游报表,数据分析的可用性。常见的方法就是删表重建,或者使用ADD column 语法。如果是一个历史表,删掉表数据是有风险的,历史的数据不一定还能再复现。第二中ADD COLUMN语法,随然你可以再存储中增加这个字段的处理,但是先前的数据行并不会有数据。那意义也就不大了。由此postgresql衍生出生成列的概念。生成列(虚拟列)目前仅仅支持,现有字段的值衍生计算后的值作为生成列的值。不支持子查询、表关联相关的运算。
2023-11-28 19:12:58 213
原创 hadoop安装
Hadoop是一个开源的分布式存储和计算框架,最初由Apache软件基金会开发。它的发展背景可以追溯到Google的MapReduce和Google File System(GFS)的论文,这两篇论文启发了Hadoop的设计。Hadoop的主要应用场景包括大数据存储、处理和分析,特别是在需要处理海量数据的互联网和企业环境中。它被广泛用于日志分析、数据挖掘、机器学习、图像处理等领域。Hadoop的生态系统还包括许多相关项目,如Hive、HBase、Spark等,为大数据处理提供了丰富的工具和技术。
2023-11-28 10:05:54 1076
原创 postgresql数据库中update使用的坑
在数据库中进行增删改查比较常见,经常会用到update的使用。但是在近期发现update在oracle和postgresql使用却有一些隐形区别,oracle 在执行update语句的时候set 后面必须跟着1对1的数据关联而postgresql数据库却可以一对多,这就导致数据在被新的时候出现不确定性。
2023-11-23 16:52:59 861
原创 oracle数据库巡检常见脚本-系列三
作为数据库管理员(DBA),定期进行数据库的日常巡检是非常重要的。以下是一些原因:保证系统的稳定性:通过定期巡检,DBA可以发现并及时解决可能导致系统不稳定的问题,如性能瓶颈、资源利用率过高或磁盘空间不足等。提高数据的安全性:巡检可以帮助DBA发现潜在的安全风险,例如未经授权的访问、数据泄露或其他安全漏洞。及时采取措施,可以防止这些风险演变成实际问题。避免数据丢失:DBA可以通过检查备份和恢复策略来确保数据的完整性,并确保在发生灾难时能够快速恢复业务运营。
2023-11-23 16:07:14 302
postgresql中的patroni+etcd 集群应用
2023-10-09
pgsql多次执行后才成功
2023-01-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人