java锁的学习笔记 发表于 2021-05-24 | 分类于 java synchronized与reentrantLock的性能差距结论:在JDK 1.6之后,虚拟机对于synchronized关键字进行整体优化后,在性能上synchronized与ReentrantLock已没有明显差距,因此在使用选择上,需要根据场景而定,大部分情况下我们依然建议是synchron ... 阅读全文 »
数据平台-数据服务应用架构 发表于 2021-05-23 | 分类于 系统架构 四层架构 service层的业务逻辑处理入参业务逻辑将前端入参参数转换成不同的业务逻辑对应的参数: 不同的参数对应不同的模块:比如聚合分析和明细表格 不同的参数对应不同的分析维度:比如说汇总维度和细分维度 不同的参数对应不同的分析指标:比如说销售指标、客诉指标等 将处理之后的参数封装成下层统一使 ... 阅读全文 »
Doris日周月维度表的创建 发表于 2021-05-17 | 分类于 doris 日、周、月维度是拆分成单独的表存储还是一张表存储 根儿上是一个写入和查询的权衡问题(存储压力其实可以忽略,因为周月维度数据量不大): 多张表:写入压力大、查询压力小; 一张表:写入压力小、查询压力大。 只能通过具体的案例来得到一个经验值: 数据量超过多大之后,适合用一张表,此时压力主要在写 ... 阅读全文 »
未命名 发表于 2021-05-14 connection&session&querydatasource -> sessionFactory(mybatis) -> sqlSessionTemplate -> session -> query session涉及到事务,还会有PlatformTr ... 阅读全文 »
Doris数据建模知识点 发表于 2021-04-21 | 分类于 doris 规范建模篇 【强制】分区字段和分桶字段不能是同一个字段,分区字段作为分桶没有意义了,容易造成数据倾斜 【强制】建表必须写表的comment和字段的comment,而且需要是跟业务对应的有意义的comment,平台的建表页面可以直接同步hive表的字段comment,推荐使用 【强制】doris表模型 ... 阅读全文 »
elasticsearch bkdtree学习笔记 发表于 2021-04-12 | 分类于 elasticsearch 为什么需要bdk tree普通的字符串类型的term,倒排索引采用的数据结构是FST前缀索引和后缀词块,针对某个term的查询能够很快的定位到对应的文档列表;但是该数据结构不适合于数字类型的字段的range查询,早期的es对于这种查询,也是转化成范围内的所有term的查询,比如说range[1,50 ... 阅读全文 »
研究elastic rest client的路由查询机制 发表于 2021-04-09 | 分类于 elasticsearch 黑名单机制 每次查询轮询每个节点,当某个节点查询失败之后,会被加入黑名单中 某个节点查询成功之后,会将该节点从黑名单中移除 每次重新嗅探之后,会清空黑名单 也就是说,黑名单是针对那些能嗅探到,但是访问失败的节点 12345678// 查询的时候,会将restclient中的节点,踢除黑名单中的节点 ... 阅读全文 »
线上gc问题排查方案 发表于 2021-03-31 | 分类于 gc 背景:线上es节点出现fullgc,导致整个查询不可用;因为es节点的堆内存非常大,通过dump的方式拿到的文件有几十个G,本身的dump过程也是非常慢的,所以需要采用一些及时的命令去分析出现fullgc的时候的堆内存中对象的情况,比如说jvm的命令、arthas等。 jvm分析命令: jma ... 阅读全文 »
Doris存储与索引模型 发表于 2021-03-31 | 分类于 doris 针对聚合模型的分析 列式存储,每个列单独存储 数据排序,每个列的数据都根据agg key的顺序进行存储 前缀索引,将agg key组合到一起,取前36个字节,创建一个前缀索引 为什么每一列都需要按照agg key进行排序最左匹配的时候查找很快,比如说agg key的组合是:bu_id、cat1_ ... 阅读全文 »