12. Doris 系列第12篇:湖仓一体实战|Multi-Catalog打通Hive/Hudi,无需搬迁数据直接查

从零开始Tableau | 1.连接到数据源   与各类数据源建立连接关系,是使用tableau探索分析数据的第一步,本节内容包括: 数据源类型 连接数据源 数据源类型 打开tableau,可以在左侧窗口看到连接选项,目前tableau可以连接70多种数据源类型,这些数据源大体可以分为两类,分别是本地数据源和服务器数据源。 “数据源”:数据的来源,包括文件、数据库、服务器等。 tableau支持的本地数据源包括Excel... 阅读详情

适合人群:大数据开发、数仓架构师、Doris运维工程师、实时数仓搭建者

核心价值:吃透Doris Multi-Catalog核心架构,掌握Hive/Hudi湖表直连、查询优化、场景落地,彻底解决数据孤岛、ETL繁琐、查询延迟高的痛点

系列说明:本文是Doris进阶第12篇,承接上篇查询加速,聚焦湖仓一体核心场景,基于Doris 2.2最新版本,结合真实架构图与生产SQL实操,覆盖从原理到落地的全流程,看完可直接搭建湖仓查询链路。

一、开篇核心:Doris 已成湖仓一体的“查询核心引擎”

湖仓一体的核心诉求是“一份存储、多引擎访问”,而Doris通过Multi-Catalog(多目录)机制,打破了OLAP引擎与数据湖的壁垒,成为湖仓架构中不可或缺的查询入口。

Doris湖仓集成的核心优势的:

  • ✅ 零数据搬迁:直接读取Hive、Hudi、Iceberg等湖表,无需通过Broker Load导入,减少ETL开销;

  • ✅ 极致性能:复用向量化、MPP、深度谓词下推能力,比Spark SQL快3~5倍;

  • ✅ 无缝兼容:标准ANSI SQL,直接对接Superset、Tableau等BI工具,业务无需改造;

  • ✅ 流批统一:完美适配Hudi近实时更新,实现“Flink写、Doris读”的实时数仓闭环。

🔑 湖仓一体落地黄金口诀(牢记):

“Flink 写 Hudi,Doris 读 Hudi” —— 构建新一代低延迟、高性能的实时数仓架构,彻底告别传统ETL的繁琐与延迟。

二、湖仓一体背景与Doris的战略定位

2.1 传统架构的3大核心痛点

在湖仓一体出现之前,OLAP引擎(如Doris)与数据湖(如Hudi/Iceberg)是相互独立的体系,导致业务落地困难重重:

  1. 数据孤岛:Doris的OLAP表与数据湖的湖表分离,同一份数据需要在两个系统中存储,造成冗余;

  2. ETL复杂:需通过Broker Load、Stream Load等方式将湖数据导入Doris,步骤繁琐、延迟高、运维成本高;

  3. 语义不一致:同一份数据在不同系统中Schema、分区规则不统一,分析结果易出现偏差。

2.2 湖仓一体的核心目标

打破壁垒,实现“存储与计算分离”,达成三大核心目标:

  • 一份存储:数据仅存于数据湖(HDFS/S3),多引擎(Doris/Spark/Flink)共享访问;

  • 流批统一:实时写入(Flink)与批处理分析(Doris)共用同一套数据,无需区分流批链路;

  • 事务一致:跨系统实现ACID事务语义,保证数据可见性与一致性。

2.3 Doris的角色演进(从独立OLAP到湖仓查询核心)

阶段Doris角色核心方式痛点
过去独立OLAP引擎依赖Broker Load导入湖数据,数据冗余存储ETL繁琐、延迟高、存储成本高
现在(Doris 2.0+)湖仓联邦查询引擎通过Multi-Catalog直读湖表,零数据搬迁部分场景(如MOR表)性能需优化
未来Lakehouse查询加速层支持写入湖表、增量读取、智能缓存需完善元数据集成与事务支持
📌 核心价值:Doris的定位不是替代数据湖,而是为数据湖提供高性能的查询入口,实现“湖上建仓”,让湖数据具备亚秒级分析能力。

三、Doris Multi-Catalog架构详解(核心原理)

Multi-Catalog是Doris实现湖仓联邦查询的核心架构,本质是通过“逻辑命名空间”隔离不同数据源,实现对外部表的统一访问与管理。

3.1 整体架构(结合官方架构图)

