Doris 混合负载性能瓶颈剖析与架构重构方案
本文由 Google Gemini 生成,仅供参考。 问题背景 本文是对近期数据仓库建设过程中,Doris 集群在高并发、混合负载下查询性能严重不稳定问题的深度复盘。集群的核心使命是同时承载后台批量的 ETL 任务与前台高并发的即席查询及报表任务。我们观察到,在 ETL 高峰期,查询服务的 Latency 和稳定性急剧下降,严重影响了数据消费端的体验。 ...
DBT 数仓设计
本文由 Google Gemini 生成,仅供参考。 背景与痛点分析 当前项目的数据 ETL 流程高度依赖于在 DolphinScheduler 上调度的一系列独立 SQL 脚本,主要痛点包括: 逻辑重复与不一致:相同的业务逻辑在多个脚本中被反复复制粘贴,导致维护成本高,且存在逻辑不一致的风险。 隐晦的依赖关系:表间依赖完全由 DolphinScheduler 的 DAG 图“人肉”维护,追溯困难且容易出错。 数据一致性风险:由多个 INSERT 语句构成的任务,不具备原子性,若中间步骤失败,目标表将处于数据被部分加载的“脏”状态。 性能瓶颈担忧:对于数据量大的 ETL,将多个数据源的处理逻辑合并到一个查询中,存在内存溢出或超时的巨大风险。 调度与回溯的复杂性:当前依赖于向脚本传递 ${...} 变量来执行特定品牌或时间范围的数据回溯,方式缺乏规范,易出错。 缺乏数据质量保障:没有系统性的数据测试机制,数据问题只能在下游应用或报表中被动发现,响应滞后。 DBT 解决方案 核心原则:从“过程式”到“声明式”的思维转变 ...
Flink CDC 接入 Doris 实践
运行环境 Flink version:1.13.3 Flink CDC version:2.2.0 Doris version:PALO-0.15.1-rc09 doris-flink-connector version:1.13.5-2.12-SNAPSHOT ...
统计 HDFS 小文件
导出 FSimage hdfs dfsadmin -fetchImage meta/ 将文件转换为 csv hdfs oiv -i fsimage_0000000000616506859 -o fsimage.csv -p Delimited 将文件映射为 Hive 表 hdfs dfs -copyFromLocal fsimage.csv /tmp/fsimage.csv -- 创建meta表 CREATE EXTERNAL TABLE test.HDFS_META ( path STRING, repl INT, ModificationTime STRING, AccessTime STRING, PreferredBlockSize INT, BlocksCount INT, FileSize INT, NSQUOTA INT, DSQUOTA INT, Permission STRING, UserName STRING, GroupName STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' tblproperties ( "skip.header.line.count" = "1") -- 加载数据 load data inpath '/tmp/fsimage.csv' overwrite into table test.hdfs_meta; -- 统计sql SELECT strleft ( path, instr( path, '/', 1, 5 )- 1 ) basepath, sum( blockscount ) blockscount, sum( filesize ) filesizes, count(*) file_nums FROM hdfs_meta GROUP BY basepath ORDER BY blockscount DESC 统计如下: ...
ClickHouse 集群搭建
人群圈选业务痛点 用户标签多、标签丰富,标签列可达成百甚至上千列。 数据量庞大,用户数多,从而所需运算量也极大。 圈选条件组合多样化,没有固定索引可以优化,存储空间占用极大。 性能要求高,圈选结果要求及时响应,过长的延时会造成营销人群的不准确。 数据更新时效要求高,用户画像要求近实时的更新,过期的人群信息也将直接影响圈选的精准性。 ClickHouse 特性 优势 查询速度快 存储压缩率高,节省空间 架构简单,集群中所有节点功能相同,规避单点故障 社区活跃,应用广泛,产品成熟度高 不足 不支持事务、异步删除与更新 不适合高并发场景 不支持标准 sql,JOIN 由内部实现 集群在线扩容支持不佳,运维成本高 下载安装包 sudo yum install yum-utils sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo sudo yum install clickhouse-server clickhouse-client 文件目录 # 默认数据存储路径 /var/lib/clickhouse # 默认日志路径 /var/log/clickhouse-server # 服务端配置文件路径 /etc/clickhouse-server # 核心配置文件详解:https://www.e-learn.cn/topic/4050968 /etc/clickhouse-server/config.xml # 客户端配置文件路径 /etc/clickhouse-client 命令 # 服务端命令 service clickhouse-server start | status | restart | stop # 调试,日志打印在控制台 sudo -u clickhouse /usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml # 启动客户端 clickhouse-client --port 9003 集群部署 在群集的所有机器上安装 ClickHouse 服务端 ...
《深入理解虚拟机》笔记
内存区域 对象创建 内存分配方式:指针碰撞和空闲列表(分配方式取决于 Java 堆是否规整,即垃圾收集器是否带有空间压缩整理(Compact)的能力决定) 堆上内存分配线程安全问题 ...