1. 数据中台为什么总是“建完就凉”
我做过三个数据中台项目,两个失败了,一个勉强活着但也没达到预期。失败的那两个,一个投了八百多万,两年后团队解散;另一个更惨,上线六个月业务方就不怎么用了,日活查询量从峰值三千多掉到不足两百。这不是个别现象,圈子里聊起来,十个中台项目有七个在“半死不活”的状态。
问题出在哪?我后来复盘了很久,发现根源不在技术选型,而在一个更底层的地方:传统数据中台的设计假设,和实际业务场景之间存在结构性错位。
传统数据中台的核心逻辑是什么?是“先汇聚、再治理、后服务”。这个逻辑听起来很合理——把各业务系统的数据抽到ODS层,做清洗、标准化、建模,形成统一的数据资产,然后通过API或报表工具对外提供服务。整个链路是线性的、中心化的、重资产投入的。
但实际业务场景是什么样?业务方的需求是碎片化的、快速变化的、场景驱动的。今天运营要看用户留存,明天风控要查异常交易,后天老板要一个实时大屏。每个需求都要求中台快速响应,但传统中台的架构决定了它快不起来——每接一个新数据源要走完整的ETL流程,每改一个指标口径要动数据模型,每加一个实时场景要重新搭链路。
这就是传统数据中台失败的第一层根源:建设周期与业务节奏严重不匹配。一个典型的数据中台项目,从需求调研到一期上线,少则半年,多则一年半。等中台建好了,业务方的需求早就变了三轮。更致命的是,中台团队往往按照“平台思维”在做事情——追求数据模型的完备性、指标体系的规范性、数据质量的绝对可靠。这些目标本身没错,但在业务方眼里,他们只关心“我明天要看的那个数能不能出来”。
第二层根源是组织架构与数据架构的错配。传统数据中台通常由IT部门主导建设,但数据的使用者——运营、产品、风控、市场——分散在各个业务线。IT部门不懂业务语义,业务部门不懂数据建模,两边鸡同鸭讲。我见过一个典型案例:中台团队花三个月建了一个“用户行为宽表”,字段两百多个,结果运营方只用了其中五个字段,而且那五个字段的口径还跟业务理解不一致。这种错配导致中台的“数据资产”实际上变成了“数据负债”——维护成本高,使用价值低。
第三层根源是技术栈的刚性。传统数据中台的技术选型通常是Hadoop生态那一套:Hive做数仓、Spark做计算、HBase做存储、Kafka做消息队列。这套技术栈本身没问题,但它的运维复杂度高、资源消耗大、开发门槛也不低。一个简单的指标计算,可能要写几百行SQL,跑几个小时。业务方等不起,中台团队也疲于奔命。更麻烦的是,这套技术栈对实时场景的支持天然薄弱——Lambda架构虽然能解决一部分问题,但维护两套链路(批处理和流处理)的成本让很多团队吃不消。
第四层根源,也是最容易被忽视的,是数据治理的“过度工程化”。传统数据中台把数据治理当成一个独立的、前置的、大而全的工程来做。元数据管理、数据血缘、数据质量、数据安全、主数据管理……每个模块都要建系统、定流程、配人员。结果呢?治理工作变成了“为了治理而治理”,业务方感受不到任何直接价值。我见过一个团队,花了四个月做元数据采集和血缘分析,最后产出的血缘图谱只有数据团队自己看,业务方根本不关心。
这四层根源叠加在一起,导致传统数据中台陷入一个死循环:投入越大,期望越高;期望越高,交付越慢;交付越慢,业务方越不买账;业务方越不买账,中台团队越难证明价值;越难证明价值,越难争取资源和信任。最终,项目要么被砍,要么沦为“报表工具”或“取数机”,完全偏离了“中台”的初衷。
那有没有出路?有。最近两年,我开始尝试一种完全不同的思路:轻型AI中台。它不是传统数据中台的“升级版”,而是一种架构范式的根本转变。下面我会从架构设计、核心组件、实操落地、问题排查几个维度,把这两种架构掰开揉碎了对比,希望能给正在踩坑或准备踩坑的朋友一些参考。
2. 传统数据中台与轻型AI中台的架构对比
2.1 传统数据中台的典型架构分层与致命瓶颈
先看传统数据中台的典型架构。不管具体技术栈怎么选,大体都逃不出这几层:
- 数据源层:业务数据库、日志文件、第三方API、埋点数据等。
- 数据接入层:Sqoop、DataX、Flume、Canal等工具,负责把数据抽到中台。
- 数据存储与计算层:HDFS、Hive、Spark、HBase、Kafka等,这是重资产的核心。
- 数据治理层:元数据管理、数据质量、数据血缘、主数据、数据安全。
- 数据服务层:API网关、报表平台、自助分析工具、数据大屏。
- 数据应用层:BI、用户画像、推荐系统、风控模型等。
这个架构的问题在哪?我画过一张图给团队看,大家一眼就明白了:它是一个“漏斗形”结构。数据从上面灌进来,经过层层处理,最后从下面漏出去。每一层都要做完整的事情,每一层都要等上一层完成才能开始。数据接入要等数据源确认,治理要等接入完成,服务要等治理完成,应用要等服务上线。整个链路的延迟是以“周”甚至“月”为单位的。
更麻烦的是,这个漏斗的每一层都是“刚性”的。数据模型一旦定下来,改起来成本极高;指标口径一旦发布,调整需要走变更流程;技术组件一旦选型,替换几乎等于重做。这种刚性在业务稳定期没问题,但在业务快速变化期就是灾难。
我总结了一下传统数据中台的几个致命瓶颈:
| 瓶颈维度 | 具体表现 | 业务影响 |
|---|---|---|
| 响应速度 | 新需求平均交付周期2-4周 | 业务机会窗口错过 |
| 灵活性 | 数据模型变更需全链路回归 | 试错成本极高 |
| 实时性 | 批处理为主,实时链路维护复杂 | 实时场景支持弱 |
| 使用门槛 | 需要SQL/ETL技能 | 业务方无法自助 |
| 成本结构 | 固定资源投入大,闲置率高 | ROI难以证明 |
| 治理负担 | 治理与业务价值脱节 | 团队精力被消耗 |
2.2 轻型AI中台的核心设计理念:从“漏斗”到“网状”
轻型AI中台的设计理念完全不同。它的核心思想是:不追求大而全的统一平台,而是构建一个“能力网”,让数据、算法、业务三者以最短路径连接。
具体来说,轻型AI中台有四个关键设计原则:
第一,场景驱动,而非数据驱动。传统中台是“我有什么数据,就提供什么服务”;轻型AI中台是“业务要解决什么问题,我就快速组织数据和算法能力去解决”。这个顺序的颠倒,带来的是完全不同的建设路径。轻型AI中台不会先建一个庞大的数仓,而是先锁定几个高价值场景,围绕场景快速搭建“最小可用链路”,跑通之后再逐步扩展。
第二,算法即服务,而非数据即服务。传统中台对外提供的是“数据”——表、字段、指标。轻型AI中台对外提供的是“能力”——预测、分类、推荐、异常检测。业务方不需要关心底层数据怎么来的,只需要调用一个API,传入参数,拿到结果。这大大降低了使用门槛。
第三,轻量级存储与计算,而非重资产集群。轻型AI中台不追求PB级的数据存储,而是采用“热数据内存计算+温数据列式存储+冷数据对象存储”的分层策略。计算引擎优先选择DuckDB、ClickHouse、Polars这类轻量级、高性能的工具,而不是动辄几十个节点的Spark集群。这样做的目的是降低运维复杂度,提高资源利用率。
第四,治理内嵌,而非治理前置。轻型AI中台把数据质量检查、血缘追踪、权限控制这些治理能力“嵌入”到数据流转的每一个环节中,而不是单独建一个治理平台。比如,数据接入时自动做schema校验和空值检测,算法调用时自动记录输入输出和版本信息,API发布时自动绑定权限策略。治理不再是“额外的工作”,而是“流程的一部分”。
2.3 两种架构的逐层对比:从ODS到AI服务
为了更直观地对比,我把两种架构从ODS层到服务层逐层拆开来看。
ODS层对比:
传统数据中台的ODS层通常是“全量抽取+增量同步”,数据原封不动地落到HDFS或Hive中。优点是数据完整,缺点是存储成本高、查询效率低。轻型AI中台的ODS层更倾向于“按需抽取+实时流式”,只抽取当前场景需要的数据字段,并且优先走CDC(变更数据捕获)通道,数据落地到ClickHouse或DuckDB中,查询延迟从小时级降到秒级。
数据治理层对比:
传统数据中台的治理是“中心化”的——有一个专门的治理团队,有一套独立的治理平台,有一堆治理流程。轻型AI中台的治理是“去中心化”的——治理规则以代码形式嵌入到数据管道中,每个数据管道自己负责自己的质量检查,治理团队的角色从“执行者”变成“规则制定者和审计者”。
计算层对比:
传统数据中台的计算层以Spark为主,批处理能力强但实时能力弱,资源消耗大。轻型AI中台的计算层是“混合引擎”——批处理用Polars或DuckDB,流处理用Flink或RisingWave,机器学习用scikit-learn或PyTorch,每个引擎各司其职,通过统一的调度层协调。
服务层对比:
传统数据中台的服务层以API网关和报表工具为主,业务方需要理解数据模型才能使用。轻型AI中台的服务层以“AI Agent”和“自然语言接口”为主,业务方用自然语言描述需求,Agent自动调用底层的数据和算法能力,返回结果。这大大降低了使用门槛。
应用层对比:
传统数据中台的应用层通常是“烟囱式”的——每个应用独立开发,独立部署,独立维护。轻型AI中台的应用层是“组装式”的——应用由多个AI服务组合而成,通过低代码平台或Agent编排工具快速搭建。
2.4 架构选型的决策框架:什么场景该用什么
说了这么多对比,那到底该怎么选?我的经验是:不要非此即彼,而是根据场景成熟度和组织能力来分阶段选择。
如果你的业务场景非常稳定,数据量巨大(PB级以上),对数据一致性和完整性要求极高,团队有充足的运维能力,那传统数据中台仍然是一个合理的选择。比如金融行业的监管报送、电信行业的用户行为分析,这些场景对数据的准确性和可追溯性要求极高,传统中台的强治理能力是有价值的。
但如果你的业务场景快速变化,数据量中等(TB级以下),对实时性要求高,团队规模有限,那轻型AI中台是更务实的选择。比如互联网产品的用户增长分析、电商的实时推荐、内容平台的内容审核,这些场景需要快速迭代,传统中台的节奏跟不上。
我自己的做法是“双模并行”:核心的、稳定的、合规要求高的数据资产放在传统中台里,保证质量和安全;创新的、探索性的、快速变化的场景放在轻型AI中台里,保证速度和灵活性。两者之间通过数据虚拟化层或API网关打通,避免数据孤岛。
3. 轻型AI中台的核心组件与实操落地
3.1 数据接入:从“全量同步”到“按需流式”
传统数据中台的数据接入,通常是“全量初始化+定时增量同步”。比如每天凌晨跑一次Sqoop,把业务库的全量数据抽到Hive,然后每小时跑一次增量。这个模式的问题在于:数据延迟高(至少一小时),存储冗余大(全量数据反复存储),对业务库压力大(频繁查询)。
轻型AI中台的数据接入,我推荐“CDC+消息队列+流式处理”的组合。具体来说:
- 用Debezium或Canal捕获业务库的binlog,实时推送到Kafka。
- 用Flink或RisingWave消费Kafka消息,做简单的清洗和格式转换。
- 清洗后的数据直接写入ClickHouse或DuckDB,供上层查询和算法调用。
这套链路的好处是:数据延迟从小时级降到秒级,存储只保留最新状态(ClickHouse的ReplacingMergeTree引擎可以自动去重),对业务库的压力也小(只读binlog,不查业务表)。
实操中需要注意几个点:
注意:CDC工具对数据库版本和配置有要求。MySQL需要开启binlog并设置binlog_format=ROW,PostgreSQL需要设置wal_level=logical。上线前一定要在测试环境验证DDL变更的捕获情况,否则表结构一变,CDC链路可能断掉。
实操心得:Kafka的topic分区数不要拍脑袋定。我的经验是,按峰值吞吐量除以单分区处理能力来算。比如峰值每秒10万条消息,单分区每秒能处理2万条,那至少需要5个分区。但也要考虑消费者数量,分区数最好是消费者数的整数倍,避免消费不均。
3.2 数据治理:从“独立平台”到“内嵌管道”
传统数据治理最大的问题是“治理与业务两张皮”。治理团队建了一堆规则,但数据开发团队不执行,业务方也不关心。轻型AI中台的治理思路是:把治理规则变成代码,嵌入到数据管道中,让治理成为数据流转的“自动副作用”。
具体怎么做?我举几个例子:
Schema校验:在数据接入环节,用Great Expectations或Pydantic定义每个数据源的schema约束。数据一进来就自动校验,不符合约束的数据直接进入“隔离区”,并触发告警。这样就不需要事后专门跑一个“数据质量检查”的任务。
血缘追踪:在数据转换环节,用OpenLineage或Marquez自动捕获每个任务的输入输出。不需要手动维护血缘关系,也不需要单独建一个血缘系统。血缘信息直接写入元数据存储,供查询和影响分析使用。
权限控制:在数据服务环节,用OPA(Open Policy Agent)或Casbin定义访问策略。每个API调用都自动鉴权,不需要在应用层重复实现权限逻辑。
版本管理:在算法调用环节,用MLflow或DVC记录每次调用的模型版本、参数、输入输出。这样出现问题时可以快速回溯,也方便做A/B测试。
这套做法的核心逻辑是:治理不是额外的工作,而是流程的一部分。数据工程师在写管道的时候,顺手就把治理做了;算法工程师在调模型的时候,顺手就把版本记录了。治理团队的角色从“执行者”变成“规则制定者和审计者”,效率反而更高。
3.3 计算引擎:从“重资产集群”到“轻量级混合”
传统数据中台的计算引擎以Spark为主,一个中等规模的中台通常需要几十个节点的Spark集群,资源消耗大,运维复杂。轻型AI中台的计算引擎选择更灵活,我通常推荐“三件套”:
批处理:DuckDB或Polars。DuckDB是一个嵌入式OLAP数据库,单机就能处理GB级数据,查询速度比Spark快一个数量级。Polars是一个Rust写的DataFrame库,API类似Pandas但性能高很多。这两个工具都不需要集群,单机就能跑,运维成本几乎为零。
流处理:Flink或RisingWave。Flink是流处理的事实标准,功能强大但学习曲线陡。RisingWave是一个兼容PostgreSQL协议的流数据库,可以用SQL做流处理,上手快很多。如果团队没有流处理经验,我建议从RisingWave开始。
机器学习:scikit-learn、XGBoost、PyTorch。这些工具不需要分布式训练,单机GPU就能跑大部分场景。如果数据量真的很大,再用Spark MLlib或Ray做分布式训练。
这套组合的好处是:资源利用率高,运维简单,开发效率高。一个3-5人的数据团队就能维护整套系统,不需要专门的平台运维团队。
实操中需要注意:
注意:DuckDB和Polars虽然性能好,但不支持分布式计算。如果数据量超过单机内存,就需要分片处理或换用Spark。我的经验是,单机DuckDB处理100GB以下的数据没问题,超过这个量级就要考虑分片或换引擎。
实操心得:RisingWave的物化视图功能非常好用。你可以把常用的聚合查询定义成物化视图,RisingWave会自动增量更新。这样业务方查询时直接查物化视图,延迟从秒级降到毫秒级。
3.4 AI服务层:从“API网关”到“Agent编排”
传统数据中台的服务层以API网关为主,业务方需要知道调用哪个API、传什么参数、返回什么格式。这要求业务方有一定的技术能力,使用门槛较高。
轻型AI中台的服务层以“AI Agent”为核心。Agent是一个智能代理,它可以理解自然语言,自动调用底层的数据和算法能力,返回结果。业务方只需要用自然语言描述需求,Agent自动完成剩下的工作。
举个例子:业务方说“帮我查一下过去一周华东地区销售额下降的原因”。传统中台的做法是:业务方自己写SQL查数据,然后自己做归因分析。轻型AI中台的做法是:Agent自动调用销售数据API获取数据,调用归因分析算法做分解,调用可视化服务生成图表,最后返回一个完整的分析报告。
这套做法的技术栈包括:
- LLM:GPT-4、Claude、文心一言等,负责理解自然语言和生成回复。
- Agent框架:LangChain、AutoGen、CrewAI等,负责编排工具调用。
- 工具层:数据查询API、算法服务API、可视化API等,Agent可以调用的具体能力。
- 记忆层:向量数据库(如Chroma、Milvus),存储历史对话和知识,让Agent有上下文记忆。
实操中需要注意:
注意:Agent的可靠性是最大的挑战。LLM可能会“幻觉”,调用不存在的工具或传错参数。我的做法是:给每个工具定义严格的输入输出schema,Agent调用前先做参数校验,调用后做结果校验。如果校验失败,Agent自动重试或降级到人工处理。
实操心得:Agent的提示词工程很关键。我通常会把业务规则、数据字典、常见问题都写进系统提示词里,让Agent有足够的上下文。另外,我会给Agent设置“思考链”,让它先分析需求,再选择工具,最后生成回复。这样比直接让Agent生成回复的准确率高很多。
4. 实操案例:从零搭建一个轻型AI中台的MVP
4.1 场景选择与需求拆解
假设我们要为一个电商平台搭建轻型AI中台的MVP。场景选择很重要,不要贪大求全,先选一个高价值、可量化、数据可获取的场景。
我选的是“实时用户流失预警”。这个场景的价值很明确:在用户即将流失时及时干预,降低流失率。数据可获取:用户行为日志、订单数据、客服记录。可量化:流失率降低多少个百分点,挽回多少GMV。
需求拆解:
- 实时监控用户行为,识别流失信号(如连续N天未登录、浏览时长下降、加购未支付等)。
- 对高风险用户,自动触发干预策略(如发优惠券、推送消息、客服回访)。
- 跟踪干预效果,持续优化模型。
4.2 技术选型与架构设计
基于前面的设计原则,我选择以下技术栈:
| 组件 | 选型 | 理由 |
|---|---|---|
| 数据接入 | Debezium + Kafka | 实时捕获业务库变更 |
| 流处理 | RisingWave | SQL做流处理,上手快 |
| 存储 | ClickHouse | 列式存储,查询快 |
| 特征工程 | Polars | 单机高性能,API友好 |
| 模型训练 | XGBoost | 表格数据效果好,训练快 |
| 模型服务 | FastAPI + ONNX | 轻量级,部署简单 |
| Agent编排 | LangChain | 生态成熟,工具多 |
| 可视化 | Streamlit | 快速搭建交互界面 |
架构设计:
- 业务库的binlog通过Debezium捕获,推送到Kafka。
- RisingWave消费Kafka消息,做实时清洗和聚合,写入ClickHouse。
- 定时任务从ClickHouse读取数据,用Polars做特征工程,用XGBoost训练流失预测模型。
- 模型导出为ONNX格式,用FastAPI提供预测服务。
- LangChain Agent调用预测服务,结合业务规则生成干预策略。
- Streamlit搭建监控界面,展示流失预警和干预效果。
4.3 关键环节实现与参数计算
流失标签定义:这是最关键的一步。我定义“流失”为“连续14天未登录且未下单”。这个阈值怎么来的?我分析了历史数据,发现用户连续14天不活跃后,回流概率低于5%。所以14天是一个合理的阈值。
特征工程:我选了以下几类特征:
- 行为特征:最近7天登录次数、浏览时长、加购次数、收藏次数。
- 交易特征:最近30天订单数、客单价、退款率。
- 互动特征:最近30天客服咨询次数、评价次数、分享次数。
- 时间特征:注册天数、上次登录距今天数、上次下单距今天数。
模型训练:用XGBoost做二分类,正样本是流失用户,负样本是活跃用户。正负样本比例约1:10,我用scale_pos_weight参数调整权重。训练集和测试集按时间划分,避免数据泄露。AUC达到0.85,KS达到0.42,效果还不错。
干预策略:Agent根据预测概率和用户价值,自动选择干预策略:
- 概率>0.8且用户价值高:客服回访+大额优惠券。
- 概率>0.8且用户价值低:推送消息+小额优惠券。
- 概率0.5-0.8:推送消息+积分奖励。
- 概率<0.5:不干预,继续观察。
参数计算示例:假设我们有100万用户,流失率10%,即10万流失用户。模型召回率70%,精确率60%。那么模型能识别出7万流失用户,其中4.2万是真正的流失用户。干预成本假设每人5元,干预成功率20%,挽回用户平均价值200元。那么:
- 干预成本:7万 × 5元 = 35万元
- 挽回用户:4.2万 × 20% = 8400人
- 挽回GMV:8400 × 200元 = 168万元
- ROI:168万 / 35万 = 4.8
这个ROI是可以接受的。当然,实际计算要考虑更多因素,比如干预疲劳、自然回流等。
4.4 上线部署与效果验证
部署方面,我用Docker Compose编排所有服务,单台16核64G的服务器就能跑起来。Kafka、RisingWave、ClickHouse各占一个容器,FastAPI和Streamlit各占一个容器。整个系统资源占用约30%,还有余量。
效果验证方面,我做了A/B测试:将用户随机分为实验组和对照组,实验组接受Agent干预,对照组不接受。运行两周后,实验组流失率比对照组低3.2个百分点,统计显著。这个结果让业务方很满意,后续又追加了预算做二期。
实操心得:MVP阶段不要追求完美。我的第一版模型只用了5个特征,AUC只有0.72,但已经能产生业务价值。后来逐步加到20个特征,AUC提升到0.85。关键是先跑通链路,再优化效果。
5. 常见问题与排查技巧实录
5.1 数据接入环节的典型问题
问题一:CDC链路延迟越来越高。
现象:Kafka消息堆积,数据延迟从秒级涨到分钟级。排查思路:先看Kafka的消费者lag,如果lag持续增长,说明消费速度跟不上生产速度。再看RisingWave的并行度,如果并行度太低,可以增加并行度。最后看ClickHouse的写入性能,如果写入慢,可以调整batch size或增加分区。
我的经验是:Kafka的消费者数量不要超过分区数,否则会有消费者空闲。RisingWave的并行度建议设置为Kafka分区数的整数倍。ClickHouse的写入batch size建议在1000-5000条之间,太小会导致频繁写入,太大会导致内存压力。
问题二:CDC捕获不到DDL变更。
现象:业务库加了一个字段,但CDC链路没有捕获到,导致下游数据缺失。排查思路:检查CDC工具的配置,看是否开启了DDL捕获。Debezium默认会捕获DDL,但需要配置include.schema.changes=true。另外,某些数据库的DDL变更不会写入binlog,比如MySQL的ALTER TABLE ... ADD COLUMN在某些版本中不会记录。
我的做法是:在业务库变更流程中增加一个“通知CDC”的步骤,业务方加字段后,手动触发一次schema刷新。虽然麻烦一点,但能保证数据一致性。
5.2 数据治理环节的典型问题
问题三:数据质量规则太多,告警疲劳。
现象:每天收到几百条数据质量告警,大部分是误报,团队逐渐忽略告警。排查思路:检查告警规则是否过于严格,比如空值率阈值设得太低。另外,检查告警是否没有分级,所有告警都发到同一个渠道。
我的做法是:把告警分为P0、P1、P2三级。P0是影响核心业务的,立即处理;P1是影响非核心业务的,当天处理;P2是观察类的,每周汇总。另外,告警规则要定期review,把误报率高的规则调优或下线。
问题四:血缘关系不准确。
现象:血缘图谱显示某个表被下游依赖,但实际上游已经不用了。排查思路:检查血缘采集是否覆盖了所有数据管道。有些团队用SQL解析做血缘,但SQL解析对动态SQL和存储过程支持不好。
我的做法是:用OpenLineage在数据管道运行时自动捕获血缘,而不是事后解析SQL。OpenLineage可以捕获Spark、Flink、Airflow等任务的运行时血缘,准确率高很多。
5.3 AI服务环节的典型问题
问题五:Agent调用工具失败率高。
现象:Agent经常调用不存在的工具,或者传错参数。排查思路:检查工具定义的schema是否清晰,参数名是否容易混淆。另外,检查Agent的提示词是否足够明确。
我的做法是:给每个工具写详细的描述,包括功能、参数、返回值、示例。在提示词中明确告诉Agent“只能调用已注册的工具”。另外,加一层参数校验,如果参数不合法,直接返回错误信息给Agent,让它重新调用。
问题六:模型预测延迟高。
现象:Agent调用预测服务时,响应时间超过5秒。排查思路:检查模型大小和推理框架。如果模型太大,可以量化或剪枝。如果推理框架太重,可以换ONNX Runtime或TensorRT。
我的做法是:用ONNX Runtime做推理,比原生PyTorch快2-3倍。另外,把模型加载到内存中,避免每次请求都重新加载。如果延迟还是高,可以用批处理,把多个请求合并成一个batch。
5.4 常见问题速查表
| 问题现象 | 可能原因 | 排查步骤 | 解决方案 |
|---|---|---|---|
| CDC延迟高 | 消费速度慢 | 查Kafka lag、RisingWave并行度 | 增加消费者、提高并行度 |
| DDL捕获不到 | CDC配置问题 | 查CDC配置、数据库binlog设置 | 开启DDL捕获、手动刷新schema |
| 告警疲劳 | 规则太严、无分级 | 查告警规则、告警渠道 | 调优规则、分级告警 |
| 血缘不准 | 采集方式问题 | 查血缘采集方式 | 用OpenLineage运行时采集 |
| Agent调用失败 | schema不清、提示词不明 | 查工具定义、提示词 | 完善schema、明确提示词 |
| 模型延迟高 | 模型大、框架重 | 查模型大小、推理框架 | 量化剪枝、换ONNX Runtime |
6. 我踩过的坑和最后的建议
做轻型AI中台这两年,我踩过的坑不比做传统中台少。说几个印象深刻的。
第一个坑是过度追求实时。刚开始做的时候,我觉得所有数据都要实时,所有计算都要流式。结果链路复杂得要命,运维成本飙升,业务方其实只需要小时级的数据。后来我学乖了,先问业务方“这个数据延迟多久你能接受”,再决定用批还是用流。大部分场景,小时级延迟就够了,没必要上实时。
第二个坑是Agent的“万能”幻觉。我一开始觉得Agent什么都能干,把一堆工具都注册进去,结果Agent经常选错工具。后来我做了减法,每个Agent只负责一个场景,工具不超过5个。这样准确率反而高了。
第三个坑是忽视数据安全。轻型AI中台因为轻量,很容易忽视权限控制。我有一次把测试环境的API暴露到公网,虽然没造成损失,但吓出一身冷汗。后来我加了API网关鉴权、数据脱敏、审计日志,才算放心。
如果让我给正在考虑轻型AI中台的朋友一个建议,那就是:从一个小场景开始,快速跑通,拿到业务价值,再逐步扩展。不要一上来就搞大平台,不要追求技术先进性,不要忽视治理和安全。中台的本质是“服务业务”,不是“展示技术”。
最后分享一个我常用的判断标准:如果一个中台项目,业务方主动来问“能不能加个功能”,而不是你追着业务方问“你们要不要用”,那这个中台就成功了一半。