- 博客(55)
- 问答 (2)
- 收藏
- 关注
原创 聊聊PG中的关键字类别-2
在PG源码中有这样一个宏定义,聊聊PG中的关键字类别-1中解析的是collabel的底层逻辑和设计原理,本章主要是看category,关键字大类的设计和底层原理。这四种关键字有什么区别,用处是什么?这是 PostgreSQL 中关键字的四种分类,区别在于和。
2026-04-12 10:18:47
348
原创 聊聊PG中的关键字类别-1
简单说:裸列标签是"快速通道",但只有安全的词能走;列标签是"标准通道",所有词都能走但需要 AS 这张票。– 解析器会困惑:这是 “foo 别名为 order” 还是 “foo 然后 ORDER BY 开始了”?限制:只有部分关键字可以这样用,因为如果太多关键字都能省略 AS,会导致语法歧义。– bar 是裸列标签。更宽松:所有关键字都可以用,但必须显式写 AS(有时还需要双引号)。列标签:所有关键字都行,但必须用 AS 明确告诉解析器"这是别名"裸列标签:只能是无歧义的关键字(通常是保留字之外的)
2026-04-11 10:25:02
52
原创 PostgreSQL函数权限测试
1.函数定义ACL测试以用户A创建函数:ASBEGINRETURNamount∗0.1;END;;收回权限:此时以用户B执行://发现权限不足此时以用户A授权给B:再以用户B执行,发现可以。
2026-03-22 19:58:04
83
原创 PostgreSQL大对象操作办法
其实执行lo_import就会在pg里面生成大对象,这个大对象有自己的oid,底层是一个单独的数据文件,和表文件的存储隔离开来的。所以针对那种表,有多少行记录意味着也就有多少大对象,且需要将表的那个字段的值,最好先搞下来再导入。//假设这是一个图像表,有一个字段名字,一个字段图像数据。//返回大对象的oid。2.-- 写入数据到大对象,此处数据应该是上面导出的一行的列的二进制值。1.在PG中创建N个大对象,一个大对象即为一个OID。1.导出每个二进制的值,针对每个值建个大对象。
2026-03-22 19:57:10
111
原创 关于PG兼容性的一点转换
PG中业务上遇到如下兼容问题:由于PG本身不包含varchar到integer的隐式转换,因此采取如下折衷策略,可以临时修复此问题:;
2026-03-16 21:19:47
61
原创 PG逻辑复制槽应用
pg_recvlogical,pg自带的工具,能消费复制槽内的数据,相当于逻辑复制的下游。对应物理wal接收工具为 pg_receivewal。pg_logical_slot_peek_changes()函数展示解析数据不会消费掉;pg_logical_slot_get_changes()函数展示解析数据并消费掉;订阅发布默认走的pgoutput解析插件。
2026-02-05 19:55:03
346
原创 关于Patroni一些思考
(2)connect_address–一直觉得这个项可有可无,在本地测试时也没什么毛病,后来发现不配这个默认就是localhost,本身没有什么问题,实际从代码中发现,在主备不一致情况下,需要rewind时,实际备机是要通过配置中心查到主机的这个connect地址的,再连到主机进行rewind,否则主机无法连上,就会一直rewind不成功,日志一直报错,timeline也切不回来。(1)listen–其实patroni会把该项解析成postgresql.conf里的listen地址和port。
2025-09-12 10:27:07
188
原创 如何理解PostgreSQL全页写?
假设没开启全页写的场景下,在checkpoint完成之后,后续数据库持续读写,然后bgwriter的向底层刷脏,某个时刻刷脏异常断电,导致磁盘的页只写了部分,数据页异常不完整了。然后数据库重启之后,从redo点开始回放wal,从上次redo点开始回放,但是磁盘上的数据页本身就不完整,如何能回放成功呢?这样后续即便数据库运行过程中出现部分页写,数据页不完整的情况,那么后续起来后,反正从redo点开始回放,而回放的同时,会发现wal中有备份块,那么就会覆盖页面内容,这样也就能保证数据一致了。
2024-10-28 20:39:23
485
原创 C语言头文件#ifndef条件编译用法
XXX为真实的头内容,一直不大懂为何要加#ifndef C_CLIENT_H_这样的内容,其中C_CLIENT_H_大概是和自己的.h文件同名的一个大写标识。于是搜了一下,此种做法是为了解决,在同一个.C文件中包含多个头文件时,这多个头文件存在重复定义,从而导致编译时出现重复定义问题。比如我们有2个头文件,第一个是test.h:第二个是test1.h,将test.h头文件包含进去了,这种在大型工程中极有可能发生。
2024-10-19 23:12:38
729
原创 Zookeeper到底是AP还是CP?
1.结论:Zookeeper实现了A可用性、P分区容错性、C中的写入强一致性,丧失的是C中的读取一致性,读取准确地说是顺序一致性主要有以下三点:从一个读写请求分析,保证了可用性(不用阻塞等待全部follwer同步完成),保证不了数据的一致性,所以是ap。从zk架构分析,zk在leader选举期间,会暂停对外提供服务(为啥会暂停,因为zk依赖leader来保证数据一致性),所以丢失了可用性,保证了一致性。进一步讲:这个c不是强一致性,而是最终一致性。即上面的写案例,数据最终会同步到一致,只是时间问
2021-08-27 05:57:54
10718
4
原创 系统设计的一些思考
被问及一些系统设计思考一:你的工程项目在高可用保障方面,都做过哪些工作,如何体现?二:限流你是怎么使用的?高并发场景中的优化。Dubbo三:常用的熔断手法有哪些?Dubbo四:分布式一致算法有哪些?各有什么区别。1.Paxos2.Raft3.ZAB 自惭形秽,几年的工作经历,这些问题都没有深刻思考过,终究还需要沉下来深入学习。...
2021-08-21 22:25:03
345
原创 Ambari Hadoop 开启HTTPS证书制作始末
1 .下文为开启Ambari HTTPS相应步骤。在集群内每个节点,创建hadoop https目录,执行:mkdir -p /etc/security/hadoopStore;chmod 755 /etc/security/hadoopStore;在Ambari Server节点,生成CA根证书,执行:openssl req -new -x509 -nodes -keyout...
2019-01-14 17:06:53
1454
原创 Ambari Metrics System之后台报错client.AsyncProcess: #1, waiting for 4763 actions to finish
众所周知,目前AMS系统后台的指标数据存储采用的是HBase,不过只是一个拥有单个regionserver的简易版HBase,由于只有一台实际RegionServer,所以所有的读写请求都会指向这一台Regionerver。此阉割版的HBase并未真正发挥出HBase的分布式特性,也背离了HBase使用的初衷。本质上讲,和单节点的普通数据库没有太大差别。因此其负载非常巨大,经常会在ambari-me
2018-04-18 17:45:43
3969
原创 Https原理及实践
1.Https原理HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法,但是协商对称加密算法的过程,需要使用非对称加密算法来保证安全,然而直接使用非对称加密的过程本身也不安全,会有中间人篡改公钥的可能性,所以客户端与服务器不直接使用公钥,而是使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。这样通过这些机制协商出一个对称加密算法,就此双方使用该算法进行加密解密。从
2017-10-09 18:05:04
895
转载 Git使用流程
此文转载于:http://blog.justwe.site/2017/05/27/git-workflow/ 老夫的毕生功力都在这了…通常我们工作时是这样操作说一下使用 git 做版本控制的时候的工作流程1.git add -A #需要添加到版本库中的文件 -A 就代表着所有文件(除开了 .gitignore忽略掉的文件)2.git commit -m '本次提交的备注'3.git pul
2017-09-11 09:47:01
469
原创 XShell快捷键指南
XShell快捷键指南光标移动ctrl + a(home按键) 将光标移动到命令行开头相当于VIM里shift+^ctrl + e (end按键) 将光标移动到命令行结尾处相当于VIM里shift+$ctrl + f 光标向后移动一个字符相当于VIM里lctrl + b 光标向前移动一个字符相当于VIM里hctrl + 方向键左键 光标移动到前一个单词开头ctrl + 方向键右键 光标移
2017-07-18 09:04:40
1615
原创 MarkDown语法分析
前言:之前项目组leader就要求用markdown来写一些产品说明文档,初次接触markdown当时确不知道是啥,写着感觉特别别扭,习惯了word排版形式,刚来接触这个一直不太习惯,跌跌撞撞好久都未曾理解所以然,所以花下心思想细细学习一番。看网上说markdown语法都很简单,但是个人经过理解后发现,要懂它还得花一段时间去适应一下,至于其好处,确实没发现多少,我个人倒是觉得很繁琐。不过大家推崇一定
2017-07-16 21:10:01
961
原创 Java垃圾回收日志解析
Java垃圾回收日志解析1.开启垃圾回收日志 在运行一个java程序时可以在命令行中加入相应的JVM垃圾回收参数,获取程序运行时详细的垃圾回收日志信息。以下是一些大概的参数:-XX:+PrintGC与-verbose:gc 这两个命令效果都是一样,打印最基本的回收信息-XX:+PrintGCDetails 可以打印详细GC信息至控制台-XX:+PrintGCDateStamps 可
2017-07-14 10:42:12
4792
原创 深入Ambari Metrics 机制分析
0.简介 Ambari作为一款针对大数据平台的运维管理工具,提供了集群的创建,管理,监控,升级等多项功能,目前在业界已经得到广泛使用。Ambari指标系统( Ambari Metrics System,以下简称AMS)主要负责监控平台各类服务及主机的运行情况,提供各类服务及主机的相关指标,从而达到判断集群健康情况的目的,其重要性不言而喻。 本文是在深入阅读AMS源代码的基础之上,力求能够
2017-03-28 17:35:23
9156
原创 远程调试Ambari Metrics System
Ambari Metric System(以下简称AMS)作为Ambari中用作监控的独立的模块,其核心即是一个TimelineServer,其具有自己的内在工作机制,类似一个WEB服务。如下图所示,是其在Ambari中的源码结构: 因此针对Ambari Server 的远程调试,并不能同时调试AMS,毕竟它们的端口也不相同。如果想调试AMS,则必须要在AMS的启动参数中加上对应的
2017-03-08 18:13:55
1001
原创 使用IDEA对Ambari Server进行远程调试
1.配置端口 Ambari Server默认配置了服务端的debug参数,端口为5005。如果要修改端口,可以在/usr/sbin/ambari-server.py文件中对应地方修改,直接改5005端口即可。代码如下: SERVER_START_CMD_DEBUG = "{0} " \ "-server -XX:NewRatio=2 " \ "-XX:+UseConcMarkS
2017-02-20 18:40:36
2753
2
原创 Linux的hostname详细说明
参考文章:http://www.cnblogs.com/kerrycode/p/3595724.html 上文以原理的方式直接写出了hostname的来龙去脉,想深入的可以看看,本文在上文的基础上直奔结果,想快捷确认hostname的情况的可直接参考此文,本文从以下3点明确hostname的定义。 1.到底如何彻底(永久性)修改hostname? 在linux系统上执行hostname
2017-02-20 13:58:50
11795
原创 如何迁移Ambari Server主节点
1.备份当前数据(1)停止原ambari-server (2)切换到home目录下,导出原数据库数据 pg_dump -U ambari ambari > ambari.sql Password: bigdata pg_dump -U mapred ambarirca > ambarirca.sql Password: mapred(3)将导出的ambari.sql,ambari
2017-02-08 16:48:53
2935
原创 Ambari-Metrics数据表说明
1.总体Metrics表说明表名描述清理时间(默认)间隔(默认)METRIC_RECORD用于记录每个机器上收集的每个 Metrics 属性1 天(1)主机Metric:60(2)hadoop metric:60+1(sink间隔),默认为70sMETRIC_RE
2016-11-04 14:24:45
3350
原创 Ambari-Metrics配置指南
Ambari-Metrics配置指南1.常规配置项属性默认值说明timeline.metrics.service.operation.mode(timelineServer里面存储实际Metric数据hbase的模式,默认为embedded,即hbase数据存储在本地文件系统中)embedded改成di
2016-08-24 18:23:37
5936
原创 Linux下查看cpuinfo相关信息注释
在linux系统中,常用的cat /proc/cpuinfo该是许多人常用的命令吧,今天才发现自己竟然很多意义都不懂,特摘录如下,这是虚拟机中的Linxu系统,与实际的直接安装的Linux系统的机器有些区别。processor :系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核,我的电脑是4个核,就
2016-03-14 21:13:12
1317
原创 HBase之MinorCompact全程解析
Compact作用 当MemStore超过阀值的时候,就要flush到HDFS上生成一个HFile。因此随着不断写入,HFile的数量将会越来越多,根据前面所述,HFile数量过多会降低读性能。为了避免对读性能的影响,可以对这些HFile进行compact操作,把多个HFile合并成一个HFile。compact操作需要对HBase的数据进行多次的重新读写,因此这个过程会产生大量的
2016-01-04 16:02:34
12370
原创 HBase+Phoenix平台统计数据出现异常
大体上是统计查询20天的数据总数,数据量大概10多个亿,算起来还行啊,就是报这个错误。在源码中找到报错的地方,大体上是客户端向服务端发送完查询请求,但是服务端还在处理时,客户端已经关掉连接了,各种配置RPC.Timeout,什么配置项都调了,回头还是没用???大神们,求帮忙呢。
2015-11-15 17:42:47
1971
原创 原码,补码,反码的由来与转换
原码、反码、补码的来由我们知道计算机只能识别0和1,使用的是二进制。而在日常生活中人们使用的是十进制,并且我们用的数值有正负之分。于是在计算机中就用一个数的最高位存放符号(0为正,1为负)。这就是机器数的原码了。有了数值的表示方法就可以对数进行算术运算,但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下:假设字长为8bits。(1) 10 -(1
2015-10-18 14:24:50
2641
1
原创 Linux占用端口进程查询
Linux端口占用是个常见的问题,此时需要排查占用端口的相关程序,以下总结了几种方法。涉及到一些简单地命令,如netstat,ps,lsof等。下面以为50070端口为例,此时要查询端口情况。方法1.快速定位程序,输入lsof -i:50070。此时就可以看到命令,及对应的PID。下面再根据ps -ef|grep 15645,找到执行的进程。方法2:netstat
2015-10-16 11:20:32
1159
原创 Linux Vi编辑器的使用
1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insert mode)和底行模式(lastline mode) 1) 命令行模式commandmode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 2) 插入模式(Insert m
2015-10-15 19:32:08
1163
转载 java 虚拟机--新生代与老年代GC
本文转载自:http://my.oschina.net/sunnywu/blog/332870,特此申明。摘要 堆设置 -Xms :初始堆大小 -Xmx :最大堆大小 -XX:NewSize=n :设置年轻代大小 -XX:NewRatio=n: 设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio
2015-10-09 21:41:25
910
原创 HadoopWeb界面:Hadoop Non DFS Used concept
最近一直在奇怪NonDFSUsed容量是什么东西,然后花了一点时间研究了一番,进而引出了一些小的知识点。上面两幅图是hadoop集群节点的情况,下面一台是63节点的磁盘使用情况,hadoop节点的存储目录就是在/data0下面的。 (1)首先是关于hadoop的存储配置,因为是挂在/data0下面,配置的存储空间就为853个G,这其中有个小配置,dfs.datanode.du.reserved
2015-09-23 14:24:40
7626
转载 位运算及其应用详解
原文出自:http://blog.chinaunix.net/uid-21411227-id-1826986.html一.逻辑运算符 1.& 位与运算 1) 运算规则 位与运算的实质是将参与运算的两个数据,按对应的二进制数逐位进行逻辑与运算。例如:int型常量4和7进行位与运算的运算过程如下:4=0000 0000 0000 0100 &7 =0000 0000 0000 0
2015-09-12 10:32:56
1241
转载 杜绝低效的七大习惯
原文地址:http://wenku.baidu.com/view/d4ba5fbd960590c69ec3769d.html就像寻找对你有益的习惯一样,寻找妨碍你的习惯同样重要。7种习惯中大多数都可能会轻易成为你日常生活的一部分,使你难以察觉它的存在(或者它如何影响到你)。略微尝试这些习惯,结果毫无疑问,那些重要的事情没有几个可以完成。同时也要添加说明的是,这只是在生活中你可能形成的影
2015-08-27 17:28:54
966
空空如也
hbase查询出现CallerDisconnectedException错误
2015-11-10
reduce阶段copy map输出数据细节问题
2015-06-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