- 博客(84)
- 资源 (19)
- 收藏
- 关注

原创 Java集合原理及特点
Java的集合类被定义在Java.util包中,主要有4种集合,分别为List、Queue、Set和Map.List是很常用的数据类型,是有序的集合,一共有三个实现类,分别是ArrayList、Vector和LinkedList。Set 的核心特性是独一无二,适用于存储无序且值不相等的元素.1.HashMap:数组+链表存储数据,线程不安全ConcurrentHashMapHashTable红黑树...
2022-06-28 11:07:33
345
原创 日志检索场景ES->Doris迁移最佳实践:函数篇
说明:和term区别可以理解为term是精确查询,这边match模糊查询;match会对my ss分词为两个单词,然后term对认为这是一个单词。
2023-11-27 16:48:26
1100
原创 Doris workload group实战
2.给用户赋予数据库权限全局开启,已经开启的话就不用再执行了创建workload group5.给用户赋予WORKLOAD权限
2023-09-01 09:50:52
1691
原创 Doris行权限入门实战
具体做法为:用户在指定表上创建安全策略并授权到具体的用户,当用户查询数据的时候查询规划会对SQL进行改写,将用户的安全策略注入到SQL中,改写后的SQL会携带用户的行权限。在表test.table1 上创建一个名称为test_row_policy_1的ROW POLICY,并将POLICY绑定在用户test_user上。Doris支持了行级数据权限,当多租户模式使用的是共享表模式的情况下该功能能很方便的帮用户数实现行级权限控制。Doris的行级权限是通过安全策略(ROW POLICY)实现的。
2023-08-31 12:06:09
1162
原创 Doris动态表使用快速入门实战
半结构化数据,是介于结构化和非结构化之间的数据。和普通纯文本相比,半结构化数据具有一定的结构性。和结构化数据相比,其结构变化复杂,我们又不能方便的使用结构化的方式去描述它。半结构的数据中通常即包括数据本身,也包括数据结构的描述。数据结构自描述:结构与数据相融合在一起,一条数据即包括“元数据”也包括“数据”。数据结构复:数据结构难以纳入现有的各种描述框架,实际应用中不易进行清晰的理解与把握。数据结构描述的动态性:数据变化通常会导致结构模式变化,整体上具有动态的结构模式。
2023-06-08 22:47:31
1991
原创 Doris半结构化数据分析(倒排索引使用)快速入门
Apache Doris2.0 基于Apache Doris向量化MPP引擎,增加了倒排索引和半结构化JSON数据支持,更好地满足日志存储、检索、分析需求。说明:建表语句中的 …是特殊语法,用于声明可以自动感知数据结构的变化。可以看下新增的log_type字段已经被自动识别。
2023-06-08 22:39:19
1910
原创 如何在高配置服务器上跑出Doris的性能
该配置是在10个32core,128GB,每个服务器挂着5个1TB磁盘。每秒写入80w数据的集群上的实测的配置。#控制每个内核运行工作的线程数。通常选择 2 倍或 3 倍的内核数量。这使核心保持忙碌而不会导致过度抖动。#Cumulative Compaction线程池中线程数量的最大值。#Base Compaction线程池中线程数量的最大值。1.BE、FE调优参数添加,比如数据库最大事务.
2023-04-17 17:24:30
1674
1
原创 Flink SQL Print
应安全部门要求,系统对taskmanager.log日志展示数据条数进行了限制。如果您有排查脏数据或特定数据等需求,建议在Where条件中指定业务场景相关条件后,进行print操作,以避免因为2000条的数据条数限制导致无法排查。因为print sink数据输出为info日志,所以如果您需要查看print结果表的结果数据,则需要将日志级别调至info。否则,会查不到结果数据。
2023-02-15 13:05:20
2870
原创 Apache Flink X Apache Doris构建极速易用的实时数仓架构
Doris针对不同的应用场景提供了不同的数据模型,分别为:明细模型,主键模型和聚合模型。明细模型:明细数据存储(日志分析、行为分析)主键模型:相同key的数据覆盖更新(订单状态、用户状态)聚合模型:相同key列value列合并(报表统计、指标计算)
2023-02-14 15:52:35
4435
原创 敏捷开发宣言
□个体与交互高于流程和工具流程和工具总是有助于完成项目。项目利益相关者作为项目的一部分,明白如何实施计划,以及如何在项目交付工具的帮助下交付成功的结果。但是项目交付的主要责任是人员及其协作。□软件高于详尽的文档。对于产品的开发来说,文档始终是必不可少的过程。过去,许多团队只专注于收集和创建文档库,例如高层次设计、详细设计和设计变更等,这些文档以后会有助于实现对产品的定性和定量描述。使用敏捷方法论,可以专注于可交付的产品。因此,根据这条宣言,我们需要文档。但是,还需要定义有多少文档对产品的持续交付至关重
2022-12-21 22:46:53
246
原创 Doris DUPLICATE KEY数据更新&覆盖方案
因为业务侧存在数据口径和ETL出错的问题,需要对数据历史部分数据进行删除后重新生成并写入的需求。
2022-12-05 16:58:59
2243
原创 Doris DUPLICATE KEY数据覆写方案
因为业务侧存在数据口径和ETL出错的问题,需要对数据历史部分数据进行删除后重新生成并写入的需求。
2022-12-05 16:57:25
1285
原创 phi增量故障检测器设计原理
phi增量故障检测器概念phi增量(φ-accrual)故障检测器不是将节点故障视为二元判断问题(即进程只能处于两种状态:在线或宕机),而是用连续范围来捕获被监视进程崩溃的概率。它的工作方式是维护一个滑动窗口,从对等进程收集最近心跳的到达时间。该信息用于估算下一个心跳的到达时间,将该近似值与实际到达时间进行比较,并计算可疑程度φ:代表在给定当前网络条件下,故障检测器对故障的置信度。phi增量故障检测器原理该算法的原理是:收集和采样到达时间,创建出一个可用于对节点健康状况做出可靠判断的视图,然后使用这些
2022-10-23 15:39:55
341
原创 Doris物化视图使用实战
物化视图是将预先计算(根据定义好的 SELECT 语句)好的数据集,存储在 Doris 中的一个特殊的表。物化视图的出现主要是为了满足用户,既能对原始明细数据的任意维度分析,也能快速的对固定维度进行分析查询。
2022-10-21 14:21:16
304
1
原创 Doris Broker Load入门实战
Doris安装参照官网:https://doris.apache.org/zh-CN/docs/get-starting/get-starting.html#%E5%8D%95%E6%9C%BA%E9%83%A8%E7%BD%B2。具体参加:https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Manipulation-Statements/Load/BROKER-LOAD。查看HDFS目录,确保HDFS服务正常。
2022-10-21 13:58:14
1509
原创 一致性语义说明:严格一次,至少一次,最多一次
严格一次关于是否可以做到严格一次传递(exactly-once delivery)指的消息只严格传递一次到接收方并能成功被接收方处理。至少一次由于链路故障可能导致传递消息的第一次尝试无法成功,因此大多数实际的系统都采用至少一次传递(at-least-once delivery),它确保了发送方将重试直到收到确认为止,否则就认为对方没有收到该消息。最多一次最多一次(at-most-once):发送方仅仅发送消息而不期待得到任何确认。什么是共识?为了确保严格一次传递,各节点需要一个共识:每个节点都
2022-10-19 08:12:48
774
原创 分布式系统常见故意及解决思路
什么是级联故障?我们做不到总是完全隔离故障:被高负载压垮的进程会增加集群其余部分的负载,从而使其他节点更有可能发生故障。级联故障能够从系统的一部分传播到另一部分,扩大了问题的范围。有时,级联故障甚至可能来源于完全善意的目的。例如,某个节点离线了一段时间,因而没有接收到最近的更新。当它恢复在线时,乐于助人的其他节点希望帮助它追赶上最近的变化,于是开始向它发送缺失的数据,而这又导致网络资源耗尽,或是导致该节点启动后短时间内再次发生故障。通过熔断器防止故障扩散为了防止系统的故障扩散并妥善处理故障场景,我们
2022-10-18 23:32:49
278
1
原创 常用故障模拟工具
1:Toxiproxy用于模拟网络问题:限制带宽、引入延迟、超时等。2:Chaos Monkey的方法更为激进,它通过随机关闭服务使工程师直面生产环境故障风险3:CharybdeFS模拟文件系统及硬件错误与故障。4:CrashMonkey是一个与文件系统无关的记录–重放–测试框架,用于测试持久性文件的数据及元数据一致性。可以用这些工具来测试软件,以确保在这些故障出现时软件仍能正确工作。
2022-10-18 23:05:39
636
原创 队列在分布式系统&多进程&多线程中的作用
任务解耦使接收和处理在时间上分开,并各自独立发生。流水线化(pipline)编程不同阶段的请求由系统中独立的部分处理。负责接收消息的子系统不用阻塞到上一条消息处理完成。流量削峰填谷(流量优化)系统负载可能经常变化,但是请求到达的间隔时间对负责处理请求的组件是隐藏的。总体的系统延迟会由于排队而增加,但这通常仍比响应失败并重试请求更好。队列大小取决于工作负载和应用程序。对于相对稳定的工作负载,我们可以通过测量任务处理时间以及各任务的平均排队时间来确定队列大小,从而确保在提升吞吐量的同时,延迟仍保持在
2022-10-18 22:43:59
117
原创 数据库的写缓冲、不可变性和有序性
写缓冲增加内存缓冲区总是对写放大有积极的影响。在像WiredTiger和LA树这样使用原地更新的数据结构中,内存缓冲区有助于通过合并多个相同页的写入来均摊它们的开销。换句话说,缓冲有助于减少写放大。不可变数据结构在不可变数据结构中(如多组件LSM树和FD树),缓冲具有类似的积极作用,但是以未来发生的重写为代价,这些重写发生在将数据从一个不可变的层移动到另一个不可变层时。换句话说,使用不可变性可能会将写放大延迟。同时,使用不可变性对并发性和空间放大有积极的影响,因为所讨论的大多数不可变结构使用的页是全满
2022-10-18 00:05:25
198
原创 LSM树中的并发技术解密
LSM树并发的难点LSM树中的并发挑战主要与切换表视图(在刷写和压缩过程中更改的内存驻留表和磁盘驻留表的集合)和日志同步有关。memtable通常也是并发访问的。LSM树并发需要遵守的原则1.新的memtable必须对读写可用。2. 旧的(正在刷写的)memtable必须对读保持可见。3. 正在刷写的memtable必须写到磁盘上。4. 丢弃已经刷写的memtable与创建刷写磁盘驻留表这两个操作必须被原子地执行。5. 预写日志中,记录之前曾应用于被刷写memtable的操作的日志段必须被
2022-10-15 23:16:15
416
原创 布隆过滤器原理和使用
LSM读放大问题背景LSM树中读放大的来源是,我们必须寻址多个磁盘驻留表,以便完成读取操作。这是因为我们不一定能预先知道一个磁盘驻留表是否包含要搜索的键指向的数据记录。LSM使用bloomfilter减少数据扫描防止表查询的方法之一是在元数据中存储其键的范围(存储给定表中的最小和最大键),并检查要搜索的键是否在该表的范围之内。这一信息是不精确的,它只能告诉我们数据记录是否可能会出现在表中。为了改进这种情况,包括Apache Cassandra和RocksDB在内的许多实现都使用一种称为布隆过滤器(Bl
2022-10-15 17:16:28
633
1
原创 RUM猜想
有一种流行的存储结构开销模型考虑了如下三个因素:读取(Read)、更新(Update)和内存(Memory)开销,它被称为RUM猜想。*** RUM猜想指出,读取(Read)、更新(Update)和内存(Memory)开销减少其中两项开销将不可避免地导致第三项开销的恶化,并且优化只能以牺牲三个参数中的一个为代价。***B树的RUM我们可以根据这三个参数对不同的存储引擎进行比较,以了解它们针对哪些参数进行了优化,以及其中隐含着哪些可能的权衡。一个理想的解决方案是拥有最小的读取开销,同时保持较低的内存与写
2022-10-15 00:11:54
279
原创 数据库中的读写放大与空间放大
在实现最优compaction策略时,我们必须考虑多个因素。一种方法是回收重复记录占用的空间,减少空间开销,但这会产生由不断重写表导致的更高的写放大。替代方案是避免连续重写数据,而这又增加了读放大(在读取期间协调关联到相同键的数据记录的开销)和空间放大(因为冗余记录会被保存更长时间)。读放大:由为了检索数据而需要读取多个表所引起。写放大: 由compaction过程中不断进行的重写所引起。空间放大由: 存储关联到同一键的多个记录所引起。
2022-10-15 00:04:11
1886
Cassandra实战
2018-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人