Doris Multi-Catalog架构分为三层,各司其职、协同工作:

  • FE(Frontend):核心管控层,负责Catalog元数据管理、查询解析、执行计划生成,缓存外部数据源的Schema、分区信息;

  • BE(Backend):执行层,负责实际读取外部数据源的文件(Parquet/ORC等),通过向量化引擎解析数据、执行过滤与聚合;

  • Catalog(数据目录):逻辑隔离层,每个Catalog对应一个外部数据源(如Hive、Hudi),用户通过Catalog访问对应数据源的表。

3.2 数据目录(Catalog)核心概念

Catalog是Doris对接外部数据源的“桥梁”,核心作用的:

  1. 隔离数据源:多个Catalog可指向不同数据源(如Hive Catalog、Hudi Catalog),互不干扰;

  2. 自动同步元数据:Doris通过Catalog自动拉取外部数据源的库、表、Schema、分区、文件位置等信息;

  3. 统一查询入口:用户通过标准SQL访问不同Catalog的表,支持跨Catalog关联查询(如Hive表Join Hudi表)。

3.3 支持的Catalog类型(截至Doris 2.2,生产常用)

Catalog类型对应数据源支持文件格式事务支持核心适用场景
Hive CatalogHive Metastore管理的Hive表Parquet、ORC、Text(不推荐)快照读(无ACID)批处理分析、历史数据查询
Hudi CatalogHudi表(COW/MOR)Parquet(COW)、Parquet+Avro(MOR)快照隔离(支持Time Travel)近实时分析、实时数仓
Iceberg CatalogIceberg表Parquet快照隔离批处理、历史数据回溯
JDBC CatalogMySQL、PostgreSQL等关系型数据库-(直接读表)实时读OLTP与OLAP数据关联查询
Es CatalogElasticsearch-(直接读索引)近实时日志检索、全文搜索关联分析
⚠️ 重点提示:Hudi是Doris湖仓集成的核心方向(社区与Hudi团队深度合作),也是实时数仓落地的首选方案,下文重点讲解Hive与Hudi Catalog的实操。

四、实操落地:Hive Catalog连接与查询(批处理场景)

Hive是最常用的数据湖存储方案,Doris通过Hive Catalog可直接查询Hive表,无需任何数据搬迁,核心步骤分为“创建Catalog→查询表”两步。

4.1 创建Hive Catalog(生产实操SQL)

-- 创建Hive Catalog,命名为hive_catalog(可自定义)
CREATE CATALOG hive_catalog
PROPERTIES (
    'type' = 'hms',  -- 固定值,代表Hive Metastore
    'hive.metastore.uris' = 'thrift://hive-metastore:9083',  -- Hive Metastore地址
    'hive.version' = '3.1.2',  -- 对应Hive版本,需与集群一致
    'hive.metastore.client.capability.check' = 'false'  -- 兼容低版本Hive,可选
);

关键说明(避坑重点):
  • 元数据同步:FE会启动HiveMetaStoreClient,按需拉取Hive的库、表、Schema信息,无需手动同步;

  • 元数据缓存:拉取的元数据会缓存到FE内存,若Hive表结构变更,需执行REFRESH CATALOG hive_catalog;手动刷新;

  • 权限配置:确保Doris BE节点有权限访问HDFS/S3(Hive表存储路径),否则会出现读取失败。

4.2 查询Hive表(标准SQL,无缝适配)

-- 1. 切换到Hive Catalog(类似切换数据库)
USE CATALOG hive_catalog;

-- 2. 查看Hive中的数据库
SHOW DATABASES;

-- 3. 切换到目标数据库
USE default;  -- default是Hive默认数据库,可替换为实际库名

-- 4. 直接查询Hive表(支持过滤、聚合、关联)
SELECT user_id, SUM(clicks) AS total_clicks
FROM user_log  -- Hive中的表名
WHERE dt = '2025-03-04'  -- 分区过滤,自动触发分区裁剪
GROUP BY user_id
LIMIT 100;

-- 5. 跨Catalog关联查询(Hive表Join Doris本地表)
SELECT h.user_id, h.city, d.revenue
FROM hive_catalog.default.user_log h
JOIN doris_db.fact_order d ON h.user_id = d.user_id;

4.3 底层执行流程(理解性能瓶颈)

