- 博客(72)
- 资源 (1)
- 收藏
- 关注
原创 2025-09-19 Pinot 建表注意事项
在 schema 的配置里,该字段描述了一个或者多个主键字段。对于 realtime 表,当有数据更新是,会依照主键进行覆盖,从而保证每个主键只有一行记录。需要注意的是,消息队列 Kafka 里的消息的 key 也要按照这个配置进行设置。从而保证具有相同主键的消息能够固定分配的相同的 partition 上,从而避免 Pinot 里出现多条具有相同主键的记录。
2025-09-19 13:43:50
261
原创 2025-07-25 基于Oracle的报表系统优化实践
项目中的报表系统(Pre-Canned Reporting)是采用异步生成,用定时任务在凌晨提前生成前一天、一周、一月的报表,从而保障客户九点上班后能看到正确的报表数据。早期,我们的报表系统存在着因此,我们对该报表系统做了一系列的优化,并取得了很好的效果。
2025-08-17 23:22:07
695
原创 2025-08-07 MongoDB 数据量太大引起的 oplog 问题
MongoDB 的oplog 指的是操作日志,主要是用来给从节点同步数据用的。它有一个大小的限制。
2025-08-07 15:17:24
316
原创 2025-08-05 Oracle 一些SQL样例
这个查询会有性能上的问题,它访问了 reference_data_json这个字段3次,因此就解析了3次。性能会差。所以只访问一次的话,可以使用 json_value,如果访问多次的话,可以使用 json_table 的办法,如下所示。
2025-08-05 15:59:41
188
原创 2025-07-29 数据全链路监控实践
我们的用户是众多 Trade Capture System,他们的订单在敲定之前会访问我们的服务来判断改该订单是否合规。这里服务是否超时就成了一个判断我们服务质量的一个重要指标。为此,我们为这些用户提供了一个 Round-Trip API,用来接收他们返回给我们的,从发送请求到收到响应整个过程中的多个时间戳信息。继而,我们就可以把是否超时的统计信息提供给我们的客户 - 风控部门。基于这些统计信息,我们可以回答以下几个问题。
2025-08-05 14:24:16
653
原创 2025-07-29 Oracle 的数据清理
Oracle 25TB的最大空间,已经申请了20TB了,使用了15TB。按照预估,今年底再扩容一次,就达到了 Oracle 使用的上限 22TB(85%安全阈值,25*0.85=21.25TB)。Note: 上面数据做了模糊处理。
2025-08-05 12:54:36
843
原创 2025-07-29 布隆过滤器中项目中的使用
SMC 和 AMC 是我们需要使用到的一个很重要的数据,数据量也很大(千万级以上)。它们每天通过定时任务更新到 Redis 缓存里,也就意味着它们有一天的延时。为了更快得使用到最新的数据,我们监听了一个数据源的更新消息,然后更新缓存(实际是删除,当访问不到时会再去数据源获取最新的数据并缓存)。正常情况下,这千万级的数据更新频率并不高,所以更新缓存的压力也不大。
2025-07-30 11:48:50
164
原创 2025-07-29 Kafka 在项目使用中遇到的问题
项目中大量使用了 Kafka 用作数据节藕,这里记录一下在使用 Kafka 过程中遇到的问题。
2025-07-30 11:15:10
163
原创 2025-07-23 MongoDB 如何查看集合所占用磁盘空间
在前两篇关于 MongoDB 的分享中(),反复提到了MongoDB并不会主动释放申请到的资源。那么我们要如何定位到具体是哪个集合没有释放资源呢?
2025-07-25 10:33:59
458
原创 2025-07-21 MongoDB 数据清理
在上一篇中,介绍了通过使用 zstd 压缩算法替换默认的 snappy 压缩算法,从而达到两倍的压缩率提升,从而减少存储空间的占用。本篇分享将介绍通过定期清理的方式来减轻MongoDB的存储压力。
2025-07-22 17:09:22
752
原创 2025-07-09 MongoDB 更换压缩方式
MongoDB里存储的数据量太多,经常超过DBA设置的报警阈值 - 65%。经过研究分析,确定了以下多个方案此文将介绍方案一的实现过程。
2025-07-21 22:19:49
510
原创 2022-01-04 logback配置不生效
问题描述想要在本地打开debug级别的日志,修改了logback.xml,但是不生效可能的原因代码里可能修改了配置文件的路径LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();context.reser();context.putProperty("log.filename", filename);......
2022-01-04 14:10:29
775
原创 2021-12-13 FileNotFoundException when trying to read a resource file
Issue DescriptionString resource = ZipFileOutDemo.class.getClassLoader().getResource("1.txt").getPath();1.txt is put under folder “resources”.This code could be able to run within IDE (Intellij), but not able to run after packaged to a jar. Got below e
2021-12-13 23:23:58
334
原创 2021-12-13 how to handle multi ssh key
Issue Description$ git pushremote: Permission to xxx/testrepo.git denied to yyy$ git config user.namexxx$ git config --global user.namexxx明明用户就是 xxx,但是这里提交确实尝试用 yyy 用户进行提交,然后就被拒绝了。此外,去 github 上检查ssh key,也是已经加好了的(重新加一遍也不行)$ cat ~/.ssh/id_rsa.pub
2021-12-13 23:08:23
16593
原创 2020-10-21 oracle查询性能
测试数据 200wselect * from tbl ; 59sselect * from tbl where rownum < 10w ; 3.2sselect * from tbl where rownum < 100w ; 30.4sselect b.* from (select rownum as row_num, a, b, c from tbl a where rownum < 190w) b where b.row_num > 180w ; 4.4s同上 &l
2020-10-21 23:26:59
354
原创 2020-09-27 clojure环境搭建 - Leiningen的安装
这里写自定义目录标题下载jar包下载lein.bat修改lein.bat运行参考下载jar包https://github.com/technomancy/leiningen/downloads下载 leiningen-2.0.0-preview10-standalone.jar (这个是2012年的版本)下载lein.bathttps://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat但是需要翻墙,所以这里我
2020-09-27 20:19:18
1668
原创 2018-08-08 Mac使用中的一些实用设置
一、F1~F12Mac的F1~F12默认是功能键,也就是亮度调节、声音调节等等,这样子设置后,在 IDE 里就无法使用相关的快捷键。例如 Intellij IDEA,重命名某个变量的快捷键是 Shift + F6,但是此时的F6是功能键,无法重命名。设置完成后,如果想使用F1~F12上的功能键,比如音量调节,只需要同时按下 “fn” 即可。二、命令行指令的快速移动有时候,我们复制了一个很长的命令到终端里,但需要修改中间的某些参数。Ctrl + A、Ctrl + E 分别可以快速定位到命令的起始位
2020-09-06 17:42:43
341
原创 2018-09-13 beego中Query和Param的区别
源码input里的Param和Query// Param returns router param by a given key.func (input *BeegoInput) Param(key string) string { for i, v := range input.pnames { if v == key && i <= len(input.pvalues) { return input.pvalues[i]
2020-09-06 17:41:00
849
原创 2019-01-16 Influxdb 初试
一、简介Influxdb是一个时序数据库(Time Series Database),适合保存按照时间顺序打点的数据,例如监控信息、日志信息、统计信息等。官网:https://www.influxdata.com/二、安装、启动Mac上安装brew install influxdb启动和停止brew services start influxdbbrew services stop influxdb上面是后台启动,或者直接前台启动,可以看到输出到console的日志:influxd
2020-09-06 17:09:11
469
原创 2019-01-18 Mac下第一次打开外来app时点击取消导致的问题的解决办法
背景Mac下新下载了一个app,第一次打开时,会弹出一个对话框,提醒你这个app并不是来自appstore,请问是否打开?一般来说,都是直接打开的,但是万一一不小心,点击了取消,会带来什么样的问题呢?问题再重新打开的时候,会提示错误:“XXXXX” is damaged and can’t be opened. You should move it to the Trash无论点击取消再重新打开,还是Move to Trash再重新下载一个新的,都不跳不过这个提示框,也无法正常打开了。原因
2020-09-06 17:02:54
447
原创 2019-05-23 Linux小命令大功效<1>
今天突然感觉公司的模块太多了,时间久了,查看每个模块的代码都需要git pull一下。好在这些模块我都放在同一个目录下,下面一行命令搞定:for dir in `ls -d */`; do cd $dir; echo $dir; git pull; cd ..; done注释:ls -d */将列出当前目录下都所有文件夹;cd $dir; echo $dir;进入每个目录并打印目录名;git pull; cd ..;执行 git pull,并返回上一级目录;git pull命令有可能失败,
2020-09-06 17:00:12
129
原创 2019-06-21 Sonar Java静态代码质量检测
Sonarqube 安装说明安装 Docker下载镜像docker pull sonarqube:ltsdocker pull mysql:5.6.43启动mysql,root账号登录docker run --name mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6.43 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci注
2020-09-06 16:54:27
375
原创 2019-10-26 VMware 在升级Mac Catalina 后黑屏的情况
VMware版本是 Fusion 8.5.8,在Mac升级到 10.15 Catalina 版本后,出现了屏幕黑屏的情况。预览的小屏幕倒是能看见图像,而且能够进行操作。官方论坛上查到https://communities.vmware.com/thread/613755:需要把 VMware 加到 Privacy 的 Screen Recording 里。但是我本机没有:翻到第二页继续查,可以通过比较tricky的方式进行:先安装 11.1,打开后允许Screen Recording,这样就能在
2020-09-06 16:41:50
289
原创 2019-09-25 Oracle 11g Docker环境安装 - 失败
Docker环境安装这种很成熟、很大众的软件的时候,最直接的办法是去dockerhub上查找该软件。https://hub.docker.com可惜没有。最低只有 12c 的版本:https://hub.docker.com/_/oracle-database-enterprise-edition然后自己尝试装:分配交换空间:因为docker容器的交换空间是和宿主机公用的,所以这里没办法分配。先跳过想不起来了。最终没能成功。...
2020-09-06 16:39:57
341
原创 2020-08-28 Java的一些工具
JD-GUI 可以反编译jar包JProfiler,一个商业的、收费的profiler,Honest profiler,开源的VisualVM,
2020-08-28 19:49:34
177
原创 2019-05-10 记一次ETL 206倍的性能优化
一、背景线上某一项目,在抓取数据时,出现了数据积压的情况,必须每天或者每半小时清空一次。已知:该情况发生在19年年初左右,之前并没有数据积压;原先的数据抓取能力,大约是 100w~200w TPS原先有7台服务器,每台服务器开启了一个ftp服务,用于接收数据,同时每台服务器上有一个 greedy 进程在进行数据抓取,现在7台变为5台;小文件数增多,大约每秒100~200个,大小在几十K左右(以往情况不清楚)二、最终优化效果优化前,4月30日一天的数据抓取量为4.4亿行,即5093TPS,单
2020-08-27 21:40:02
321
原创 2019-05-10 honest profiler 编译、打包、使用记录
https://github.com/jvm-profiling-tools/honest-profiler背景使用 profiler 进行 Java 性能分析的时候,占用时间最长的是 epollWait,据说是 profiler 本身抽样的时候的问题(这个回头再搞清楚具体原因)。所以使用 honest-profiler,即 hprofilerHonest profiler相比于其他的 sampling profilers,有以下两个优势:1.It accurately profiles app
2020-08-27 21:14:23
428
原创 2019-05-29 Elasticsearch 存储数据量优化
386个标准csv文件,9列,912M,6839927行,如果是默认index的配置进入es,即5个shards,1个replica,那么占用 3.2G的空间。估算方法:原始文件一份,倒排索引文件一份,1个replica导致数据量再次翻倍,总共大约4倍900M * 4 = 3.6G 。 与实际的 3.2G相差不大那么如何压缩占用的磁盘空间呢?1. 减少replica通过下面的方式,设置0个replica,1个shard(因为只有一台机器,多shard也没用)PUT _template/&l
2020-08-27 21:02:44
988
原创 2019-06-14 Windows Unix OSX各操作系统下的换行符
文章目录Unix、Windows、OSX系统下的换行符如何查看换行符VIM下切换换行符切换成Mac系统切换成Dos系统换行符不同会带来的问题用VIM打开换行符为CR的文件对文件的处理Unix、Windows、OSX系统下的换行符Windows系统下,换行是<回车换行>(Carriage Return and Line Feed,即 CRLF):CR - \r,在ASCII字符表里的编号是13,用二进制表示即 0x0dLF - \n,在ASCII字符表里的编号是10,用二进制表示即 0x
2020-08-27 20:52:54
519
原创 2019-10-24 maven 新建工程时卡顿的问题
问题描述使用maven新建一个工程或者模块的时候,执行下面的命令,总会需要很长时间的等待:$ mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false...[INFO] Generating project in Batch mode... (长时间停顿)不是搞不定,只是会花费很长时
2020-08-27 20:28:11
214
原创 2019-10-11 Top 命令
VIRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:resident memory usage 常驻内存1、进程当前使用的内存大小,但不包括swap out2、包含其他进程的共享3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反4、关于库占用内存的情况,它只统计加载的库文件所占内存大小SHR:sha
2020-08-27 20:24:00
151
原创 2019-11-18 WSL tail -f 命令失效
tail -f命令可以滚动查看文件不断更新的信息,尤其在查看日志上很有用。但是在WSL(Windows Subsystem for Linux)中,却有可能无法正常工作。经查找发现,Linux是通过inotify来获取文件变动的,但是我使用的WSL因为Bug,感知不到文件变动,造成此问题。解决办法:tail -f ---disable-inotify info.log注意,disable前面是3个横杠。此外,Windows 10更新版本,添加了inotify支持。https://www.so
2020-08-27 20:17:16
850
原创 2019-10-28 VMware从主机访问不了虚拟机里的Web服务
安装了VMware之后,装了一个CentOS 7 的虚拟机,然后启动Web服务:python -m SimpleHTTPServer一个简单的 Http 服务,可以查看当前文件夹里的内容。但是从主机这里访问不到。这里使用的是桥接模式。主机到虚拟机虚拟机到主机pingokok访问Web服务nooktelnetnonosshokno关键在于可以从主机到虚拟机,可以ping通,可以ssh连接,说名网络连接没问题,22端口没问题,那为什么 80
2020-08-27 20:02:36
875
原创 2018-11-08 读《累死你的不是工作,而是工作方式》有感
读 https://mp.weixin.qq.com/s/2r6WyPOoGL-7ag-iI3j0FQ 有感01 问题1:只关注任务,不关注目标假如你的老板正在飞机上,还有1小时落地,下来之后需要给客户做一个重要汇报,而你需要给他做一份PPT。但因为你错估了时间,导致PPT草草做完,而且发现其中一些数据没有,你怎么办?低效人士的做法是:疯狂地找数据,最后可能数据有了,然而PPT没有来得及做完,或者质量不高。一般人的做法是:找人帮自己一起找数据。而最高效的那些人,会根据老板此次汇报的目的,判断这
2020-08-27 19:45:19
746
原创 2019-10-11 Spring Boot之DevTools热部署
用Intellij进行开发时,直接启动Spring的Application,然后修改代码,可以自动重启,不需要停下来、打包、运行。在 pom.xml 里增加一个依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true
2020-08-27 19:32:25
150
转载 2018-09-14 不吹不擂,你想要的Python面试都在这里了【315+道题】
各位大佬暂时先来315道题尝尝吧,后面有时间再继续补充。有缘人如果看到这些题,不妨留言一下答案,来证明下你到底有多水,哈哈哈哈哈哈哈哈哈哈哈第一部分 Python基础篇(80题)1、为什么学习Python?2、通过什么途径学习的Python?3、Python和Java、PHP、C、C#、C++等其他语言的对比?4、简述解释型和编译型编程语言?5、Python解释器种类以及特点?6、位和字节的关系?7、b、B、KB、MB、GB 的关系?8、请至少列举5个 PEP8 规范(越多越好)。9、
2020-08-26 17:43:29
173
原创 2018-06-29 Kafka入门
摘自: Kafka quick start目标了解Kafka的基本概念:topic,partition,brokers,replicas,isr,producer,consumer,consumer group,connectors,stream processors 等等配置config/zookeeper.propertiesdataDir=/tmp/zookeeperclientPort=2181maxClientCnxns=03个kafka集群config/server.prop
2020-08-26 17:39:11
116
原创 2018-06-12 Python里的数值交换
曾经被问到 “Python里 a, b = b, a” 是怎么实现的?准备工作在回答这个问题之前,先介绍一个库 - dis。使用这个库,可以更清楚地看到Python是如何实现数值交换的。dis.dis([bytesource])Disassemble the bytesource object. bytesource can denote either a module, a class, a method, a function, or a code object.For a module,
2020-08-26 17:33:49
275
原创 2018 Mossad Challenge
2018 Mossad挑战,目的是招聘。以下来自百度百科 - Mossad摩萨德(Mossad),全称为以色列情报和特殊使命局(The Institute for Intelligence and Special Operations),由以色列军方于1948年建立,以大胆、激进、诡秘称著于世。与美国中央情报局、苏联国家安全委员会和英国军情六处,并称为“世界四大情报组织”。自从成立以来,摩萨德进行了多次让世界震动的成功行动。它的成功,成为世界情报史上的传奇。第一个页面https://www.r-
2020-08-26 17:24:26
282
apache_hbase_reference_guide.pdf
2019-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