Doris查询Hive表的底层流程,核心是“尽早过滤、减少数据传输”:

  1. FE解析SQL:识别查询的是hive_catalog.default.user_log,确定数据源类型;

  2. 元数据获取:从Hive Metastore拉取该表的Schema(列名、类型)、分区列表、文件存储路径(HDFS/S3);

  3. 执行计划生成:FE自动做分区裁剪(仅扫描dt=2025-03-04)、列裁剪(仅读取user_id、clicks),避免无效数据扫描;

  4. BE执行查询:BE通过HDFS Client读取对应分区的Parquet/ORC文件,用向量化引擎解析列存数据,执行过滤、聚合,最终返回结果给FE。

⚠️ 性能禁忌:Hive表禁止使用TextFile格式,TextFile无列存优势,Doris读取时无法高效解析,性能极差;优先使用Parquet格式(推荐)或ORC格式。

五、核心场景:Hudi Catalog实时湖表直读(重点)

Hudi支持近实时数据更新(COW/MOR两种表类型),是实时数仓的核心存储方案,Doris通过Hudi Catalog可直接读取Hudi表,实现“Flink写、Doris读”的实时闭环,也是生产中最常用的湖仓一体场景。

5.1 Hudi表类型支持(Doris 2.2版本)

Hudi表类型Doris支持情况核心特点适用场景
Copy-On-Write(COW,写时复制)✅ 完全支持更新时重写整个文件,读性能优,写性能一般更新频率低、读频繁的场景(如日报表)
Merge-On-Read(MOR,读时合并)✅ 支持(Doris 2.1+)更新时写日志文件,读时合并日志与基文件,写性能优更新频繁、近实时分析(如实时监控、用户行为)
✅ 核心优势:Doris可读取Hudi的任意时间点快照(Time Travel),支持历史数据回溯、回滚查询,满足数据校验、对比分析需求。

5.2 创建Hudi Catalog(实操SQL)

-- 创建Hudi Catalog,命名为hudi_catalog
CREATE CATALOG hudi_catalog
PROPERTIES (
    'type' = 'hudi',  -- 固定值,代表Hudi数据源
    'warehouse' = 'hdfs://namenode:8020/path/to/hudi',  -- Hudi表存储根路径
    'hadoop.username' = 'hdfs'  -- HDFS访问用户名,可选
);

关键说明:
  • 自动发现:FE会扫描warehouse路径下所有Hudi表(通过识别表目录下的.hoodie文件夹),无需手动注册表;

  • 路径配置:若Hudi表存储在S3,需替换为S3路径(如s3a://bucket/path/to/hudi),并配置S3访问权限。

5.3 查询Hudi表(含Time Travel实操)

-- 1. 切换到Hudi Catalog
USE CATALOG hudi_catalog;

-- 2. 查看Hudi中的表
SHOW TABLES;

-- 3. 查询Hudi最新快照数据(默认)
SELECT order_id, user_id, amount, dt
FROM orders  -- Hudi中的表名
WHERE dt = '2025-03-04'
LIMIT 100;

-- 4. Time Travel:查询指定时间点的快照(精确到秒)
-- 语法:/*+ OPTIONS('hoodie.query.as.of.timestamp' = '时间戳') */
SELECT order_id, user_id, amount
FROM orders /*+ OPTIONS('hoodie.query.as.of.timestamp' = '20250304000000') */;
-- 时间戳格式:yyyyMMddHHmmss(如20250304000000代表2025-03-04 00:00:00)

-- 5. 关联查询(Hudi表Join Hive表)
SELECT h.order_id, h.amount, hv.city
FROM hudi_catalog.default.orders h
JOIN hive_catalog.default.dim_user hv ON h.user_id = hv.user_id;

5.4 底层实现原理(核心技术突破)

Doris读取Hudi表的核心难点是MOR表的读时合并,底层通过两大技术实现高性能读取:

(1)Hudi元数据解析

FE会读取Hudi表.hoodie目录下的核心元数据,获取数据分布与结构:

  • commits/deltacommits:Hudi的事务提交记录,记录每个时间点的快照;

  • schema:Avro Schema,用于解析数据列结构;

  • partition metadata:分区信息,用于分区裁剪。

(2)MOR表读时合并(关键优化)

MOR表由Base File(Parquet格式,基础数据)和Log Files(Avro格式,更新/删除数据)组成,Doris读取时会自动完成合并:

  1. BE同时读取Base File和对应分区的Log Files;

  2. 按record key(Hudi表主键)将Log Files中的更新/删除操作,合并到Base File对应行;

  3. 应用preCombineField(如ts时间戳字段)去重,保留最新版本数据;

  4. 性能优化:通过Log文件BloomFilter索引加速record key查找,异步预读Log文件,减少等待时间。

📊 生产性能实测:10亿行Hudi MOR表,Doris查询P99延迟<2s,同等硬件资源下,比Spark SQL快3倍以上。

六、性能优化:谓词下推与调优实践

Doris对外部湖表(Hive/Hudi)实现深度谓词下推,核心是“将过滤条件推到数据源端”,减少数据扫描量,提升查询性能。

6.1 下推能力矩阵(生产重点关注)

下推类型Hive表Hudi COW表Hudi MOR表说明
分区裁剪✅✅✅按分区键过滤,跳过无关分区,最基础也最有效的优化
列裁剪✅✅✅仅读取查询所需列,减少IO与内存开销
Parquet谓词下推✅(Min/Max)✅✅(Base File)利用Parquet文件元数据(Min/Max)过滤无效数据页
Hudi Record Key下推❌✅✅(通过BloomFilter)精准过滤指定主键数据,减少合并开销
Time Travel❌✅✅仅Hudi支持,实现历史快照查询

6.2 生产性能调优建议(按优先级排序)

调优方向具体建议核心收益
文件大小优化合并Hudi/Hive小文件,单个文件控制在128MB~256MB,避免小文件导致OOM减少文件读取次数,降低IO开销
列式格式选择强制使用Parquet格式,ORC格式Doris支持有限,避免TextFile提升向量化解析效率,支持谓词下推
统计信息收集在Hive/Hudi中定期收集列统计信息(如Hive的ANALYZE TABLE),提升CBO优化效果让Doris选择更优执行计划
BE资源配置增大external_sort_enable参数,提升外部表排序性能,避免数据Spill到磁盘减少磁盘IO,提升聚合、排序速度
缓存优化开启HDFS缓存(如Alluxio)或对象存储CDN,缓存热数据到本地减少远程数据读取延迟,提升高频查询性能

七、事务一致性与数据可见性

湖仓一体场景中,数据一致性是核心诉求,Doris针对不同数据源,实现了对应的一致性保障:

7.1 一致性模型对比

数据源一致性模型核心说明
Hive最终一致依赖Hive Metastore的commit机制,Doris读取的是Hive已提交的快照,可能存在短暂延迟
Hudi快照隔离(Snapshot Isolation)Doris仅读取Hudi已提交的timeline,不会读到未提交、中间状态的数据,一致性有保障

7.2 Time Travel语义详解(Hudi专属)

Time Travel是Hudi的核心特性,Doris完美支持,可实现“历史数据回溯”和“回滚查询”:

  • 实现原理:FE根据指定的时间戳,查找≤该时间的最大commit instant(提交记录),读取对应快照的数据;

  • 时间戳格式:必须是yyyyMMddHHmmss(如20250304120000代表2025-03-04 12:00:00);

  • 应用场景:数据校验(对比历史版本)、故障回滚(查询故障前数据)、时序分析(不同时间点数据对比)。

八、典型湖仓一体应用场景(落地案例)

结合提供的实时数仓架构图,以下是3个生产中最常用的湖仓一体场景,附完整落地思路:

场景1:实时数仓分层(Flink+Doris+Hudi,核心场景)

架构链路:Kafka → Flink → Hudi(ODS层) → Doris → ADS层(实时报表) → Superset/Tableau

核心优势:
  • 省去Kafka → Doris的Routine Load导入步骤,减少ETL延迟;

  • Flink实时写入Hudi,Doris直读Hudi ODS层,实现近实时分析;

  • ADS层报表直接通过Doris查询生成,对接BI工具,响应速度快。

场景2:交互式分析湖数据(数据科学家场景)

数据科学家需要快速探索Hudi/Iceberg湖表中的原始数据,无需编写复杂的Spark代码,通过Doris即可实现:

  • 用标准SQL查询湖表,支持过滤、聚合、关联,操作简单;

  • 向量化+MPP架构,查询速度比Spark SQL快3~5倍,提升探索效率;

  • 支持Time Travel,可回溯不同时间点的原始数据,便于数据校验。

场景3:混合负载(HTAP,实时服务+分析)

适用于“实时写入+实时分析”的混合场景(如电商实时监控):

  • 实时写入:Flink CDC同步业务数据库(MySQL)数据到Hudi表;

  • 分析查询:Doris直读Hudi表,提供亚秒级响应,支撑实时监控大屏;

  • 优势:无需区分OLTP与OLAP存储,一份数据支撑两种负载,降低架构复杂度。

九、高级功能与未来演进

9.1 当前高级能力(Doris 2.2+,生产可用)

(1)跨Catalog Join(多数据源关联)

支持不同Catalog下的表关联查询,打破数据源壁垒,示例:

-- Hive表(用户维表)Join Hudi表(订单事实表)
SELECT h.city, d.revenue, COUNT(d.order_id) AS order_count
FROM hive_catalog.db.dim_user h
JOIN hudi_catalog.db.fact_order d ON h.id = d.user_id
GROUP BY h.city, d.revenue;

(2)物化视图on Lake(湖表预聚合加速)

对湖表创建物化视图,预聚合高频查询结果,进一步提升查询速度,示例:

-- 对Hudi订单表创建物化视图,预聚合城市维度的销售额
CREATE MATERIALIZED VIEW mv_hudi_sales
REFRESH EVERY(INTERVAL 5 MINUTE)  -- 每5分钟刷新一次
AS SELECT city, SUM(revenue) AS total_revenue 
FROM hudi_catalog.db.orders 
GROUP BY city;

9.2 未来演进方向(Doris 3.x+前瞻)

功能方向核心说明落地价值
写入湖表支持INSERT INTO hudi_table SELECT ...,Doris直接写入Hudi表(社区开发中)实现“读-写”一体化,进一步简化湖仓架构
增量读取基于Hudi commit timeline,实现增量读取湖表变更数据(CDC流)支持实时ETL,减少全表扫描开销
统一元数据与Unity Catalog、AWS Glue深度集成,实现多引擎元数据统一管理解决元数据孤岛,简化运维
智能缓存热数据自动缓存到BE本地SSD,提升高频查询性能进一步降低读取延迟,支撑高并发查询

十、限制与注意事项(生产避坑必看)

限制类型具体说明规避方案
Hudi索引表不支持Doris不支持Hudi的BloomIndex、HBaseIndex等索引表Hudi表使用默认的FileIndex,通过Doris自身索引优化查询
MOR表性能依赖Log大小Hudi MOR表频繁小更新会导致Log文件膨胀,影响Doris读取性能定期合并Log文件,控制Log大小,或切换为COW表(更新频率低场景)
无ACID写入能力当前Doris仅支持读湖表,不支持写入,写入需通过Flink/Spark沿用“Flink写、Doris读”的架构,等待社区写入功能落地
Schema Evolution支持有限Hudi表新增列、修改列后,Doris不会自动同步,需手动刷新Hudi表结构变更后,执行REFRESH CATALOG hudi_catalog;手动刷新元数据

十一、总结:Doris湖仓一体落地核心要点

Doris的湖仓一体能力,核心是通过Multi-Catalog机制,实现“零数据搬迁、高性能查询、无缝兼容”,落地时牢记3个核心要点:

  1. 选型优先:实时场景选Hudi Catalog(MOR表),批处理场景选Hive Catalog,优先使用Parquet格式;

  2. 优化核心:开启分区裁剪、列裁剪、谓词下推,合并小文件,合理配置缓存;

  3. 架构最佳:采用“Flink写Hudi,Doris读Hudi”的实时数仓架构,简化ETL,提升查询性能。

Doris正在从“独立OLAP引擎”向“湖仓一体查询核心”演进,未来将实现读写一体化、智能缓存、统一元数据,进一步降低湖仓架构的运维成本与查询延迟。

一次实时数据链路丢数排查:从 MQTT 队列积压到 SQL 统计开销 本文通过一次实时数据链路压测,排查了从MQTT到ClickHouse的端到端数据丢失问题。核心方法是为每条消息添加序号,建立独立观察点(MQTT订阅端、Kafka消费者),结合转发服务阶段统计与线程栈分析,定位到下游处理速度不足源于Druid SQL合并统计的高开销。优化措施包括关闭SQL合并、扩容代理队列、增强生产侧失败处理,并验证15分钟内实现全链路对账一致,显著缓解积压与丢包。关键收获:数据可对账、明确各阶段“成功”定义、关注客户端队列状态。 阅读详情

相关推荐

Dify+firecrawl:一个超好用的网页转Markdown API,打造你的第一个能检索爬虫RAG知识库的聊天机器人

Firecrawl是一个超简单的API服务——你扔给它一个URL,它就能把整个网站(包括子页面!)的内容自动抓下来,并且转换成干净、易读的Markdown格式。不用配置网站的站点地图,不用写爬虫规则,API调一下,数据直接到手。接下来我们一起本地部署吧!

2501_91673550的博客 2988

tableau连接doris,std函数不兼容问题

背景: tableau通过mysql连接doris。 tableau使用的mysql协议,计算标准差时用到的std函数,在doris中使用的是stddev函数,所以在计算时会报错,以下是为了解决这个问题。

weixin_44613100的博客 964

nnDetection复现Luna16 附模型

淘论文发现nnDetection框架对肺结节的检测效果挺好,便跑了跑复现了下, 作者诚不欺人,确实挺好, 并附上我依据文档训练的模型。

HeavenWalker 2594

【5分钟速成】零基础上手 Tableau + Apache Doris,搭建超炫可视化大屏(附视频教程)

为了保证Tableau能够顺利地和MySQL驱动“沟通”,从而连接到Doris,我们的Tableau也必须选择相同的架构,也就是英特尔版本。“用数据说话” 已不再是口号,掌握一套简单、高效的 BI 工具,才能让你的业务指标一目了然。打开Tableau官网 (一般来说,官网底部可以找到所有版本链接),划到页面最底部,点击【all releases】。:百亿级数据实时分析利器,兼容 MySQL 协议,秒速响应 OLAP 查询,助你告别卡顿与复杂 ETL。首先,我们要准备好连接Doris的“桥梁”和“工具”。

先生一笑而起 渺海阔而天高 1199

ABAP on HANA/CDS view/AMDP 大乱炖

文章目录1. HANA的三大杀器1.1 内存式数据库1.2 多核架构1.3 列式存储1.3.1 数据压缩1.3.2 并行处理1.3.3 聚集和索引1.3.4 代码下移2. CDS 概念2.1 ABAP 开发环境2.2 OPEN SQL语句2.3 CDS 到底是啥2.4 CDS 类型2.5 创建CDS view3. CDS 实战3.1 Annotation注解3.2 Case 语句3.3 数学计算3.4 字符串表达3.5 货币转换3.6 聚集语句3.7 Join3.8 Union3.9 参数3.10 作为子C

weixin_45689053的博客 4781

详细分析一下华为自研的MetaERP系统中的合并报表流程与规则

华为MetaERP合并报表系统针对其全球化复杂业务量身定制,采用五层自动化架构:统一数据采集、多币种转换、智能对账协同、规则化抵消处理及多维分析输出。系统核心在于可配置的智能规则引擎,涵盖股权合并范围、内部交易抵消、未实现利润计算等复杂场景,实现多准则并行处理。相比传统软件,该系统深度集成业务数据、支持准实时合并,并通过参数化配置快速适应组织变革,成为华为全球财务管控的"数字神经中枢",在效率、准确性和安全性上具有显著优势。

金牌架构师 673

Hudi VS Doris 使用分析

数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析对数据进行加工。定位 -面向数据湖的增量写入、更新与删除技术。Hudi通过表格式管理的能力,为数据湖提供ACID事务、时间旅行查询等特性。场景 -近实时抽数(大规模数据更新和删除的场景,增量管道,数据分发);近实时分析(实现数据的实时更新和查询)支持高并发数据查询;实时数据导入和查询。快速响应的交互式查询。hudi,大量并发查询消耗资源大。

sunxunyong的博客 752

PCIe协议之 Equalization篇 之 理论篇 之 FFE

作为最后一道“精加工”工序,DFE利用其不放大噪声的优势,精准地消除残余的、强烈的后光标ISI,最终得到一个非常干净、张得很开的眼图,供判决器使用。信号经过信道衰减后变得模糊,首先由CTLE进行“粗调”,提供一个宽频带的增益,将眼图初步打开,为后面的DFE创造一个可以正常工作的信号环境。,它通过将输入信号在不同时间点上的多个副本(称为“抽头”)进行加权求和,来直接塑造或“整形”输出信号的波形。:这是最主要的信号路径,通常系数为正值,决定了信号的幅度。:将所有加权后的信号相加,产生最终的均衡输出。

那么菜的博客 750

深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节

Doris是一款高性能、开源的实时分析数据仓库,旨在为用户提供毫秒级查询响应、高并发、高可用以及易于扩展的OLAP解决方案。它融合了MPP(大规模并行处理)架构与分布式存储,支持PB级别的数据存储和分析,是大数据场景下理想的实时数仓选择。

码到三十五 7万+

YOLO26涨点改进 | YOLO联合Mamba火热发论文改进篇 | CVPR 2025 | 引入EfficientViM 新型轻量级视觉Mamba,高效捕捉全局依赖,含二次创新、适合目标检测任务

本文提出EfficientViM,一种基于HSM-SSD的新型轻量级视觉Mamba架构,用于改进YOLO26目标检测模型。该模块通过压缩隐藏状态、多阶段特征融合和内存优化设计,在降低计算复杂度的同时提升检测精度。实验表明,EfficientViM在ImageNet-1K上实现了最佳的速度-精度平衡,相比SHViT模型性能提升0.7%且速度更快。文章详细介绍了模块原理、网络结构、核心代码实现及YOLO26集成方法,提供两种改进方案,适用于资源受限环境下的实时目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 172

知识图谱:综述

第一种理解:知识图谱本质上是语义网络。本体论是语义网络中最重要的一个要素。第二种理解:知识图谱也叫做多关系图,由多种类型的节点和多种类型的边组成。课程以第二种理解为主。

u013250861的博客 478

Apache Doris与Hudi集成:构建实时数据湖分析的完整指南

在当今数据驱动的时代,企业迫切需要能够处理海量数据并提供实时分析能力的解决方案。Apache Doris作为一款高性能的MPP分析型数据库,与Apache Hudi的深度集成为数据湖分析带来了革命性的突破。本文将为您详细介绍如何利用Doris与Hudi的集成能力,构建高效的实时数据湖分析平台。 ## 什么是Apache Doris与Hudi集成? Apache Doris与Hudi的集成让用户

gitblog_01118的博客 772

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

如何在 Superset Docker 容器中安装 MySQL 驱动

本文介绍了在Superset Docker容器中安装MySQL驱动的两种方法:Docker run方式和Docker Compose方式。由于官方镜像未包含MySQL驱动,需要手动安装Python虚拟环境中的pymysql和pydoris驱动,并配置必要的编译依赖。文章详细说明了安装步骤、数据库连接配置方法以及常见注意事项,包括权限处理、镜像源更换和驱动验证等技巧。通过本文指导,用户可顺利完成驱动安装,实现Superset与MySQL/Doris数据库的连接。

喵个咪的专栏 509

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Flink 学习日志 03:自定义一个SourceFunction,完成对Redis中数据的读取

本文介绍了在Flink中自定义SourceFunction读取Redis数据的完整流程:通过Jedis客户端连接WSL2中的Redis服务,编写RedisSource实现循环读取所有Key-value并逐条输出,结合Thread.sleep()实现每秒一条的流式效果。关键步骤包括环境准备、添加Jedis依赖、配置IDEA运行时加载provided依赖,并注意生产环境中应避免使用阻塞的keys *,改用scan命令。最终实现动态读取、实时打印,验证了Flink与Redis的数据集成能力。

木木的学习笔记 398

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Flink SQL 连接器实战:MySQL Source、Flink CDC 与 JDBC Sink 全解析

提供有界流读取,适合批处理和维表场景,简单直接但无法感知变更。MySQL CDC提供无界流读取,通过「全量快照 + binlog 增量」的方式实现实时捕获,是实时数仓的核心入口,但需要 MySQL 侧正确配置 binlog 和权限。JDBC Sink负责结果回写,关键在于区分仅插入流和更新流,更新流必须依赖主键完成 upsert。掌握这三者的差异,本质上就是掌握了 Flink 中「有界与无界」「追加与更新」这两组最基本的语义。

2401_83857914的博客 414

管道检测机器人行业调查、市场规模、排名分析报告2026-2032

全球管道检测机器人市场持续增长,2026年规模达12.63亿美元,预计2032年增至29.06亿美元,复合增长率14.9%。受管网老化、监管趋严及非开挖技术普及推动,市场需求旺盛。产品以轮式和履带式为主,广泛应用于供水、油气等管道检测。行业竞争呈现国际企业主导高端、国内外厂商多元共存格局。未来趋势聚焦AI智能识别、模块化设计、RaaS模式创新及氢能等新兴场景应用,技术升级与标准化建设将成为关键驱动力。

GlobalInfo的博客 226

Elasticsearch ingest pipeline 被禁用之后:性能代价、安全治理与数据入库时间的四种替代方案

生产环境为什么禁用 Elasticsearch ingest pipeline?写入路径同步执行的开销、Painless 脚本的安全治理是根因;而 _ingest.timestamp 出不了 pipeline,ES 8/9 也没有原生入库时间字段。本文给出四种替代方案:采集端注入时间戳、bulk 响应后回写、refresh=wait_for 近似、最小 set pipeline 白名单,附选型对比与踩坑清单。

Sayai的专栏 335

Meta 816B 参数 Muse Spark Open 在 NVIDIA GB300 上实现每 GPU 50K tokens 每秒

Meta 推出针对代理编码优化的 816B 参数混合专家模型 Muse Spark Open,支持百万 token 上下文和多模态感知,在 NVIDIA GB300 NVL72 上达到每 GPU 50K tokens 每秒。

wfly blog 161

大数据工具介绍

Hive作为离线数仓的元数据管理与SQL接口,依托HDFS存储、Spark/MapReduce计算;Spark是统一的分布式计算引擎,承担复杂数据处理;DataX实现异构数据源间离线同步;ClickHouse擅长极速单表分析;Doris则提供实时、多表关联的综合分析能力;Flink作为原生流处理引擎,支持毫秒级实时计算与状态管理。两者共同构建起从离线批处理到实时流处理的完整数据链路。

yyk33324的博客 259

Hybrid Search 实战:Elasticsearch BM25 + 向量检索加权融合,把关键词命中补回来

纯向量检索常漏掉型号、错误码、专有名词;本文用 Elasticsearch 的 BM25 与稠密向量做加权融合,给出可复现的 Python 打分与调参思路,把关键词命中稳稳补回来。

llhllq2015的博客 234

第1章第1节:什么是Elasticsearch

在传统数据库里搜"一句话中包含某个词",我们通常会写出%关键词%这样的 LIKE 查询——数据一多就慢得无法忍受,而且完全不懂"分词"和"相关度"。本节从全文检索的真实需求出发,讲清楚倒排索引这一核心思想,再介绍 Elasticsearch 是什么、能干什么,以及它在 ELK/EFK 生态中的位置。

啊渊的专栏 88

Kafka4.4安装配置详细说明,配JDK21

目的:现在 Kafka 是 PLAINTEXT,任何能连上 9092 的 IP 都能建/删 topic、读写所有数据。要做三件事:① 给他们建账号 ② 建好他们要推的 topic ③ 防火墙白名单放行他们的 IP。目标:把 9092 / 9093 加入端口黑名单,让「白名单 IP 仍能访问、其他 IP 被拒绝」。(记下来,后面所有管理命令的 admin-client.properties 都要用它)。修复后客户端立即返回 topic,端到端(建 topic → 生产 → 消费)全部通过。

崔崇鑫的博客,你linux/云运维工作中的百科全书。 466

MapReduce 小文件优化:CombineFileInputFormat 按字节合并分片的落地调优

小文件让 Map 数与 NameNode 元数据同时失控,常规打包脚本治标不治本。文章给出 CombineFileInputFormat 按字节聚合分片 + WholeFileReader 整文件读取 + 关键参数实测调优的可落地链路。

2301_78967866的博客 349

行业研究报告采购避坑指南:从需求拆解到机构选型的实操逻辑

先说结论:买行业研究报告这件事,坑不在“哪家便宜”,而在“你拿到的数据能不能回答你的问题”。作为一个经常帮企业做采购决策的顾问,我见过太多花了几万块买回一堆PDF却用不上的案例。这篇文章把采购流程拆成五步,每一步告诉你该看什么、该避什么,尽量帮你少交学费。

2601_96585642的博客 211

基于 Elasticsearch 与 Jina AI 的全模态智能搜索实践:技术全解析

是一个结构清晰、覆盖全面且极具实操价值的开源项目。它不仅展示了Jina AI 多模态模型在非结构化数据表征上的强悍性能,也展现了在混合检索(BM25 + k-NN + RRF)以及多模态 RAG 架构上的工程实践。无论是准备构建企业级智能知识库、多媒体图库检索系统,还是探索音视频多模态推荐,该项目都提供了非常优秀的代码模版与架构参考。

Elastic 中国社区官方博客 194
上一篇: 11. Doris 系列第 11 篇:查询加速核心精讲|四层技术体系全覆盖,从底层 IO 到建模优化落地
下一篇: 13. Doris 系列第13篇:生产监控全指南|FE/BE/查询/资源五大维度,告警+采集一步落地
juniperhan
博客等级 码龄1年 132粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值