包含关键字 typecho 的文章

一:为什么选择国密SSL证书?

  • 自主可控:采用国家密码管理局认定的SM2椭圆曲线算法,摆脱对国外密码技术的依赖,安全自主。
  • 合规要求:满足《密码法》、《网络安全法》、《信息安全技术 信息系统密码应用基本要求》(GB/T 39786-2021)等法律法规和标准中对采用商用密码进行数据加密的硬性要求。
  • 同等安全,更强性能:SM2算法在相同安全强度下,密钥长度更短,加解密速度更快,效率更高。
  • 双算法兼容:优秀的国密证书支持“国密+国际”双算法,可同时兼容国密浏览器(如密信浏览器)和主流国际浏览器(Chrome, Firefox等),平滑过渡。

二:国密证书申请通用流程概览

无论通过哪个平台,申请国密SSL证书通常包含以下几个核心步骤:

  1. 准备材料:确定您的网站域名,并准备好企业身份证明文件(如营业执照、组织机构代码证)。
  2. 生成密钥对:在您的服务器上,使用支持国密的密码工具生成SM2算法的证书签名请求文件
  3. 提交申请与验证:将CSR文件提交给证书颁发机构(CA),并根据证书类型(DV/OV/EV)完成域名所有权或企业组织信息的验证。
  4. 签发与下载:验证通过后,CA将签发国密SSL证书,您需要下载包含.sign(签名证书)和.enc(加密证书)的证书包。
  5. 部署安装:将国密证书部署到支持国密算法的服务器(如Nginx国密版、Tomcat国密模块等)上,并完成配置。

难点:传统流程中,生成国密CSR、配置国密环境对非专业管理员有一定技术门槛。

三:通过JoySSL申请国密证书

国密证书申请入口

1. 注册与选择

访问JoySSL官网,注册账号时填写注册码230970获取大额优惠。在产品页面选择所需的国密SSL证书类型。

2. 提交信息

填写需要绑定的域名,并根据证书等级提交相应的企业信息。

3.域名/组织验证

DV级:通过DNS解析或上传文件快速验证域名所有权。
OV/EV级:在线完成企业身份验证,流程高效。

证书签发与获取

验证通过后,在JoySSL控制台直接下载已签发的国密证书文件包。

安装部署

根据您的服务器类型(如Nginx国密版、Apache等),参考JoySSL提供的详细中文安装指南进行配置。

大型语言模型(LLM)在理解和生成上下文连贯的对话方面取得了巨大成功。然而,它们固有的“记忆缺陷”——即有限的上下文窗口——严重制约了其在跨会话、跨应用的长时间交互中保持一致性的能力。一旦对话超出上下文长度,LLM 就会像一个“失忆”的伙伴,忘记用户的偏好、重复提问,甚至与之前确立的事实相矛盾。想象一下这个场景:你告诉一个AI助手你是素食主义者且不吃乳制品。几天后,当你向它寻求晚餐建议时,它却推荐了烤鸡。这种体验无疑会削弱用户对AI的信任和依赖。
为此,PolarDB PostgreSQL版(以下简称PolarDB-PG)全新推出一站式记忆管理AI应用,使智能体能够跨会话、跨应用持续保留用户偏好、事实背景与历史交互信息,解决大模型有限上下文窗口和跨会话记忆丢失的核心痛点。

1.构建智能体记忆面临的挑战

开发、运维效率低:记忆系统构建需要选型或开发记忆引擎,对接各类数据库系统以及模型服务,开发、运维成本高;当前主流记忆框架均为检索式记忆系统,后端需要对接关系库、向量库甚至图库等多种记忆库资源,数据一致性难以保障;对于AI快速驱动业务演进而言,企业客户很难对数据库、记忆引擎、模型服务等底层设施做到完全兜底。
记忆生成、检索效果不佳:不少企业客户希望自建记忆系统,但遇到记忆事实、偏好等提取不全导致关键信息遗漏;因记忆系统整体链路长导致记忆检索延迟高,导致交互问答不流畅;对需要用户画像和记忆推理需求场景,因只能提供向量化记忆导致检索结果相关性欠强;因模型算法效果在记忆整体应用中起到十分关键的作用,模型算法与提示词配置的灵活度,也直接决定了方案迭代的速度。
系统成本压力大:随用户规模增长,系统在并发度、存储规模等方面缺乏弹性扩缩容能力;硬件、多种数据库系统、记忆引擎等多license系统,系统费用成本叠加;对于持续爆发增长的记忆库,缺乏支撑记忆生命周期管理的有效机制等。

2.PolarDB一站式记忆管理系统

针对上述挑战,PolarDB-PG推出全新AI应用——一站式长记忆管理系统正式发布上线。PolarDB-PG记忆管理真正融合了图+向量一站式记忆库 + 开放记忆引擎 + 模型算子能力,提供了全面白屏化的参数配置,提示词策略管理以及模型算法混池加速能力,支撑“记忆读写 → 上下文注入 → 模型推理 → 结果反馈”的完整闭环。一期已接入Mem0(发音为 "mem-zero")记忆引擎,兼容开源 Mem0社区生态,使智能体能够跨会话、跨应用持续保留用户偏好、事实背景与历史交互信息,从而实现真正的个性化和持续学习体验。
图片
PolarDB-PG一站式记忆管理系统架构

1、记忆引擎

目前,PolarDB-PG已支持Mem0框架,全面兼容开源项目Mem0社区生态;支持Mem0(向量基础版)和Mem0g(图增强版);对开源Mem0系统实现了系列增强,包括:中英文模型接入能力;支持根据userid多图管理功能;支持根据userid向量分区管理功能;同步、异步记忆写出能力;增加sslmode连接参数,支持ssl连接;支持提示词模版的定制优化以及Mem0企业版的部分功能对齐等。后续PolarDB-PG还将和MemOS合作,为AI构建专属的“记忆操作系统”,实现记忆全生命周期的精细化管理与动态调度。

2、一站式记忆库

PolarDB-PG向量数据库引擎 + 图数据库引擎一站式组合。其中,向量数据库引擎采用经优化的PGVector插件,PGVector在PG社区已经被广泛应用,具备十分良好的AI生态支持。图数据库引擎兼容开源AGE(A Graph Extension,为Apache软件基金会的顶级项目),且经过PolarDB-PG与云原生能力的增强融合以及在大量图客户上的多年应用改进和性能优化,不仅表现成熟稳定,且具备在百亿级规模图场景下仍然保持万级以上QPS和百毫秒以下的查询延迟的极佳表现。记忆库支持云原生集中式版本或分布式版本,无需担心扩展性风险。

3、PolarDB模型算子

统一采用PolarDB模型算子提供模型部署、推理、调度体系化能力。模型在记忆管理中扮演了核心的角色,其中:大语言模型LLM负责从用户与智能体的对话中自动提取出具有长期价值的关键事实与偏好,同时用于新记忆与已有记忆的融合(增删改)以及基于图的实体三元组信息抽取;嵌入模型EMB负责将关键信息转化为高维向量,实现高效的语义检索;Rerank模型则用于记忆召回后的精排序。模型调用和推理的效率占据了用户体验的关键一环,本方案支持多种形式的模型对接途径,包括:a. 数据库自有模型算子形式;b. 百炼模型服务形式;通过高度优化的链路,大幅提升记忆相关推理效率。

4、图形化控制台

PolarDB-PG记忆管理在PolarDB系统中属于AI应用的一种形式,提供了全面图形化的管理界面:
图片
图片
模型算法与数据库配置
图片
记忆提取策略配置
图片
记忆图谱可视化

5、AI应用构建平台

支持沿用Mem0已对接周边生态,包括:Langchain、LangGraph、AgentOps、LlamaIndex等框架/平台;支持将PolarDB记忆引擎作为插件加入到Dify框架实现任务流定制;支持与阿里云AgentRun企业级 AI Agent 一站式基础设施平台‌和AgentScope开源智能体开发框架的一体化整合应用。
图片
PolarDB记忆管理支持Dify的插件化应用

3.系统核心优势

1、端到端一站式记忆管理

开箱即用,融合记忆引擎、记忆库、模型算子服务以及KVCache加速能力,免去多系统联调、维护成本。

2、图形化配置,简单易用

控制台可视化管理多项目记忆,支持记忆引擎、模型算法、提示词策略等灵活配置;支持多项目的记忆管理能力,记忆项目配置支持完全采用图形化的界面形式;支持对记忆引擎、记忆模型算子、记忆提取策略(提示词)等选项的配置;提供极简REST API或客户端SDK,自动完成记忆事实提取、记忆增删改融合以及记忆搜索。

3、图式记忆和向量式记忆融合,记忆更准,成本更低

支持基于向量的简单记忆库模式,同时支持图(Graph)+ 向量融合的高级记忆库模式;支持图结构的关系推理(时序推理、因果推理等),记忆召回率提升40%;一站式解决图库、向量库和关系库,大幅降低TCO成本。

4、内置集成大模型推理服务,保障稳定服务

支持配置LLM、Embedding、Rerank等模型算子用于记忆生成与管理;特别采用模型算子混池架构,常规请求路由至百炼,请求规模超过百炼限定时,自动切换自有资源兜底;自有模型算子VPC内网部署,模型推理延迟相比百炼可进一步提升30%+。

5、多租户、多图粒度管理,资源可扩展

支持按项目、业务线等维度划分独立的记忆空间,保障资源隔离、数据安全与规模可扩展;支持按UserID自动切子图管理,记忆规模不受限,同等记忆规模下召回效率提升50%+。

6、百亿级记忆规模,毫秒级响应

经历百亿级规模向量、图谱数据客户最佳实践,满足万级高QPS、<50ms低延迟在线服务高标准;跨会话长记忆+会话内基于KVCache Token加速,请求延迟下降88.3%(上下文长度200k,30并发)。

4.记忆库应用场景适配

PolarDB记忆管理支持两类长记忆方案,基于纯向量记忆库方案,和向量记忆库+图记忆库的组合方案,分别适用于以下场景:

1、纯向量记忆库方案‌

  • 应用场景‌:

    • 需要快速语义检索的对话场景,例如在线客服、实时聊天机器人等。
    • 成本敏感型应用,假设需要分别采购向量数据库和图数据库两种产品或服务,采用纯向量方案能减少至少一半的产品费用支出。技术特点‌:通过LLM提取对话关键事实并向量化存储。采用动态阈值控制检索范围,平衡召回率与精准度。

2、向量记忆库+图记忆库组合方案‌

  • 应用场景‌:

    • 复杂关系推理场景:如医疗诊断(跟踪患者病史和药物相互作用)、旅行规划(整合航班、酒店、景点等关系)等。
    • 长期知识管理‌:通过三元组(实体1-关系-实体2)结构化存储知识,适合构建企业级知识库或跨会话连贯性要求高的智能助手,如需跟踪用户偏好演变关系的智能座仓AI助手、AI伴侣等,做到长期个性化服务。
    • 动态演进型系统‌:知识图谱支持增量更新和子图检索,适合业务规则频繁变化的场景(如金融风控中的动态规则库)。
  • 技术特点‌:

    • 向量库处理语义搜索,图库存储实体间关联关系。
    • 支持时间感知或因果推理的动态知识图谱更新。
    • 基于Mem0g方案,通过两阶段流水线实现结构化记忆。

两种方案的互补性体现在:向量+图虽能处理复杂关系,但检索效率上带来更大挑战;而纯向量方案在简单场景中更高效,但缺乏对深层关系的建模能力。实际部署时,可结合业务复杂度与实时性需求进行混合架构设计。

5.应用展望

目前,PolarDB记忆管理已落地新能源车企开发助手、教育伴学等场景,在文本记忆、多模态记忆等多种场景进行了全面适配,大幅提升个性化交互沉浸感。除以上场景外,PolarDB记忆管理还在企业知识库、旅游规划、电商导购、医疗陪护等多个关键领域展现出客户价值,成为推动AI应用从“对话机器人”迈向“智能伙伴”的关键基础设施。PolarDB 与 Mem0/MemOS 的深度整合,让每一位开发者都能轻松构建真正“记得住、懂你心、扛得住、响应快”的记忆系统。

6.了解更多

欢迎搜索钉钉群号:169605009089入群与技术专家交流!

在数字化浪潮席卷全球的今天,网站安全已成为每个网站运营者必须重视的核心议题。HTTP协议作为早期互联网的基础通信标准,由于缺乏数据加密机制,导致用户信息在传输过程中极易被窃取或篡改。

而HTTPS协议通过引入SSL/TLS加密层,为数据传输构建起安全通道,成为现代网站的标准配置。本文将聚焦免费SSL证书领域,以国产自主品牌JoySSL为核心案例,系统解析如何通过免费SSL证书实现网站从HTTP到HTTPS的安全升级。

一、HTTPS的核心价值:从数据安全到商业信任

1.1 数据传输的加密屏障

HTTPS通过SSL/TLS协议对传输数据进行加密,即使数据包被截获,攻击者也无法解析其中的敏感信息。这种加密机制尤其适用于涉及用户登录、支付交易、个人信息提交等场景,有效防范中间人攻击、数据窃听等安全威胁。

1.2 搜索引擎的排名偏好

谷歌、百度等主流搜索引擎已明确将HTTPS作为网站排名的重要指标。采用HTTPS协议的网站在搜索结果中更易获得优先展示,从而提升流量获取效率。数据显示,启用HTTPS后网站流量平均提升5%-15%。

1.3 用户信任的视觉标识

浏览器地址栏中的绿色安全锁图标与"https://"前缀,成为用户判断网站可信度的直观依据。这种视觉标识显著降低用户对钓鱼网站的误判风险,提升用户留存率与转化率。

二、免费SSL证书的崛起:打破安全成本壁垒

2.1 传统SSL证书的痛点

早期SSL证书市场被DigiCert、Sectigo等国际品牌垄断,单域名证书年费普遍在500元以上,通配符证书更达数千元。高昂的成本将个人站长、中小企业等长尾用户拒之门外,导致大量网站长期处于"裸奔"状态。

2.2 免费证书的破局之道

以JoySSL为代表的免费SSL证书服务商,通过技术创新与商业模式重构,实现了三大突破:

  • 零成本获取:提供永久免费的单域名证书与90天有效期的通配符证书
  • 自动化流程:从申请到部署全程线上操作,最快10分钟完成
  • 本土化服务:针对中国用户提供中文界面、专属客服与本地化OCSP验签

三、JoySSL深度解析:国产自主品牌的创新实践

3.1 品牌背景与技术架构

作为网盾安全旗下的自主品牌,JoySSL构建了"全球顶级根证书+国内多节点验签"的混合架构:

  • 根证书信任链:通过与DigiCert等权威CA合作,确保证书被所有主流浏览器与操作系统信任
  • 国产算法支持:独家提供SM2/SM3国密算法证书,满足政务、金融等行业的合规要求
  • 本地化OCSP:在国内部署OCSP响应服务器,将证书验证延迟降低至50ms以内

3.2 证书类型与适用场景

表格

证书类型验证方式有效期适用场景核心优势
DV单域名证书域名验证永久免费个人博客、小型企业官网零成本、快速签发
DV通配符证书域名验证90天中大型网站子域名保护单证书覆盖无限子域名
OV企业证书组织验证1年电商平台、企业官网显示企业名称提升信任度
国密SM2证书域名验证1年政务系统、金融应用符合等保2.0三级要求

3.3 申请与部署全流程

步骤1:账号注册访问JoySSL官网,注册时填写注册码230959可解锁永久免费单域名证书权限。注册过程需完成邮箱验证与手机号绑定。

步骤2:证书申请

  • 选择证书类型:根据需求选择DV/OV/国密等证书
  • 填写域名信息:支持单域名、通配符、IP地址等多种形式
  • 选择验证方式

    • DNS验证:添加指定TXT记录
    • 文件验证:上传验证文件至网站根目录
    • 邮箱验证:通过域名管理邮箱接收验证链接

步骤3:证书签发DV证书通常在5分钟内完成签发,OV证书需1-3个工作日人工审核。签发后可在控制台下载证书包(含.crt、.key、.ca-bundle文件)。

步骤4:服务器部署以Nginx为例的配置示例:

nginx
server {
    listen 443 ssl;
    server_name example.com;
    
    ssl_certificate /etc/nginx/cert/example.com.crt;
    ssl_certificate_key /etc/nginx/cert/example.com.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    
    root /var/www/html;
    index index.html;
}

步骤5:强制HTTPS跳转通过添加301重定向规则,确保所有HTTP请求自动跳转至HTTPS:

nginx
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

四、性能对比:JoySSL vs 国际品牌

表格

对比维度JoySSLLet's EncryptSectigo
签发速度国内节点最快5分钟全球节点平均10分钟人工审核需1-3个工作日
兼容性99.9%浏览器与设备99.8%兼容性99.9%兼容性
国密支持完整支持SM2/SM3/SM4不支持不支持
续期方式手动/自动脚本续期Certbot自动续期手动续期
技术支持7×24小时中文客服社区论坛支持付费工单支持

五、安全运维最佳实践

5.1 证书生命周期管理

  • 过期提醒:设置日历提醒或启用自动续期脚本
  • 密钥保护:将私钥存储在加密磁盘或HSM设备中
  • 吊销机制:私钥泄露时立即通过CRL/OCSP吊销证书

5.2 性能优化方案

  • 启用HTTP/2:在Nginx/Apache中激活多路复用协议
  • OCSP Stapling:减少TLS握手延迟
  • HSTS预加载:强制浏览器始终使用HTTPS访问

5.3 安全监控体系

  • SSL Labs测试:定期检测证书配置漏洞
  • 日志分析:监控异常TLS握手请求
  • 漏洞扫描:及时发现心脏滴血、POODLE等漏洞

六、行业应用案例

6.1 政务网站合规改造

某省级政府门户网站采用JoySSL国密证书后,满足《网络安全法》与等保2.0要求,实现:

  • 敏感数据传输加密率100%
  • 证书签发时间缩短80%
  • 年度安全运维成本降低65%

6.2 电商平台信任升级

某跨境电商平台部署JoySSL OV证书后,实现:

  • 支付页面转化率提升12%
  • 钓鱼攻击拦截率提高90%
  • 谷歌搜索流量增长18%

6.3 教育机构普惠计划

JoySSL推出的"教育版免费证书"已覆盖全国3000余所高校,助力:

  • 在线教学平台安全升级
  • 科研数据传输加密保护
  • 校园一卡通系统合规改造

七、未来展望:免费SSL证书的演进方向

7.1 自动化运维革命

通过ACME协议与Terraform等IaC工具,实现证书申请、部署、续期的全流程自动化。

7.2 量子安全准备

JoySSL已启动抗量子计算加密算法研究,为后量子时代的安全需求提前布局。

7.3 零信任架构融合

将SSL证书与设备指纹、行为分析等技术结合,构建动态访问控制体系。

在数字化转型的深水区,网站安全已从技术选项升级为生存刚需。JoySSL通过"免费策略+本土化服务+技术创新"的三重驱动,正在重塑中国SSL证书市场格局。对于每个网站运营者而言,选择JoySSL不仅是成本优化之举,更是构建数字信任基础设施的战略投资。从HTTP到HTTPS的跨越,只需一次免费证书申请即可实现——这或许就是数字经济时代最具性价比的安全升级方案。

在许多企业中,报表生成依然是一项典型的“高消耗”工作。

员工需要在多个系统之间反复切换,手动导出 Excel 数据,再花大量时间进行排版、核对与修正。这一过程不仅效率低、出错率高,还极易因数据更新滞后,导致月度或季度报告常常拖延到周期后半段才完成,严重影响管理层决策的时效性。

更现实的问题在于,不同部门各自为政的数据口径与呈现方式,使得报表格式五花八门,难以形成统一、专业的企业视图。这种“人为加工的数据”,正在悄然拖慢企业的运营节奏。

架构解析:自动化报表系统的三层模型

一个成熟、稳定的企业级自动化报表系统,通常建立在清晰的三层架构之上。

1. 数据采集层:系统的基础设施

这一层负责与 ERP、CRM、数据库及第三方 API 等多源系统进行自动对接,持续同步原始数据。在数据进入系统后,通常会通过自动化清洗流程完成:

  • 数据去重
  • 异常值处理
  • 字段与格式标准化

为了在保证实时性的同时降低系统负载,优秀的系统还会采用增量更新机制,仅同步发生变化的数据。

2. 逻辑引擎层:业务智能的核心

如果说数据采集层是“地基”,那么逻辑引擎层就是整个系统的大脑。在这一层,用户可以:

  • 通过可视化方式预设财务报表、合同、经营分析等模板
  • 自动完成 KPI 汇总、同比 / 环比分析、趋势计算等复杂逻辑
  • 基于角色进行字段级权限控制与数据脱敏

结合规则引擎后,系统还可以根据业务条件,自动触发报表生成与分发,实现真正的“无人值守”。

3. 文档渲染层:结果交付与合规保障

最终生成的报表,需要以合适的格式被交付和存档:

  • PDF:适用于正式文件,版式固定、不可篡改
  • Excel:便于二次分析和数据延展
  • HTML:适合嵌入系统或实时展示

同时,该层还需支持大规模并发生成、自动分发与版本管理,以满足企业在合规、审计和历史追溯方面的要求。

文档生成库对比

在确定采用 SDK 路线进行自动化报表与文档生成后,企业往往会面临一个关键问题:选择哪一套文档生成库?

市面上的主流方案,大致可以分为三类:传统开源库、老牌商业库,以及新一代面向企业场景的生成引擎。不同方案在性能、成本、可维护性和企业适配度上,差异显著。

维基百科上列出的生成方案中,对比的项有限,也无法看出具体哪款适合您,我在最近对比了ComPDF和iText生成库的功能和性能层面。结果显示ComPDF 的平均处理速度比 iText 快约7.7 倍,且稳定性更高,iText 在处理包含大量图像的 HTML 文件时会出现生成失败的情况。(查看详细文档生成的对比结果)

image.png

三种主流技术路径,如何选择?

不同企业在自动化报表上的需求差异巨大,技术选型也不存在“唯一最优解”。

方案一:基于专业 SDK 的模板生成方案

适用于财务报表、审计报告、合同与固定格式业务报告等需要高度结构化输出的场景,具有模板可控、业务人员可参与、易于维护和扩展,并能支持高并发批量生成的优点,但其局限在于当模板过于复杂时,维护成本会显著上升。

核心思路: 预先设计好模板 → 动态填充数据 → 自动输出文档

模板通常采用 Word、Excel、HTML 或 PDF,其中 HTML 和 Word 最为常见。

通过占位符(${})、表格循环、条件判断(if / else),即可实现复杂内容的动态生成。

方案二:基于专业 SDK 的代码生成方案

适用于对性能与稳定性要求极高、模板结构稳定且需大规模高并发生成的场景,优势在于性能最优、布局控制精准、系统稳定性强,主要不足是开发成本高,且难以让业务人员直接参与设计。

核心思路: 完全通过代码定义文档结构与布局。

方案三:基于 BI 工具的重应用方案

以 Power BI、Tableau、FineReport 为代表的 BI 工具,更适合构建内部分析与管理看板。适用于内部经营分析、管理层仪表盘等以数据可视化与交互分析为核心的场景,具备上手快、可视化能力强、社区生态成熟等优势,但局限在于对外部正式文档支持有限,深度定制与系统集成成本较高。

核心思路: 在 BI 平台中设计报表 → 自动导出或展示

走向 2026:AI 如何重塑报表生成?

自动化报表并不是终点,而是智能决策的起点。一个成熟的演进路径,通常经历三个阶段:

  1. 工具替代阶段:用系统替代人工操作
  2. 流程重构阶段:打通生成、审批、分发全流程
  3. 智能决策阶段:从“描述过去”走向“预测未来”

在 AI 加持下,报表系统将不再只是结果输出工具,而是能够主动发现异常、预测趋势、提供决策建议的智能助手。

在 2026 年,企业真正的竞争力,将不再取决于“有多少数据”,而取决于将数据转化为洞察的速度与智能程度。

原文链接:https://tecdat.cn/?p=44958
原文出处:拓端抖音号@拓端tecdat

封面

金融科技与AI的深度融合正重塑全球金融生态,从支付结算到财富管理,从风险控制到跨境服务,技术革新已渗透至金融产业链的每一个环节。

2025年,这一趋势呈现加速态势——AI技术占金融科技企业技术要素比例突破90%,金融AI市场规模预计四年内实现翻倍增长,专利竞争从单一技术布局转向多维度协同创新。

本报告洞察基于《毕马威:2025毕马威中国金融科技企业双50报告》《清华五道口:金融人工智能发展与安全白皮书(2025)》《复旦大学金融科技研究院:中国金融科技专利技术白皮书(2025)》《清华五道口&蚂蚁集团研究院:AI财富管理服务现状与趋势研究(2025)》和《埃德加-邓恩公司:2026年高级支付与金融科技报告》等行业研究报告及数据,本文完整报告数据图表和文末400+份最新参考报告合集已分享在交流群,阅读原文查看、进群咨询,定制数据、报告和800+行业人士共同交流和成长。

作为产业经济与商业分析从业者,我们将从市场规模、专利格局、场景应用、区域分布、人才需求五大维度,拆解金融AI的发展脉络与实践价值,既追溯技术演进的“前世今生”,也为创业者、金融机构从业者、投资者提供可落地的行动指引。

一、市场规模爆发:AI成金融科技核心增长引擎

2025年,中国金融AI行业正迎来规模化落地与价值兑现的关键节点。成本端,大模型API调用成本较2024年下降超50%;应用端,AI从智能客服等外围环节,深度渗透至信贷审批、投资决策等核心场景,30%以上的金融机构已实现AI规模化应用。

核心数据可视化:市场规模双重增长
图表4:中国金融行业AI投资规模预测 -折线图


中国金融行业AI投资规模预测折线图表4数据及PDF模板已分享到会员群
3秒解读:2024年投资规模196.94亿元,2027年将达415.48亿元,四年增幅111%,年复合增长率超30%。
对应人群行动建议:金融机构可加大2025-2026年AI投入,聚焦高ROI场景;创业者可瞄准中小金融机构AI转型缺口,提供轻量化解决方案。

图表9:中国金融大模型市场规模 - 折线图


中国金融大模型市场规模折线图表9数据及PDF模板已分享到会员群
3秒解读:2024年市场规模28.66亿元,同比增长80%,2025年预计突破50亿元,成为金融AI增长最快的细分领域。
对应人群行动建议:技术服务商可深耕金融大模型垂直场景优化;投资者可关注大模型训练、行业适配等产业链环节。

图表7:中国金融科技市场规模预测 - 折线图


中国金融科技市场规模预测折线图表7数据及PDF模板已分享到会员群
3秒解读:2024年市场规模3949.6亿元,2028年有望突破6500亿元,AI技术贡献核心增长动力。
对应人群行动建议:传统金融机构可将AI投入纳入长期预算;地方政府可围绕金融科技园区布局AI基础设施。
这一增长背后,是政策与市场的双重驱动。国务院《关于深入实施“人工智能+”行动的意见》明确2027年AI与金融领域深度融合目标,而金融机构对降本增效、精准服务的需求,进一步加速了AI落地。目前,超七成金融机构已从AI项目中获得投资回报,三成企业实现收入增长超10%,证明技术落地的商业价值已充分显现。


相关文章

2025金融服务行业的数据和AI现状报告330+份汇总解读|附PDF下载

原文链接:https://tecdat.cn/?p=41584


二、专利竞争:中国领跑全球,技术布局多元化

专利作为技术创新的核心指标,清晰反映了全球金融科技的竞争格局。2025年,中国金融科技专利申请量以46419件位居全球第一,超越美国成为行业创新高地,但授权率22.18%仍低于全球平均水平,多数专利尚处于审查阶段。

核心数据可视化:专利格局三大特征
图表6:各国金融科技专利申请量 - 条形图


各国金融科技专利申请量条形图表6数据及PDF模板已分享到会员群
3秒解读:中国以46419件申请量领跑,美国41464件紧随其后,韩国、日本分别以15269件、12063件位列第三、四位。
对应人群行动建议:跨国企业可加强中美技术合作;国内企业需提升专利质量,加快授权转化。

图表12:核心技术领域金融科技专利申请量 - 条形图


核心技术领域金融科技专利申请量条形图表12数据及PDF模板已分享到会员群
3秒解读:人工智能以11万件专利主导布局,区块链61618件、大数据16915件、云计算16609件紧随其后,技术融合趋势明显。
对应人群行动建议:技术研发团队可聚焦AI与区块链、隐私计算的交叉领域;专利服务商可推出金融科技专利组合服务。

图表11:人工智能在金融科技企业中的技术要素占比 - 折线图


人工智能在金融科技中技术要素占比折线图表11数据及PDF模板已分享到会员群
3秒解读:AI技术要素占比从2021年72%升至2025年92%,连续两年位居技术要素首位,成为金融科技创新核心动力。
对应人群行动建议:金融科技企业可将AI技术投入占比提升至研发预算的50%以上;高校可加强金融AI复合型人才培养。

图表2:腾讯云操作系统性能提升刻度线图


腾讯云操作系统性能提升刻度线图表2数据及PDF模板已分享到会员群
3秒解读:腾讯云操作系统在核心性能指标上实现显著突破,其中事务处理延迟降低35%,并发连接数提升42%,资源利用率优化28%,为金融AI大规模部署提供稳定底层支撑。
对应人群行动建议:金融机构可优先选择高性能云操作系统部署AI核心业务;技术服务商可参考其优化路径提升产品兼容性与效率。
从企业布局来看,中国工商银行以3353件专利申请量位居全球首位,中国银行、三星电子分列二、三位,传统金融机构与科技巨头共同主导专利竞争。区域分布上,北京、广东、上海位居国内前三,分别以12410件、7745件、3492件专利申请量形成“三极格局”,长三角、粤港澳大湾区的创新集聚效应显著。

三、场景革新:AI重塑财富管理全链条

财富管理是AI落地最成熟的金融场景之一,正经历从“工具辅助”到“智能伙伴”的跃迁。AI财富管理2.0凭借生成式AI的交互优势与非结构化数据处理能力,在个人理财与机构投研两端均实现价值突破。

核心数据可视化:财富管理AI应用深度渗透
图表1:AI在财富管理中的期望角色分布 - 横向比例条形图


AI财富管理期望角色分布横向条形图表1数据及PDF模板已分享到会员群
3秒解读:个人投资者最期望AI成为“深度剖析市场的分析师”(26.76%),其次是“规划家庭财务的规划师”(22%)和“纠正投资行为的教练”(19%)。
对应人群行动建议:理财平台可优化AI分析师功能,强化市场洞察输出;财富管理机构可推出AI+人工的混合服务模式。

图表13:AI在金融场景中的采用率 - 横向条形图


AI在金融场景中的采用率横向条形图表13数据及PDF模板已分享到会员群
3秒解读:53%的金融机构已使用AI Agent,43%应用于欺诈管理,42%用于风险管理,AI在风控领域的渗透率领先。
对应人群行动建议:风控团队可扩大AI Agent应用范围;合规部门可制定AI风控的标准化流程。

图表14:微信公众号关键运营数据柱状图


微信公众号关键运营数据柱状图表14数据及PDF模板已分享到会员群
3秒解读:微信公众号月活跃账号达350万个,月活跃粉丝近8亿,但单篇最高阅读量仅10万,用户基数与内容传播效率存在明显落差。
对应人群行动建议:内容创作者可优化选题与传播策略,聚焦垂直金融领域痛点;金融机构可借助公众号粉丝基数开展精准触达,结合AI工具提升内容互动性。
从实际应用来看,个人投资者使用AI工具的核心场景集中在“寻找和比较理财产品”(22.39%)、“学习理财知识”(21.48%)和“获取市场资讯”(21.4%),但仍有52.11%的个人投资者尚未使用AI工具,市场渗透空间巨大。机构端,超七成用户已接触AI工具,但63.7%仅停留在“偶尔使用”阶段,数据处理、报告生成等重复性工作是AI替代的核心方向。
这一现状背后,是用户对AI服务的双重诉求:一方面认可其普惠性(24.14%认为“随时随地提供服务”是核心价值)和个性化(20.69%认可“个性化投资建议”);另一方面,“不实用”(23.72%)、“不中立”(20.97%)、“缺乏共情”(12.83%)成为主要痛点。

四、区域与企业:集聚效应凸显,生态协同成趋势

2025年,金融科技AI企业的区域分布与生态布局呈现鲜明特征,头部城市集聚效应显著,企业间协同合作成为主流。

核心数据可视化:区域与企业布局特征
图表10:毕马威中国金融科技榜单企业城市分布 - 条形图


毕马威金融科技榜单企业城市分布条形图表10数据及PDF模板已分享到会员群
3秒解读:北京以31家企业位居毕马威双50榜单首位,上海24家、深圳19家紧随其后,广州、杭州各5家,形成“北上深”第一梯队。
对应人群行动建议:创业者可优先布局第一梯队城市,获取政策与资源红利;地方政府可针对第二梯队城市出台差异化招商政策。

图表3:计算机板块涨幅前五公司 - 灰底比例条形图


计算机板块涨幅前五公司灰底条形图表3数据及PDF模板已分享到会员群
3秒解读:2025年初至今,*ST迪威(103.51%)、鸿泉物联(88.63%)等AI金融相关企业涨幅领先,市场对AI+金融科技概念高度认可。
对应人群行动建议:投资者可关注中小盘AI金融科技企业;企业可加强AI业务披露,提升资本市场认可度。

图表8:计算机板块各市值区间涨跌幅 - 条形图


计算机板块各市值区间涨跌幅条形图表8数据及PDF模板已分享到会员群
3秒解读:小市值企业涨幅显著高于大市值企业,市值30亿以下企业涨跌幅达18.87%,AI投资向中小盘扩散。
对应人群行动建议:中小企业可聚焦细分场景AI创新;投资机构可加大对中小AI金融科技企业的调研覆盖。

图表17:最具影响力的支付趋势占比条形图


最具影响力的支付趋势占比条形图表17数据及PDF模板已分享到会员群
3秒解读:66%的专家认可实时和即时支付为核心趋势,55%看好移动钱包和数字支付,51%关注跨境互操作性,AI与机器学习应用占比45%,支付行业向高速、数字化、全球化演进。
对应人群行动建议:支付机构可加大实时支付技术投入;跨境企业可布局跨境互操作性解决方案,抓住全球化支付机遇。

图表18:东南亚互联网信贷贷款余额折线图


东南亚互联网信贷贷款余额折线图表18数据及PDF模板已分享到会员群
3秒解读:东南亚互联网信贷余额从2022年480亿美元增至2024年710亿美元,2030年预计达2500亿美元,年复合增长率23%,市场潜力巨大。
对应人群行动建议:跨境金融机构可布局东南亚市场,聚焦普惠信贷需求;投资者可关注当地头部信贷科技企业,把握增长红利。

图表19:东南亚保险科技保费规模条形图


东南亚保险科技保费规模条形图表19数据及PDF模板已分享到会员群
3秒解读:东南亚保险科技保费规模2022年18亿美元,2024年24亿美元,2030年预计达75亿美元,年复合增长率21%,但渗透率仅1.5-3.1%,处于发展初期。
对应人群行动建议:保险科技企业可深耕东南亚市场,推出本土化产品;政策制定者可完善监管框架,助力市场规范发展。
从生态合作来看,金融科技企业与传统金融机构的协同成为主流。90%的支付专家认为, fintechs将与传统 providers互补或合作,而非替代。例如,在跨境支付领域,fintechs凭借敏捷性优化用户体验,传统银行依托全球网络保障合规与清算,形成“敏捷创新+稳健基础”的 hybrid 模式。

五、人才与风险:软技能成招聘核心,安全治理为发展底线

随着金融AI的深度落地,人才需求与风险防控成为行业关注的焦点。2025年,金融科技行业的人才招聘与风险治理呈现新特征。

核心数据可视化:人才需求与风险防控
图表15:计划招聘的关键角色占比 - 条形图


计划招聘的关键角色占比条形图表15数据及PDF模板已分享到会员群
3秒解读:金融科技公司招聘需求中,领导/管理角色占比32%,商业角色与技术角色各占29%,产品角色26%,支持/运营角色18%,战略型与实干型人才需求并重。
对应人群行动建议:求职者可强化“技术+商业”复合能力,瞄准高需求角色;企业可优化人才结构,平衡管理、技术与产品团队配置。

图表16:招聘经理优先品质占比 - 条形图


招聘经理优先品质占比条形图表16数据及PDF模板已分享到会员群
3秒解读:92%的招聘经理将软技能列为核心考察项,85%重视适应性与学习敏捷性,仅8%关注正式认证,实战能力成为核心招聘标准。
对应人群行动建议:职场人可重点提升沟通协作、快速学习能力;培训机构可调整课程体系,强化实操训练与软技能培养。

风险提示与应对方案
  1. 模型安全风险:对抗性攻击、后门攻击等技术漏洞可能导致决策失误,例如信贷审批中高风险申请被误判。
    具体应对方案:采用对抗性训练加固模型,建立模型全生命周期安全审计机制;社群提供AI模型安全检测工具包,组织行业专家线上答疑。
  2. 数据隐私风险:金融AI处理海量敏感数据,存在数据泄露与滥用风险,尤其是跨境数据流动场景。
    具体应对方案:部署隐私增强技术(如联邦学习、差分隐私),严格遵守《数据安全法》《个人信息保护法》;社群提供数据合规自查清单,定期开展合规培训。
  3. 算法偏见风险:训练数据偏差可能导致AI决策歧视,加剧金融排斥,例如对小微企业的信贷审批偏见。
    具体应对方案:建立算法公平性评估体系,多元化训练数据来源;社群分享算法偏见案例库,提供公平性优化工具推荐。

六、核心对比与行动清单

不同报告核心数据对比表
对比主题报告1:《金融人工智能发展与安全白皮书(2025)》报告2:《2025毕马威中国金融科技企业双50报告》数据差异原因分析
金融AI技术占比未明确提及具体占比,强调AI从辅助到决策的转型AI技术要素占比2025年达92%无直接冲突,报告2提供具体数据报告1侧重安全与治理,报告2侧重企业技术布局统计
金融AI市场规模2024年196.94亿元,2027年415.48亿元未明确市场规模,提及双50企业布局数据维度不同,无冲突报告1聚焦整体市场,报告2聚焦头部企业
区域分布未明确区域数据北京31家、上海24家、深圳19家上榜报告2提供具体城市分布报告2基于榜单企业统计,报告1侧重全局趋势
可落地的3件事
  1. 金融机构:下周启动AI风控场景盘点,优先覆盖信贷审批、反欺诈两大高价值场景,参考行业标杆企业的技术架构(如“大小模型协同”模式)。
  2. 创业者:本月完成中小金融机构AI需求调研,聚焦“低成本、易部署”的轻量化解决方案,重点突破理财知识普及、市场资讯解读等用户痛点。
  3. 投资者:下月重点调研AI金融细分赛道,关注金融大模型训练、隐私计算、AI Agent应用三大方向,优先考察专利布局(尤其是人工智能、区块链领域)丰富的企业。

七、附录

核心数据表格汇总
表1:中国金融AI市场规模相关数据
年份金融行业AI投资规模(亿元)金融大模型市场规模(亿元)金融科技整体市场规模(亿元)
2023-15.92-
2024196.9428.663949.6
2025(预测)262.5851.594471
2026(预测)350.11-5066
2027(预测)415.48-5740
2028(预测)--6500
表2:金融科技专利核心数据
国家/地区专利申请量(件)授权率国内TOP3省市(件)
中国4641922.18%北京(12410)、广东(7745)、上海(3492)
美国4146455.24%-
韩国1526944.96%-
日本1206330.93%-
表3:AI财富管理应用相关数据
应用场景个人用户占比机构用户核心需求AI期望角色占比(个人用户)
寻找和比较理财产品22.39%自动化数据处理深度剖析市场的分析师(26.76%)
学习理财知识21.48%报告生成与会议纪要整理规划家庭财务的规划师(22%)
获取市场资讯21.40%精准数据调取纠正投资行为的教练(19%)
数据图表列表
  1. AI财富管理期望角色分布横向条形图表1
  2. 腾讯云操作系统性能提升刻度线图表2
  3. 计算机板块涨幅前五公司灰底条形图表3
  4. 中国金融行业AI投资规模预测折线图表4
  5. AI项目关键绩效指标华夫图表5
  6. 各国金融科技专利申请量条形图表6
  7. 中国金融科技市场规模预测折线图表7
  8. 计算机板块各市值区间涨跌幅条形图表8
  9. 中国金融大模型市场规模折线图表9
  10. 毕马威金融科技榜单企业城市分布条形图表10
  11. 人工智能在金融科技中技术要素占比折线图表11
  12. 核心技术领域金融科技专利申请量条形图表12
  13. AI在金融场景中的采用率横向条形图表13
  14. 微信公众号关键运营数据柱状图表14
  15. 计划招聘的关键角色占比条形图表15
  16. 招聘经理优先品质占比条形图表16
  17. 最具影响力的支付趋势占比条形图表17
  18. 东南亚互联网信贷贷款余额折线图表18
  19. 东南亚保险科技保费规模条形图表19

封面

本专题内的参考报告(PDF)目录
  • 财新智库:2025年低利率时期的绿色金融新理念研究报告.pdf
  • 2026-02-08 10:16
  • 联想:2026年联想算力基础设施产品集白皮书-金融行业解决方案.pdf
  • 2026-02-08 10:04
  • 华源证券-AI行业2026年海外策略报告:AI时代的能源重构与金融基础设施升级.pdf
  • 2026-02-08 09:56
  • 银行业:毕马威金融服务2026年十大趋势.pdf
  • 2026-02-05 17:31
  • 北京绿金院:2026城市更新既有建筑可持续改造路径与金融支持研究报告.pdf
  • 2026-02-04 16:35
  • 北京金融科技产业联盟:金融业数据应用发展报告(2024-2025年).pdf
  • 2026-02-01 13:34
  • 金融行业内部审计监管政策及活动在中国大陆和香港-2025年第四季度.pdf
  • 2026-02-01 13:30
  • 金科创新社:2025年度金融数据管理案例集.pdf
  • 2026-02-01 13:22
  • 金科创新社:2025年金融数据管理实践洞察报告.pdf
  • 2026-02-01 13:22
  • 知识产权出版社:金融科技行业2025年专利分析白皮书.pdf
  • 2026-02-01 13:21
  • 毕马威:2026年全球视野-金融监管新动向与风险展望报告.pdf
  • 2026-01-29 14:45
  • “乘风破浪 开拓未来”2026年金融公司年终盛典暨优秀员工表彰大会.pdf
  • 2026-01-29 14:41
  • 2026年TEZ引擎+LAKEHOUSE金融级数据中台重构创新实践报告.pdf
  • 2026-01-28 16:01
  • 2025年为充满生物多样性的未来投融资-金融机构停止并逆转生物多样性损失的关键考量报告.pdf
  • 2026-01-28 15:59
  • 谷歌云:2025年智能体时代:重塑企业未来报告-金融服务.pdf
  • 2026-01-28 15:58
  • 金融监管系列研究(二):探寻本轮公募基金监管改革的深层逻辑.pdf
  • 2026-01-28 15:52
  • 非银金融行业深度报告:金融IT的三大驱动力与投资逻辑总览.pdf
  • 2026-01-28 15:51
  • 非银金融行业深度报告:海南全岛封关运作,跨境资管空间广阔.pdf
  • 2026-01-28 15:50
  • 2026年中国金融担保行业信用风险展望.pdf
  • 2026-01-27 15:53
  • 2025年四季度内地与香港地区金融行业内部审计相关监管政策与动态.pdf
  • 2026-01-27 15:53
  • 2025金融行业薪酬报告.pdf
  • 2026-01-27 15:52
  • 5G环境下供应链金融解决方案.pdf
  • 2026-01-27 15:51
  • 金融领域数据安全运营体系化建设研究.pdf
  • 2026-01-27 15:51
  • 碳市场系列研究报告之六:转型金融助力高碳企业低碳发展.pdf
  • 2026-01-27 15:47
  • 中国银行:2026中国银行个人金融全球资产配置白皮书.pdf
  • 2026-01-25 12:40
  • 上海金融与发展实验室:2026年银行业科技金融创新与发展报告.pdf
  • 2026-01-25 12:33
  • 上海金融与发展实验室:2026不良贷款转让法律问题研究报告.pdf
  • 2026-01-25 12:30
  • 申万宏源证券:碳市场系列研究报告之六:转型金融助力高碳企业低碳发展.pdf
  • 2026-01-23 15:34
  • 2024年提前逐步淘汰燃煤电厂-开发性金融机构的作用报告.pdf
  • 2026-01-22 19:52
  • 开放金融开启新时代.pdf
  • 2026-01-21 17:43
  • EY安永:2025年四季度金融行业监管政策与处罚分析报告.pdf
  • 2026-01-21 17:37
  • 绿色金融发展报告—2025年复盘与2026年投资新逻辑.pdf
  • 2026-01-21 16:16
  • 和讯财经研究院:2026年绿色金融发展报告.pdf
  • 2026-01-21 15:25
  • 提前逐步淘汰燃煤电厂—开发性金融机构的作用.pdf
  • 2026-01-20 16:31
  • 消费金融行业2026年信用风险展望.pdf
  • 2026-01-20 16:31
  • 人工智能推动金融数据治理转型升级研究报告.pdf
  • 2026-01-20 16:30
  • 上海金司南金融研究院:2025年中小银行可持续信息披露能力提升研究报告.pdf
  • 2026-01-20 12:54
  • 上海金司南金融研究院:2025年中小银行可持续信息披露能力提升研究报告.pdf
  • 2026-01-19 16:57
  • 谷歌云:2025年AI的投资回报-金融服务领域白皮书.pdf
  • 2026-01-13 16:14
  • 毕马威:2025年毕马威中国金融科技企业双50报告.pdf
  • 2026-01-13 16:12
  • 工银亚洲研究:2026年全球金融市场展望:分化与聚焦报告.pdf
  • 2026-01-11 09:31
  • 2025年蓝色金融指引2.0-基于绿色债券原则和绿色贷款原则的蓝色经济投资指南.pdf
  • 2026-01-11 09:30
  • “对等关税”后亚太经济怎么看?-RCEP国家2025年经济金融回顾及2026年展望报告.pdf
  • 2026-01-11 09:30
  • 中国银河证券:生物多样性金融图谱:解锁自然财富,重塑增长价值.pdf
  • 2026-01-09 16:58
  • 中国人工智能产业发展联盟:金融智能体技术与应用研究报告(2025年).pdf
  • 2026-01-08 21:45
  • 埃德加-邓恩公司(EDC):2026年高级支付与金融科技报告(英文版).pdf
  • 2026-01-07 10:30
  • 中国银行全球经济金融展望报告(2026年):全球经济延续低增长态势,货币政策调整步伐出现转变.pdf
  • 2026-01-07 10:20
  • 中国银行中国经济金融展望报告(2026年):中国经济总体运行平稳,宏观政策仍需加力提效.pdf
  • 2026-01-07 10:20
  • 绿色金融简明知识.pdf
  • 2026-01-06 15:20
  • 生物多样性金融图谱:解锁自然财富,重塑增长价值.pdf
  • 2026-01-06 15:16
  • 北京金融科技产业联盟:2025年AI+Agent技术金融应用探索与实践报告.pdf
  • 2026-01-06 08:43
  • PQC-X实验室:全球金融银行业后量子安全迁移白皮书(2025).pdf
  • 2026-01-05 20:34
  • 中国信托业协会:中国信托业金融科技应用发展报告(2024).pdf
  • 2026-01-03 10:43
  • 中国信托业协会:中国信托业金融科技应用发展报告(2023).pdf
  • 2026-01-03 10:43
  • 2025年全球金融包容性报告.pdf
  • 2025-12-30 14:52
  • 中国人民银行:中国金融稳定报告(2025).pdf
  • 2025-12-29 16:00
  • 刘佐德全球经济及金融研究所:2025香港新消费模式研究报告(繁体版).pdf
  • 2025-12-29 15:59
  • openEuler系操作系统在金融行业的应用与生态白皮书2025.pdf
  • 2025-12-28 09:04
  • 北京绿色金融协会:中国银行业信贷资产碳排放研究报告2025.pdf
  • 2025-12-26 16:05
  • 2025金融网络设备应用创新白皮书-以光为翼 护航金融安全发展.pdf
  • 2025-12-25 16:45
  • 中小银行联盟:2025年中小银行数字金融发展研究报告.pdf
  • 2025-12-25 16:40
  • 2025年中国煤电行业转型金融的探索与实践报告.pdf
  • 2025-12-24 15:35
  • 金融监管总局消保中心:消费者金融素养问卷调查报告(2025).pdf
  • 2025-12-24 15:33
  • 具身智能行业研究:宇树机器人演唱会惊艳伴舞,银河通用完成3亿美金融资.pdf
  • 2025-12-24 15:29
  • “十五五”深度研究系列报告(七):如何建立“金融强国”?.pdf
  • 2025-12-22 15:10
  • 全国城市新市民数字金融服务指数报告(2025).pdf
  • 2025-12-18 14:56
  • 中国能源金融发展报告 (2025 年).pdf
  • 2025-12-18 14:50
  • 2025年山西钢铁焦化企业转型金融操作手册-通则.pdf
  • 2025-12-18 14:47
  • 2025年山西钢铁焦化企业转型金融操作手册-企业分册.pdf
  • 2025-12-18 14:47
  • 2025年山西钢铁焦化企业转型金融操作手册-金融机构分册.pdf
  • 2025-12-18 14:46
  • 农村金融科技创新专刊暨2025农村金融机构科技创新优秀案例集.pdf
  • 2025-12-18 14:42
  • 金融机构外部数据管理实践指南(2025年)-1大数据技术标准推进委员会.pdf
  • 2025-12-16 16:19
  • 2025年金融赋能中国银发经济:推动老龄社会的包容与可持续发展报告.pdf
  • 2025-12-16 16:13
  • 金融行业“十五五”展望:领航高质量发展.pdf
  • 2025-12-16 16:11
  • 2025年面向金融服务领导者的AI新前沿:从探索到实践研究报告(英文版).pdf
  • 2025-12-15 16:20
  • 金融年会尾牙年终盛典颁奖晚宴活动方案.pdf
  • 2025-12-15 16:16
  • 地方金融有为的五大模式.pdf
  • 2025-12-14 08:34
  • 中国金融智能体发展研究与厂商评估报告 (2025) .pdf
  • 2025-12-14 08:31
  • 2025+年贸易和发展报告:濒临危机——贸易、金融与全球经济重塑.pdf
  • 2025-12-12 17:03
  • 金融数字化发展联盟:2025消费金融数字化转型主题调研报告.pdf
  • 2025-12-11 16:36
  • 2025年保险作为新兴经济体金融包容性的核心要素报告(英文版).pdf
  • 2025-12-10 16:56
  • 2025年金融行业GaussDB运维白皮书.pdf
  • 2025-12-10 16:52
  • 2025新时代中国养老金融高质量发展的突破路径白皮书.pdf
  • 2025-12-10 16:51
  • 2025 年绿色金融创新研究报告.pdf
  • 2025-12-08 16:08
  • 20251205-国信证券-金融行业2026年金融机构配置行为展望:大央行下的资管生态.pdf
  • 2025-12-08 16:05
  • 合规社&原点安全:2025金融机构数据安全合规现状报告.pdf
  • 2025-12-07 10:29
  • 中国工商银行:2025半年度社会责任与可持续金融专题报告.pdf
  • 2025-12-07 10:19
  • 区域经济转型升级系列(四):浙江民营经济活跃,改革发展领先,培育金融沃土.pdf
  • 2025-12-03 15:42
  • 新乡市普惠金融政策产品手册.pdf
  • 2025-12-02 17:36
  • 新乡市绿色金融政策产品手册.pdf
  • 2025-12-02 17:36
  • 新乡市数字金融政策产品手册.pdf
  • 2025-12-02 17:36
  • 新乡市养老金融政策产品手册.pdf
  • 2025-12-02 17:36
  • 新乡市消费金融政策产品手册.pdf
  • 2025-12-02 17:36
  • 券商海外业务深度研究:大国崛起需建设金融强国,券商海外业务迎发展良机.pdf
  • 2025-12-02 17:35
  • 国合会:绿色金融推动社会经济全面绿色转型.pdf
  • 2025-11-30 09:19
  • ZYen:2025年全球绿色金融指数报告(第16期)(英文版).pdf
  • 2025-11-28 15:36
  • 统筹发展与安全筑牢金融强国根基-“十五五”时期六大重点领域安全发展路径研究报告(2025).pdf
  • 2025-11-28 15:34
  • 2025年人工智能在包容性发展领域的应用:AI赋能普惠金融研究报告(英文版).pdf
  • 2025-11-25 15:34
  • 《亚洲金融观察(2025年年报)》(中英双语).pdf
  • 2025-11-24 15:00
  • 《跨境金融便民手册》(2025年版).pdf
  • 2025-11-24 14:59
  • 财新智库:2025年金融消费趋势洞察研究报告.pdf
  • 2025-11-22 16:33
  • 2025年新加坡金融科技人才报告(英文版).pdf
  • 2025-11-22 16:32
  • “AI+金融”系列专题研究(一):行业拐点已至,金融是AI应用落地的绝佳“试验田”.pdf
  • 2025-11-21 16:34
  • 中国工商银行软件开发中心:2025年金融行业低空经济白皮书.pdf
  • 2025-11-20 15:36
  • ”骏马腾飞 共启新程“2026春节马年金融年终会议活动策划方案.pdf
  • 2025-11-18 16:26
  • 2025年服务转型金融的中国高碳行业减碳基准路径研究(第一阶段成果).pdf
  • 2025-11-17 15:12
  • 普华永道:2023年下一代微金融:数字技术的作用报告(英文版).pdf
  • 2025-11-15 15:10
  • “十五五”下金融发展机会暨2026年非银金融行业策略:新起点下的双向奔赴.pdf
  • 2025-11-14 14:10
  • 中国银行:2025年金融助力中国企业“走出去”报告.pdf
  • 2025-11-13 15:38
  • 另类数据视角下的经济洞察—卫星遥感在经济金融市场中的应用.pdf
  • 2025-11-13 15:35
  • 2025年金融类应用洞察报告:深入解析可扩展的用户获取战略.pdf
  • 2025-11-13 15:29
  • 2025年中国-巴西农业合作:价值链投资风险与绿色金融创新报告(英文版).pdf
  • 2025-11-13 15:27
  • 2025年强化中小企业可持续发展的公共金融与非金融支持:创新与良好实践研究报告(英文版).pdf
  • 2025-11-13 15:26
  • 金融机构投融资企业ESG评价指南.pdf
  • 2025-11-12 15:26
  • 自然和生物多样性金融:理论和实践.pdf
  • 2025-11-11 15:08
  • 2025年金融APP营销趋势观察-广大大.pdf
  • 2025-11-10 13:48
  • 中国普惠金融指标分析报告(2024-2025年).pdf
  • 2025-11-10 13:38
  • 2025年全球金融科技:世界格局与中国观察报告.pdf
  • 2025-11-06 16:43
  • 北京金融法院:2025证券纠纷审判白皮书.pdf
  • 2025-11-06 16:37
  • 贝莱德建信理财:2025中国养老金金融白皮书.pdf
  • 2025-11-01 22:10
  • 2025年10月气候政策与绿色金融(季报)(第十二期).pdf
  • 2025-10-31 15:15
  • 零碳倡议项目首席顾问 曹原:转型金融助力光伏行业高质量发展.pdf
  • 2025-10-31 15:11
  • 可持续银行与金融网络:2025全球进展报告.pdf
  • 2025-10-30 15:16
  • 毕马威:全球金融监管动态月刊(2025年9月刊).pdf
  • 2025-10-29 16:22
  • 柳州市工业和信息化局:2025年金融产品企业服务手册.pdf
  • 2025-10-28 16:33
  • 信创纵横:2025年数字金融信创研究报告.pdf
  • 2025-10-28 16:31
  • 2025年全渠道普惠金融营销体系建设实践报告.pdf
  • 2025-10-28 16:27
  • 2025年10月全球金融稳定报告.pdf
  • 2025-10-28 16:26
  • 日照银行(尚江峰):2025年中小银行科技金融策略、路径与实践报告.pdf
  • 2025-10-28 16:24
  • 中国金融科技专利技术白皮书(2025)-复旦大学金融科技研究院.pdf
  • 2025-10-27 16:17
  • 粤港澳大湾区自然相关风险评估和生物多样性金融解决方案-汇丰&IIGF.pdf
  • 2025-10-27 16:09
  • “监”听则明:2025年二、三季度金融业监管数据处罚分析及洞察建议报告.pdf
  • 2025-10-26 08:54
  • 中国金融生成式AI多模态内容鉴伪与安全防御报告(2025).pdf
  • 2025-10-24 14:13
  • 上海高级金融学院:践行可持续发展之路-2025上海ESG发展报告.pdf
  • 2025-10-24 14:08
  • 清华五道口:金融人工智能发展与安全白皮书(2025).pdf
  • 2025-10-22 15:29
  • 中国银行:中国银行个人金融2025年4季度资产配置策略.pdf
  • 2025-10-22 15:24
  • 华泰期货-金融时序专题报告:金融科技赋能投研系列之十七,CTA配置利器,商品策略指数.pdf
  • 2025-10-22 15:19
  • RWA:真实资产走向链上世界,开启数字金融新时代.pdf
  • 2025-10-20 14:47
  • 非银金融行业现代投资银行进化系列之四:掘金跨境资管,以香港为例.pdf
  • 2025-10-20 14:47
  • 2025年现实世界资产(RWA)代币化发展态势与风险防范研究报告-基于全球金融数字化转型背景下的系统性分析与政策建议.pdf
  • 2025-10-18 17:19
  • 2025年全球金融稳定报告:风险暗涌(10月版)(英文版).pdf
  • 2025-10-18 17:16
  • EY安永:2025年三季度金融行业监管政策与处罚分析报告.pdf
  • 2025-10-16 15:22
  • 金融资产提升趋势助推中国车市高质量发展:中国购车家庭财富洞察报告之资产负债表(2025版).pdf
  • 2025-10-15 15:28
  • 把握我国碳金融发展的未来方向与政策路径.pdf
  • 2025-10-14 15:19
  • 2025金融支持亚洲发展中国家农业绿色转型:中国购买力与绿色金融的作用报告.pdf
  • 2025-10-10 15:42
  • 金融APP应用发展与安全运行报告(2021-2024年).pdf
  • 2025-10-10 15:42
  • 2025年消费金融行业分析-联合资信.pdf
  • 2025-10-09 08:14
  • 2025年貨幣與金融穩定情況半年度報告-香港金融管理局.pdf
  • 2025-10-09 08:14
  • AFRC会计及财务汇报局:审计焦点:2025年年终审计:金融服务业(英文版).pdf
  • 2025-10-09 08:11
  • NIFD半年报:低利率时代——2025年H1中国宏观金融.pdf
  • 2025-10-05 17:07
  • 全球金融科技的未来.pdf
  • 2025-09-30 16:41
  • 金融科技研究报告【2025年第4期】AI财富管理服务现状与趋势研究.pdf
  • 2025-09-27 19:54
  • 中国银行全球经济金融展望报告(2025年第4季度):全球经济增长显现韧性,跨境资本流动呈现新特征.pdf
  • 2025-09-27 19:53
  • 中国银行中国经济金融展望报告(2025年第4季度):增长动能有所转弱,需加大政策力度以应对未来不确定性.pdf
  • 2025-09-27 19:53
  • 银行业“十五五”前瞻:金融改革新形势下的经营模式与估值重构.pdf
  • 2025-09-27 19:52
  • 碳中和气候金融实验室:北京绿色经济发展蓝皮书(2025).pdf
  • 2025-09-26 14:27
  • 第一新声:2025年中国金融业数据库国产替代能力评估报告.pdf
  • 2025-09-26 14:26
  • 2025年AI应用与行业转型:对医疗、金融服务、气候与能源及交通领域的影响报告(英文版).pdf
  • 2025-09-26 14:23
  • 2025年稳定币聚焦:驾驭新数字金融格局研究报告(英文版).pdf
  • 2025-09-26 14:23
  • 深圳高等金融研究院:2025中国ESG人才需求研究报告.pdf
  • 2025-09-23 16:43
  • 2025年金融级云上云下全链路智能可观测运维新范式报告.pdf
  • 2025-09-21 17:17
  • 金融监管有关政策汇编(2024年度).pdf
  • 2025-09-20 16:55
  • 数据资产价值释放之行业应用场景解析与合规框架——金融业.pdf
  • 2025-09-20 16:52
  • 2025基于AI大模型的金融数据中心智能网络运维应用研究报告.pdf
  • 2025-09-19 16:48
  • 上海金融高级学院:2025年中国新富人群财富健康指数报告.pdf
  • 2025-09-18 16:38
  • 绿色金融政策法规汇编(2025年版).pdf
  • 2025-09-18 16:30
  • 中国人民银行:青海省金融运行报告(2025).pdf
  • 2025-09-18 16:28
  • 2025年基于AI+agent+的金融云平台全场景运维决策机制研究报告.pdf
  • 2025-09-17 16:34
  • 联想集团(王永超):2025年AI智算引擎助力金融行业效能跃升报告.pdf
  • 2025-09-17 16:30
  • RWA的崛起与数字金融新范式-高朋律师事务所&苏税迅通.pdf
  • 2025-09-16 16:15
  • 2025年新金融范式下的黄金代币:重构全球价值网络的底层资产洞察报告.pdf
  • 2025-09-16 16:13
  • 中国金融传媒&根元咨询:2025中国金融品牌建设的“文化之道”报告.pdf
  • 2025-09-16 16:08
  • 2025年资产代币化:Web3.0时代的金融新范式研究报告.pdf
  • 2025-09-14 19:32
  • 2025年泰国资本市场向国际金融中心转型战略路径研究报告(英文版).pdf
  • 2025-09-14 19:30
  • 中国人民银行:甘肃省金融运行报告(2025).pdf
  • 2025-09-14 19:27
  • 中国人民银行:湖南省金融运行报告(2025).pdf
  • 2025-09-14 19:27
  • 中国宏观经济专题报告(第107期):稳定币:货币金融体系演进的新支点.pdf
  • 2025-09-14 19:27
  • 中国人民银行:安徽省金融运行报告(2025).pdf
  • 2025-09-13 16:36
  • 中国人民银行:广东省金融运行报告(2025).pdf
  • 2025-09-13 16:36
  • 中国人民银行:河北省金融运行报告(2025).pdf
  • 2025-09-13 16:36
  • 中国人民银行:湖北省金融运行报告(2025).pdf
  • 2025-09-13 16:36
  • 中国人民银行:北京市金融运行报告(2025).pdf
  • 2025-09-13 16:36
  • 中国人民银行:福建省金融运行报告(2025).pdf
  • 2025-09-13 16:36
  • 中国人民银行:黑龙江省金融运行报告(2025).pdf
  • 2025-09-13 16:36
  • 中国人民银行:吉林省金融运行报告(2025).pdf
  • 2025-09-13 16:35
  • 毕马威:2025年上半年金融科技动向报告.pdf
  • 2025-09-12 16:37
  • 中国人民银行:上海市金融运行报告(2025).pdf
  • 2025-09-12 16:34
  • 中国人民银行:山东省金融运行报告(2025).pdf
  • 2025-09-12 16:34
  • 中国人民银行:江苏省金融运行报告(2025).pdf
  • 2025-09-12 16:34
  • 中国人民银行:内蒙古自治区金融运行报告(2025).pdf
  • 2025-09-12 16:34
  • 中国人民银行:天津市金融运行报告(2025).pdf
  • 2025-09-12 16:34
  • 中国人民银行:江西省金融运行报告(2025).pdf
  • 2025-09-12 16:34
  • 中国人民银行:浙江省金融运行报告(2025).pdf
  • 2025-09-12 16:34
  • 清华五道口:中国企业供应链金融白皮书(2025).pdf
  • 2025-09-11 15:27
  • 凯捷:金融服务-2025年热门趋势财富管理报告.pdf
  • 2025-09-10 15:29
  • 蚂蚁数科:2025金融智能体深度应用报告.pdf
  • 2025-09-09 15:26
  • 2025年英国专业与金融服务领域AI应用研究报告:释放未来创新机遇(英文版).pdf
  • 2025-09-09 15:23
  • 支持上海国际金融中心建设主要税费支持政策指引.pdf
  • 2025-09-08 09:16
  • 金融-银行业城商行的二十年:展望“十五五”,谁是未来大赢家?.pdf
  • 2025-09-06 19:17
  • 2025年金融业新一代数据中心创新发展案例集-金科创新社.pdf
  • 2025-09-05 17:00
  • 2025年东亚的工业脱碳:能源、金融、技术和就业的转型报告(英文版).pdf
  • 2025-09-05 16:54
  • 大湾区跨境电商供应链金融发展与安全白皮书(2025).pdf
  • 2025-09-03 16:53
  • 中国银行间市场交易商协会:中国场外金融衍生品市场发展报告(2024年度).pdf
  • 2025-08-31 17:46
  • 同盾科技:2025年AI+风控-大模型驱动金融风险决策新范式报告.pdf
  • 2025-08-30 16:25
  • IDC:2025年金融行业大模型应用落地白皮书.pdf
  • 2025-08-30 16:23
  • 下半年市场资金结构分析暨非银金融行业投资机会:内外共振,走向曙色.pdf
  • 2025-08-30 16:15
  • 金杜律师事务所:2025年金融资管争议解决经典案例集.pdf
  • 2025-08-29 16:29
  • 金融-金融工程深度报告:Vibe Coding系列之一,使用Cursor高效投研开发.pdf
  • 2025-08-29 16:23
  • 2025年上半年金融科技动向报告:全球金融科技融资分析(英文版).pdf
  • 2025-08-26 17:00
  • 债券研究-消金行业观察:我国消费金融行业债市研究报告.pdf
  • 2025-08-25 16:29
  • 2025金融业大模型应用报告.pdf
  • 2025-08-24 19:42
  • 2025年基于AIGC的金融信息系统运维应用研究报告.pdf
  • 2025-08-22 16:33
  • 上海金融法院:2024年证券虚假陈述责任纠纷法律风险防范报告.pdf
  • 2025-08-22 16:29
  • 金融-保险行业“洗尽铅华”系列一:中国保险资管研究,发展历程、海外镜鉴与未来趋势.pdf
  • 2025-08-22 16:25
  • 金融-保险资产端专题:市场上行与行业弹性共振,财报指标有望全面受益.pdf
  • 2025-08-22 16:25
  • 合合信息:2025年金融信创AI生态实践白皮书.pdf
  • 2025-08-19 15:48
  • 2025年转型计划助力转型金融:中国银行业转型计划实践研究.pdf
  • 2025-08-19 15:46
  • 在2025年及以后的金融服务领域:揭示大趋势与预测.pdf
  • 2025-08-19 15:42
  • 政府债支撑融资需求,货币政策宽松可期——2025年一季度中国宏观金融形势分析.pdf
  • 2025-08-18 17:04
  • 国信证券-竞争格局与案例分析:金融出海之跨境支付.pdf
  • 2025-08-16 16:40
  • 2025转型计划助力转型金融: 中国银行业转型计划实践研究报告.pdf
  • 2025-08-14 16:56
  • 2025年及未来金融服务业核心趋势与发展预测(英译中).pdf
  • 2025-08-14 16:54
  • 万亿美元的转型_追踪生成式AI和代理式AI在金融服务领域的崛起.pdf
  • 2025-08-13 15:29
  • 2025年全球金融银行业社交媒体基准报告(英文版).pdf
  • 2025-08-13 15:27
  • 2025年全球并购趋势年中展望:金融服务-普华永道.pdf
  • 2025-08-11 15:45
  • 2025年山西转型金融落地发展研究-自然资源保护协会.pdf
  • 2025-08-11 15:45
  • 持续优化金融监管,助力经济健康发展——2025H1中国金融监管.pdf
  • 2025-08-11 15:44
  • 中国金融行业分布式事务型数据库市场份额,2024-IDC.pdf
  • 2025-08-11 15:39
  • 2025年及未来金融服务业核心趋势与发展预测报告(英文版).pdf
  • 2025-08-10 18:39
  • 平安集团中国信通院:2025年金融行业业研一体实践研究报告.pdf
  • 2025-08-09 16:19
  • 2025转型金融发展与科技赋能典型场景研究报告.pdf
  • 2025-08-06 16:18
  • 2025年金融操作系统AI创新与融合实践报告.pdf
  • 2025-08-05 15:31
  • 2025年Q2中国经济与金融市场手册:结构性失衡与增长担忧(英文版).pdf
  • 2025-08-05 15:30
  • 毕马威:2025年金融新规热读(5-6月合刊).pdf
  • 2025-08-03 18:32
  • 2025金融业务全景与全链路智能可观测体系建设白皮书.pdf
  • 2025-08-03 18:29
  • 2025年数据要素背景下金融业数据治理新路径研究报告.pdf
  • 2025-08-01 17:00
  • 2025年数字金融专刊-暨鑫智奖·第六届金融机构数智化转型优秀案例集.pdf
  • 2025-07-30 16:11
  • 2025年金融科技新基建-构建高性能数据库专有云平台报告.pdf
  • 2025-07-30 16:09
  • SGS:2025可持续供应链金融白皮书.pdf
  • 2025-07-29 17:09
  • 金融科技开放4.0.pdf
  • 2025-07-26 20:08
  • 非银金融行业深度报告:财富管理系列报告之二——公募基金改革方案出台,推动行业高质量发展.pdf
  • 2025-07-26 20:00
  • 德勤阿里云:2025年金融行业数字化转型白皮书(英文版).pdf
  • 2025-07-24 16:05
  • 2025年金融领域人工智能早期应用者经验启示报告(英文版).pdf
  • 2025-07-24 16:03
  • 银行稳定币专题-下-:从金融角度看稳定币——市场影响篇.pdf
  • 2025-07-24 15:55
  • 银行稳定币专题(上):从金融角度看稳定币——基础定义.pdf
  • 2025-07-24 15:55
  • 2025年金融行业行业白皮书-薪智.pdf
  • 2025-07-21 14:50
  • 2025年行业发展研究报告:金融数字化转型中的可观测性实践与趋势洞察.pdf
  • 2025-07-19 19:41
  • 中国普惠金融研究院:2024年CAFI研究成果介绍报告.pdf
  • 2025-07-17 15:55
  • 安永-2025年二季度金融行业监管政策与处罚分析.pdf
  • 2025-07-14 16:18
  • 2024銀行及金融業人力更新報告.pdf
  • 2025-07-14 16:13
  • 金融工程研究报告:行业轮动系列-二-:基于景气度视角下的降频行业轮动策略.pdf
  • 2025-07-13 08:27
  • 金融产品行业深度报告:低利率时代REITs的配置价值:制度、市场与展望.pdf
  • 2025-07-11 15:56
  • 清华五道口:2025年中国家庭养老金融健康指数调研报告.pdf
  • 2025-07-10 16:45
  • 国际金融论坛(IFF):2025全球可持续发展投资指数报告.pdf
  • 2025-07-10 16:45
  • 2025稳定币十问-数字金融时代的规则重构与中国机遇报告.pdf
  • 2025-07-10 16:42
  • 2025年加速蓝色金融:工具、案例研究与规模化路径研究报告(英文版).pdf
  • 2025-07-09 16:22
  • 2025年金融科技平台对传统金融行业的影响研究——基于信贷业务的视角.pdf
  • 2025-07-07 16:49
  • 2025年Q3金融行业行业薪酬报告-薪智.pdf
  • 2025-07-07 16:49
  • AI系列专题报告-五-:AI+金融:行业AI投入积极,金融IT迎来破局新思路.pdf
  • 2025-07-07 16:42
  • 安联人寿:2024年度企业社会责任及绿色金融报告.pdf
  • 2025-07-06 08:42
  • 2025年天津市数字金融产品手册.pdf
  • 2025-07-04 16:34
  • 2025年人工智能时代对银行业、金融业及保险业客户体验的再思考研究报告(英文版).pdf
  • 2025-07-04 16:32
  • 2024年量子技术在金融通信安全领域的应用研究报告.pdf
  • 2025-07-02 16:38
  • 中国金融大模型市场追踪报告,2024年.pdf
  • 2025-07-02 16:33
  • 中国银行中国经济金融展望报告(2025年第3季度):经济运行不确定性加大,政策加力必要性上升.pdf
  • 2025-07-02 16:32
  • 中国银行全球经济金融展望报告(2025年第3季度):贸易保护主义冲击全球经济,美元配置再平衡引发国际金融市场调整.pdf
  • 2025-07-02 16:32
  • 中国银行全球银行业展望报告(2025年第3季度):布局科技金融赛道,提升服务实体经济质效.pdf
  • 2025-07-02 16:32
  • 金科创新社:2025年金融大模型应用与智能体建设案例集.pdf
  • 2025-07-01 17:00
  • 逆风破浪:中国消费者金融健康报告2024.pdf
  • 2025-07-01 17:00
  • 稳链强韧 小微企业金融健康洞察2024.pdf
  • 2025-06-30 15:05
  • “对等关税”对亚太经济体影响几何?- RCEP国家2025年下半年经济金融展望.pdf
  • 2025-06-30 15:04
  • 2025年全球实时支付生态发展报告:全天候无缝金融服务(英文版).pdf
  • 2025-06-28 17:10
  • 2025年金融中心标准体系与国际比较研究报告.pdf
  • 2025-06-28 17:07
  • 金融工程2025中期投资策略:AI投研破晓,指增迎来新篇章.pdf
  • 2025-06-26 16:45
  • 2024年量子技术在金融消息传递中的应用报告(英文版).pdf
  • 2025-06-25 16:32
  • 亚洲金融合作协会:2023-2024年中亚洲银行业发展回顾与展望报告.pdf
  • 2025-06-25 16:27
  • 计算机行业2025年中期投资策略:AI应用与金融科技的新时代.pdf
  • 2025-06-25 16:26
  • 2025中国特色金融发展之路的源头活水与价值启示报告.pdf
  • 2025-06-24 15:07
  • 汽车金融行业舆情风险案例参考报告.pdf
  • 2025-06-24 15:04
  • 金融工程2025中期投资策略:AI投研破晓,指增迎来新篇章.pdf
  • 2025-06-24 15:00
  • 中国金融科技竞争力百强企业报告(2025).pdf
  • 2025-06-23 15:47
  • 中国人民银行:2024年中国金融标准化报告.pdf
  • 2025-06-23 15:46
  • 2025年Q2薪智科技金融行业薪酬报告.pdf
  • 2025-06-23 15:41
  • 2024金融与专业服务领域:AI与劳动力的未来研究报告(英文).pdf
  • 2025-06-20 15:05
  • 腾讯云:2025年金融业智能风控实践白皮书.pdf
  • 2025-06-19 16:13
  • 青岛市节能降碳领域政策法规及技术标准汇编——1.6政策法规-绿色金融.pdf
  • 2025-06-19 16:00
  • 2025年金融服务领域生成式AI应用实践:机遇与风险管理研究报告(英文版).pdf
  • 2025-06-18 15:33
  • 2025金融业隐私计算互联互通技术与场景实践.pdf
  • 2025-06-18 15:31
  • 量子算法在金融风控与定价管理领域的应用研究.pdf
  • 2025-06-18 15:27
  • 稳定币-专题系列报告-一-:金融新基建的崛起,香港监管框架下的机遇与挑战.pdf
  • 2025-06-18 15:16
  • 扩大可信的中国转型金融市场规模-电力行业转型融资机遇和要素.pdf
  • 2025-06-17 15:18
  • 非银行金融行业中国机构配置手册-2025版-之机构合作篇:生态汇流,竞合之势.pdf
  • 2025-06-17 15:11
  • 2025中国钢铁行业脱碳融资:转型金融试点和市场进展报告.pdf
  • 2025-06-14 16:43
  • 2025中国钢铁行业脱碳融资:转型金融试点和市场进展报告(英文版).pdf
  • 2025-06-14 16:43
  • 2024年openEuler系操作系统在金融行业的应用与生态白皮书.pdf
  • 2025-06-14 16:39
  • 中国机构配置手册-2025版-之机构风险篇:破茧向新:行业整合下的金融风险与化解.pdf
  • 2025-06-13 16:07
  • 腾讯云:2025年金融行业AI应用新机遇与新场景报告.pdf
  • 2025-06-12 15:38
  • 东吴证券:金融与AI融合持续深化:【AI金融新纪元】系列报告(四).pdf
  • 2025-06-12 15:34
  • 中国金融黑灰产治理研究报告2025——非法代理维权的识别标准与溯源治理.pdf
  • 2025-06-11 16:42
  • 金融-RWA:为现实世界资产开启数学金融之门.pdf
  • 2025-06-11 16:30
  • 2025金融支持社区层面零碳转型应用指南.pdf
  • 2025-06-10 16:07
  • 非银金融行业中国机构配置手册(2025版)之公募基金篇:“平台式、一体化与多策略”行动方案.pdf
  • 2025-06-10 15:59
  • 非银行金融:养老产业现状研究专题-七-机构养老&养老地产之案例篇-险企发挥比较优势,铸造CCRC行业标杆.pdf
  • 2025-06-10 15:59
  • 非银行业深度研究:新旧金融的桥梁:稳定币如何重塑非银金融生态?.pdf
  • 2025-06-10 15:59
  • 非银金融:中国机构配置手册-2025版-之公募基金篇-“平台式、一体化与多策略”行动方案.pdf
  • 2025-06-09 13:27
  • 非银金融行业深度报告:财富管理系列报告之一—群雄逐鹿,财富管理新时代.pdf
  • 2025-06-09 13:26
  • 2025年金融行业网络攻防演练及重保现状与需求调研报告.pdf
  • 2025-06-07 16:41
  • 2024年上海国际绿色金融枢纽发展研究报告.pdf
  • 2025-06-06 15:35
  • 多元金融专题研究:东南亚:金融科技下一站.pdf
  • 2025-06-05 15:57
  • 金融行业2025下半年展望:把握高股息主线,守正出奇.pdf
  • 2025-06-05 15:57
  • 金融行业SRv6 SD-WAN技术白皮书.pdf
  • 2025-06-04 16:23
  • 稳定币&RWA:未来金融话语权-华西证券.pdf
  • 2025-06-04 16:16
  • ......

转眼一年又过去了,春节将至 HelloGitHub 也迎来了一年一度的年度盘点时刻。

接下来,就让我们一起来看看,都有哪些开源项目入选了《 2025 年 HelloGitHub 年度热门开源项目》。需要说明的是,入选并不是按照 Star 增长或“出圈”程度作为唯一标准,而是更看重来自 HelloGitHub 社区用户的真实反馈——阅读、点赞、收藏与评论等。

因此大家为自己喜欢的开源项目「点赞」十分重要,每一次互动都可能让你喜欢的开源项目被更多人看到。

同时为了满足不同读者对各类开源项目的喜好,我还整理了 40 个开源项目(每类精选 Top3 ),量大管饱总会有你喜欢的。所以我将文章内容分为了 年度十佳分类精选 两个部分,方便大家速览和按需阅读。

  1. 年度十佳:HelloGitHub 最受欢迎的 10 个开源项目
  2. 分类精选:根据 C/C++、C#、Go 、Java 、JavaScript 、移动端、Python 、Rust 、人工智能、书籍/教程、其它等类别整理

话不多说,开始沉浸式享受这份来自 HelloGitHub 的春节礼物吧~

一、年度十佳

这里是 HelloGitHub 2025 年度最受欢迎的 10 个开源项目,筛选和排序是综合了用户的浏览、点赞、收藏和评论等数据,所以它们是来自 HelloGitHub 社区小伙伴们的选择!

1 、跨平台可爱的互动桌宠应用

这是一款开源的跨平台桌面宠物应用,以可爱的猫咪形象陪伴你的每一次键盘与鼠标操作。它基于 Tauri 构建,支持 macOS 、Windows 和 Linux ,无论你使用哪种系统,都能“领养”这只可爱猫咪,让你的桌面充满乐趣。

用户评价:好用,在养了。

GitHub 地址→github.com/ayangweb/BongoCat

2 、开箱即用的游戏变速器

这是一款完全免费、开源的 Windows 游戏加速工具。它通过 Hook 系统时间函数,实现对游戏速度的灵活调节,并提供简单易用的界面,兼容多种单机游戏。请勿用于网络游戏,以免导致账号被封!

用户评价:很好用,很可以。

GitHub 地址→github.com/game1024/OpenSpeedy

3 、沉浸式的电子书阅读器

这是一款为热爱阅读的用户量身打造的阅读软件,将极简设计与强大功能融合,为你带来专注、沉浸的阅读体验。它基于 Next.js 和 Tauri 开发,支持跨平台运行,现已支持 macOS 、Windows 、Linux 、Android 、iOS 和 Web 全平台覆盖。

用户评价:好用,特别是在线版,流畅丝滑。

GitHub 地址→github.com/readest/readest

4 、每日 60 秒资讯 API 集合

该项目集合了包括每日新闻、实时票房、汇率、热搜榜、随机段子等多种数据的 API 服务。

用户评价:好用,种类挺多的,支持。

GitHub 地址→github.com/vikiboss/60s

5 、易用的跨平台开源聊天应用

这是一款专为多端打造的现代化即时通讯系统,实现了从桌面到移动平台的无缝通讯体验。它基于 Tauri 、Vite 6 、Vue 3 和 TypeScript 构建,支持一对一私聊、群组聊天、消息撤回和 @提醒等功能,适用于 Windows 、macOS 、Linux 、iOS 和 Android 等多种操作系统。

用户评价:只是在文章中多看了一眼,就被惊艳到了。

GitHub 地址→github.com/HuLaSpark/HuLa

6 、全开源的实时资讯平台

这是一款高颜值的实时新闻与热榜网站,相比传统热榜产品更加注重实时新闻。它前后端完全开源、部署简单,可轻松托管到 Cloudflare Pages 或 Vercel 等平台。

用户评价:太棒了,一览所有新闻热榜。

GitHub 地址→github.com/ourongxing/newsnow

7 、用 Excel 手搓各种 AI 算法

该项目是通过 Excel 的形式实现并演示人工智能与深度学习的核心算法和概念,让初学者可以动手操作并理解 AI 的运行原理,包括矩阵乘法、MLP 、RNN 、Transformer 、ResNet 等,以独特且浅显易懂的形式,降低了 AI 学习的门槛。

用户评价:有中文文档就好了。

GitHub 地址→github.com/ImagineAILab/ai-by-hand-excel

8 、从零开始训练小型语言模型

这不仅是一个微型语言模型的实现,更是一份入门 LLM 的教程,旨在降低学习和上手 LLM 的门槛 。它提供了从数据预处理到模型训练、微调和推理的全流程代码和教程。最小模型仅 0.02B 参数,可在普通 GPU 上轻松运行。

用户评价:试了一遍不错。降低参数,连我这个入门显卡都能跑。

GitHub 地址→github.com/jingyaogong/minimind

9 、开源圆角等宽字体

这是一款高质量的等宽字体,具备可变字体、圆角设计、智能连字、图标等特性,支持简体中文、繁体中文和日语字符集,以及通过脚本自定义构建字体,满足不同平台和个性化需求。

用户评价:真的很好用!!很好看而且等宽太舒服了!最舒服的是连写,更贴近自然语言!

GitHub 地址→github.com/subframe7536/maple-font

10 、DeepSeek 开源的混合专家模型

这是一个基于混合专家( MoE )和多头潜在注意力( MLA )架构的开源大语言模型,在数学推理、代码生成等复杂任务中表现优秀。该模型总规模达 671B 参数,但每个 token 只激活其中的 37B 参数。即在处理输入时,并非所有“专家”都参与计算,而是选择一部分专家进行处理。通过激活部分参数( 37B )完成计算,从而降低了训练和推理的成本。

用户评价:国产之光厉害。

GitHub 地址→github.com/deepseek-ai/DeepSeek-V3

二、分类精选

如果上面的年度十佳,没有你喜欢的开源项目,没关系!

========================================
📊 2025 年度数据概览
========================================
发布项目数     : 588
总浏览量(UV)  : 1,253,290
总收藏数      : 4,462
总评论数      : 650
总投票数      : 5,936

下面我从其余的 500 多个项目里,按照 11 个分类整理精选出共 40 个开源项目,大部分分类只取 Top3 ,方便大家阅读。

C/C++ 项目

1 、Catime:简洁小巧的 Windows 计时器。这是一款轻巧易用的 Windows 计时器,集显示时间、倒计时和番茄时钟功能于一体。它采用 C 语言编写,体积小、占用少,支持透明界面。用户可以调整界面大小和位置,设置超时动作(锁屏/通知/关机),以及自定义颜色、字体和托盘动画,满足个性化需求。

2 、LunaTranslator:开源的视觉小说翻译工具。这是一款专为 Windows 平台设计的视觉小说翻译器,支持 HOOK 、OCR 、剪贴板等多种文本提取方式,可灵活切换,并提供在线翻译、离线翻译、语音合成等功能。

3 、MusicPlayer2:多功能的 Windows 音乐播放器。该项目是一款由 C++ 编写的简约、小巧、多功能的 Windows 本地音乐播放器,支持常见音频格式,并提供歌词显示、卡拉 OK 模式、歌词编辑、专辑封面展示、频谱分析和音效调节等功能。

C# 项目

4 、ClassIsland:抬头即见的开源课表工具。这是一款专为大屏设备打造的桌面课表应用,可将课程表以简洁组件的形式常驻桌面,取代传统黑板课表。支持下课提醒、天气信息、倒计时、密码保护和课表导入等功能,适用于配备教室多媒体大屏、投影仪或智慧黑板的教室。

5 、ExplorerTabUtility:Windows 文件管理多标签扩展工具。这是一款专为 Windows 11 打造的文件资源管理器增强工具,能够自动将多个窗口合并为单窗口多标签页模式。支持路径去重、标签搜索、批量打开/关闭/还原等功能,轻松告别桌面窗口杂乱的烦恼。

6 、duplicati:跨平台的多云安全备份工具。这是一款跨平台的备份客户端,支持多种主流云存储服务(如 S3 、Dropbox 、Google Drive 等)。它可将加密、增量、压缩的备份文件安全地存储到云端或服务器,适用于个人隐私数据的云备份。

Go 项目

7 、Ech0:清爽的轻量级内容分享平台。这是一款开源、自托管的轻量级内容发布平台,专注于思想流动和快速分享。它拥有简洁直观的操作界面,支持发布和分享想法、文字、图片和链接。同时,支持类似 ActivityPub 的联邦协议,实现不同实例(站点)之间的互联互通,让内容不再局限于单一孤立的网站。

8 、ezbookkeeping:轻松自托管你的个人财务数据。这是一款免费、轻量、可自托管的个人记账应用,采用 Go+Vue 构建。它界面简洁易用、功能丰富,支持二级账户(个人/家庭)、收支分类、交易图片附件、定期收支自动记账等功能。借助 PWA 技术,可一键添加到手机主屏幕,体验媲美原生 App 。

9 、gpt-load:企业级的多渠道大模型 API 管理平台。这是一款用 Go 语言开发的企业级大模型接口管理平台,支持 OpenAI 、Gemini 、Claude 等多种服务。它开箱即用、内置 Web 管理界面、保留原生 API 格式,支持密钥自动轮询、故障切换和水平扩展,专为高并发生产环境而设计。

Java 项目

10 、OpenIsle:Java 开发的轻量级开源社区系统。这是一个基于 Spring Boot 和 Vue3 构建的开源自由社区系统,定位为轻量级的 Discourse 。它完全开源、可二次开发,支持白名单邀请、自定义标签、实时通知等功能。

11 、booklore:Java 开发的个人数字图书馆。这是一款开源、自托管的电子书管理 Web 应用,支持 PDF 和 ePub 电子书格式。它采用 Java ( Spring Boot )+ Angular 开发,支持自动获取书籍信息、分享书籍、阅读进度同步、多用户管理等功能。

12 、synthea:模拟患者人群的开源工具。这是一款开源的合成患者数据和健康记录的模拟器,支持生成病历、症状、诊断、药物、疫苗接种记录等多种医疗信息数据,适用于临床研究、流行病学研究等场景。

JavaScript 项目

13 、TypeWords:极简的打字背单词网站。这是一款基于网页的背单词软件,帮助用户通过键盘输入来记忆单词。它界面简洁、交互流畅,支持单词发音、错误统计和生词本等功能。

14 、drawnix:极简的在线白板工具。这是一款免费、开源的在线白板工具。它提供一个无限画布,支持自由绘制、思维导图、流程图、画笔、插入图片、自动保存等功能,以及移动端适配、Docker 部署和插件机制等特性。

15 、AlgerMusicPlayer:简约美观的音乐播放器。这是一款基于 Electron 开发的第三方音乐播放器,拥有高颜值的界面和丰富的功能,支持本地化服务、桌面歌词显示、音乐下载等,适用于多平台使用。

16 、CubeCity:卡通风格城市建设模拟游戏。这是一款轻量级、卡通风格的 2.5D 城市模拟游戏,基于 Three.js 和 Vue3 构建。玩家可在浏览器中通过点选和拖放,实时建造、搬迁和拆除建筑。建筑会自动产出金币,可用于新建或升级设施。游戏融合了环境、社会与治理( ESG )理念,城市规划需兼顾多元需求,才能打造出可持续发展的理想城市。

17 、fumadocs:用 Next.js 打造现代化的文档网站。该项目是基于 Next.js 构建的文档网站框架,专为快速创建现代化、高颜值、功能丰富的文档网站而设计。它完全采用 ESM 格式,紧跟前端技术潮流,支持内容集合、MDX 、Contentlayer 、TailwindCSS 等技术,适用于项目文档、API 文档、开发指南等多种文档需求。

客户端项目

18 、saber:更懂你的手写笔记应用。这是一款开源的手写笔记应用,支持 Android 、iOS 、Windows 、macOS 、Linux 等平台。它提供夜间模式、多行公式高亮、密码保护等功能,适用于记录课堂笔记和整理工作思路等场景。

19 、Trail-Sense:野外生存必备 Android 应用。这是一款专为徒步、露营、野外生存等场景设计的开源 Android 应用。它利用手机的传感器,提供离线导航、日落提醒、照片地图、路径追踪等实用功能,所有功能均可在无网络环境下使用。

20 、XMSLEEP:开源的 Android 白噪音应用。这是一个专注于白噪音播放的 Android 应用,提供雨声、篝火、雷声、猫咪呼噜、鸟鸣、夜虫等多种自然声音,帮助你放松、冥想和入睡。

21 、container:苹果开源的轻量级虚拟机。这是一款苹果官方开源的轻量级虚拟化容器工具,用于在 Mac 上创建和运行 Linux 容器。它采用 Swift 开发,并针对 Apple 芯片(如 M1 、M2 芯片)进行了优化,旨在为 macOS 用户提供高效、原生的容器体验,支持 OCI 标准容器镜像,并可无缝对接 Docker Hub 等主流镜像仓库。

22 、LunarBar:极简的 Mac 菜单栏日历。这是一款专为 macOS 设计的菜单栏日历工具,支持农历、节日、节气和提醒等功能。

Python 项目

23 、nicegui:简单易用的 Python UI 框架。该项目是基于 Python 的用户界面框架,支持纯 Python 开发 Web 或桌面应用。只需几行代码,即可生成按钮、图表、3D 场景等 50 多种组件,解决了传统 Python GUI 跨平台麻烦、前端开发门槛高等问题。

24 、AstrBot:易上手的多平台 LLM 聊天机器人。该项目是基于 Python 构建的 LLM 聊天机器人及开发框架,支持集成多种消息平台和大语言模型。它提供了可视化管理面板和灵活的插件扩展机制,支持速率限制、白名单、关键词过滤、图片理解和语音转文字等功能。

25 、python-mastery:高级 Python 编程教程。该项目是由 Python 社区知名专家、《 Python Cookbook 》作者 David Beazley 编写的高级 Python 编程课程,内容完全开源,涵盖生成器、协程、元编程、模块与包等,适合有一定 Python 基础的学习者。

Rust 项目

26 、Seelen-UI:高度可定制的 Windows 桌面美化工具。这是一款免费开源的 Windows 桌面增强工具,专注于高度自定义和效率提升。它采用 Rust 语言开发,结合 Tauri 框架与 Web 技术,支持窗口平铺管理、应用启动器、Dock 、任务栏、动态壁纸、插件扩展等功能。

27 、rustfs:基于 Rust 的高性能分布式存储系统。该项是用 Rust 构建的高性能分布式对象存储系统,致力于成为 MinIO 的开源替代品。它安装简单、兼容 S3 协议,采用更友好的开源协议,并内置界面清爽的 Web 管理后台。同时,支持国产保密设备和系统,适用于海量数据存储、大数据、互联网、工业和保密存储等场景。

28 、Nping:Rust 的多地址并发 Ping 工具。这是一个用 Rust 开发的可视化 Ping 工具,支持同时对多个目标地址并发 Ping 操作。它提供了分区折线图和表格视图等可视化展示,支持实时动态展示延迟、丢包率等性能指标,同时兼容 IPv4 和 IPv6 网络环境。

人工智能

29 、note-gen:基于 AI 的 Markdown 笔记应用。这是一款跨平台的 Markdown 笔记应用,专注于用 AI 搭建“记录-写作”的桥梁。它不仅支持截图、文本、插图等多种记录方式,还能通过 AI 模型将这些碎片化内容整理成可读的笔记。

30 、LivePortrait:让静态照片“活”起来。该项目能够通过一张照片快速生成高质量、生动的视频,尤其擅长捕捉和还原面部表情,支持人类和动物肖像的动画生成。

31 、SwanLab:AI 模型训练跟踪与可观测平台。这是一款专为 AI 模型训练打造的跟踪、记录、分析与协作工具,旨在帮助研究者优化训练过程,提升团队协作效率。它通过简洁的 Python API 和直观的界面,提供了训练可视化、自动日志记录、硬件监控、实验管理和多人协同等功能。已集成 40+ 主流训练框架,适用于大模型训练、计算机视觉、音频处理、AIGC 等任务场景。

32 、prompt-optimizer:优化 AI 提示词的工具。这是一款纯前端实现的提示词优化器,帮助用户快速编写更高质量的提示词。支持多种主流 AI 模型与自定义 API 地址,并可实时对比优化前后的效果。

33 、nndeploy:简单易用的多端 AI 推理部署框架。这是一款简单易用、高性能、支持多端的 AI 推理部署框架。它基于有向无环图设计,将前处理、推理和后处理抽象为图的节点,支持流水线并行、任务并行等优化方式。兼容 TensorRT 、OpenVINO 、MNN 等多种推理后端,适配主流文生图、大语言、检测等模型,实现一套代码多端部署。

书籍/教程

34 、Foundations-of-LLMs:《大模型基础》。该书是由浙江大学 DAILY 实验室开源的大语言模型教材,内容涵盖传统语言模型、大语言模型架构演化、Prompt 工程、参数高效微调、模型编辑、检索增强生成等方面。

35 、english-note:《从零开始学习英语语法》。这是一本面向英语基础薄弱同学的英语语法入门书籍,内容言简意赅、插图幽默风趣。

36 、ai-agents-for-beginners:微软开源的 AI Agent 初学者教程。该项目是微软专为初学者打造的 AI 智能体( Agents )教程,内容分为 10 个课程,包含详细的教程、视频和示例代码。

其它

37 、ESP-Drone:低成本的开源无人机。这是一个基于 ESP32 的开源无人机项目,帮你制作一款低成本、可手机控制的小型无人机。

38 、CookLikeHOC:老乡鸡菜谱开源版。该项目非老乡鸡官方出品,是作者基于《老乡鸡菜品溯源报告》等资料,归纳、整理了老乡鸡菜品的配方、制作流程及烹饪要点。

39 、LinuxMirrors:一键搞定 Linux 换源问题的脚本。该项目提供了一键切换 Linux 默认软件源为国内镜像源的脚本,以及 Docker 安装脚本,支持 Debian 、Ubuntu 、CentOS 、Raspberry Pi OS 和 Deepin 等多种主流发行版。

40 、lucide:精美的开源图标库。该项目是由社区驱动的开源图标库,提供 1000+ 高质量的 SVG 图标,支持 React 、Vue 、Svelte 、React Native 等主流前端框架,以及 Figma 插件,方便开发者和设计师使用。

三、最后

过去的一年,HelloGitHub 分享了 588 个开源项目,其中来自用户的分享为 160 个(占比 27.2%)。

感谢每一位来 HelloGitHub 分享和推荐开源项目的小伙伴。你们不只是读者,更是这份月刊的共创者!

新的一年,HelloGitHub 会努力接触更多的开源作者,分享开源项目背后的故事,并帮助真正热爱开源的小伙伴,开启他们的开源之旅。

最后,感谢大家过去一年的陪伴和支持。HelloGitHub 在这里提前祝大家春节快乐、马年行大运,我们年后见~

本文为墨天轮数据库管理服务团队第165期技术分享,内容原创,作者为技术顾问王君慧,如需转载请联系小墨(VX:modb666)并注明来源。如需查看更多文章可关注【墨天轮】公众号。

问题描述

客户反馈,一套Oracle 11g集群在本周内出现整体性的性能下降问题。

对比历史(上周)、及当前的AWR报告TOP等待,可以发现log file sequential read,db file scattered read 等待事件的DBTIME占比明显提升,system io平均等待时间翻倍。

20250815(周五)17:00-18:00
Top 10 Foreground Events by Total Wait Time
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tota Wait % DB
Event Waits Time Avg(ms) time Wait Class
------------------------------ ------------ ---- ------- ------ ----------
log file sequential read 2,223,733 177. 80 79.6 System I/O
db file scattered read 384,111 20.9 54 9.4 User I/O
DB CPU 8890 4.0
db file sequential read 1,092,125 6853 6 3.1 User I/O
control file sequential read 827,641 6166 7 2.8 System I/O
Disk file Mirror Read 167,433 1393 8 .6 User I/O
direct path read 127,734 712. 6 .3 User I/O
read by other session 12,120 181. 15 .1 User I/O
enq: MN - contention 639,669 99.5 0 .0 Other
gc cr multi block request 287,389 75 0 .0 Cluster
Wait Classes by Total Wait Time
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avg Avg
Total Wait Wait % DB Active
Wait Class Waits Time (sec) (ms) time Sessions
---------------- ---------------- ---------------- -------- ------ --------
System I/O 3,102,616 183,436 59 82.4 51.4
User I/O 1,945,398 30,187 16 13.6 8.5
20250808(周五)17:00-18:00
Top 10 Foreground Events by Total Wait Time
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tota Wait % DB
Event Waits Time Avg(ms) time Wait Class
------------------------------ ------------ ---- ------- ------ ----------
enq: MN - contention 4,069,734 25.3 6 52.9 Other
log file sequential read 1,036,220 9203 9 19.2 System I/O
DB CPU 7116 14.9
control file sequential read 5,032,787 2655 1 5.6 System I/O
db file scattered read 808,945 1722 2 3.6 User I/O
db file sequential read 3,253,719 1140 0 2.4 User I/O
Disk file Mirror Read 977,217 444. 0 .9 User I/O
ASM file metadata operation 704,699 267. 0 .6 Other
gc cr multi block request 665,083 170. 0 .4 Cluster
gc cr block 2-way 530,666 53 0 .1 Cluster
Wait Classes by Total Wait Time
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avg Avg
Total Wait Wait % DB Active
Wait Class Waits Time (sec) (ms) time Sessions
---------------- ---------------- ---------------- -------- ------ --------
Other 6,451,726 25,636 4 53.6 7.1
System I/O 6,115,082 11,875 2 24.8 3.3
DB CPU 7,117 14.9 2.0
User I/O 5,674,785 3,381 1 7.1 0.9

问题分析

通过AWR报告看,造成整体性能下降的原因主要为IO性能下降,进一步分析操作系统资源占用及进程占用情况。

检查单块磁盘IO情况

发现数多块数据盘读IO很高,平均在100MB/s左右;读延迟达到50ms左右,远远大于avctm的值,说明不仅读延迟高,读请求排队也十分严重;磁盘繁忙度已到100%;

图片

rman备份任务

排查发现存在数据库备份任务在执行,当停止数据库备份任务后,磁盘IO并未下降,排除rman备份任务的原因。

image.png

检查当前占用IO较高的后台进程

可以发现,主要IO占用为lisbak实例非本地进程

Actual DISK READ: 2.67 G/s | Actual DISK WRITE: 160.11 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
12732 be/4 oracle 629.71 K/s 0.00 B/s 0.00 % 98.10 % oraclexxxdb2 (LOCAL=NO)
48005 be/4 oracle 608.24 K/s 0.00 B/s 0.00 % 96.91 % oraclexxxdb2 (LOCAL=NO)
19714 be/4 oracle 1017.02 K/s 0.00 B/s 0.00 % 81.42 % oraclexxxdb2 (LOCAL=NO)
11377 be/4 oracle 5.60 M/s 0.00 B/s 0.00 % 80.09 % oraclexxxdb2 (LOCAL=NO)
61632 be/4 oracle 407.88 K/s 0.00 B/s 0.00 % 61.45 % oraclexxxdb1 (LOCAL=NO)
8594 be/4 oracle 236.14 K/s 0.00 B/s 0.00 % 39.70 % oraclexxxdb1 (LOCAL=NO)
33026 be/4 oracle 26.56 M/s 7.16 K/s 0.00 % 39.18 % oraclexxxdb2 (LOCAL=NO)
62297 be/4 oracle 386.41 K/s 0.00 B/s 0.00 % 33.14 % oraclexxxdb2 (LOCAL=NO)
46164 be/4 oracle 30.04 M/s 0.00 B/s 0.00 % 32.71 % oraclexxxdb2 (LOCAL=NO)
58388 be/4 oracle 43.16 M/s 7.16 K/s 0.00 % 18.05 % oraclexxxdb2 (LOCAL=NO)
52474 be/4 oracle 10.07 M/s 0.00 B/s 0.00 % 15.64 % oraclexxxdb2 (LOCAL=NO)
2038 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 12.24 % multipathd
31548 be/4 oracle 6.99 M/s 0.00 B/s 0.00 % 9.40 % oraclexxxdb2 (LOCAL=NO)
8234 be/4 oracle 11.60 M/s 0.00 B/s 0.00 % 7.24 % oraclexxxdb1 (LOCAL=NO)
25890 be/4 oracle 57.25 K/s 42.93 K/s 0.00 % 4.62 % ora_ckpt_xxxdb2
60702 be/4 oracle 42.93 K/s 0.00 B/s 0.00 % 3.37 % ora_lmon_xxxdb3
25846 be/4 oracle 42.93 K/s 0.00 B/s 0.00 % 3.01 % ora_lmon_xxxdb2
53633 be/4 oracle 14.31 K/s 0.00 B/s 0.00 % 2.17 % ora_lmon_xxxdb1
20123 rt/4 grid 915.94 B/s 0.00 B/s 0.00 % 1.89 % ocssd.bin
20127 rt/4 grid 915.94 B/s 0.00 B/s 0.00 % 1.83 % ocssd.bin
20121 rt/4 grid 0.00 B/s 915.94 B/s 0.00 % 1.26 % ocssd.bin
20131 rt/4 grid 915.94 B/s 0.00 B/s 0.00 % 1.20 % ocssd.bin
20125 rt/4 grid 0.00 B/s 915.94 B/s 0.00 % 0.65 % ocssd.bin
20129 rt/4 grid 0.00 B/s 915.94 B/s 0.00 % 0.63 % ocssd.bin
16742 be/4 oracle 46.51 M/s 0.00 B/s 0.00 % 0.00 % oraclexxxdb2 (LOCAL=NO

检查进程在数据库内部的归属

通过OSPID获取到数据库进程的SQL\_ID,检查SQL内容后发现为LOGMINGER日志抽取使用:

SQL> select addr,pid,spid,pname,username,program from v$process where spid=16742;
ADDR PID SPID PNAME USERNAME
---------------- ---------- ------------------------ ----- ---------------
PROGRAM
------------------------------------------------
0000000C70AC0F88 84 16742 grid
oracle@rac-1
SQL> select sql_id,program,machine,event,schemaname from v$session where paddr='0000000C70AC0F88';
SQL_ID PROGRAM
------------- ------------------------------------------------
MACHINE
----------------------------------------------------------------
EVENT
----------------------------------------------------------------
SCHEMANAME
------------------------------
6x6s6490zj2dg JDBC Thin Client
tcs-10-1-76-204
log file sequential read
DAAS_LISBAK

主要等待事件分析与AWR报告发现一致

检查SQL\_ID的文本内容:

select sql_fulltext from v$sql where sql_id='6x6s6490zj2dg';
SELECT SCN, SQL_REDO, OPERATION_CODE, TIMESTAMP, XID, CSF, TABLE_NAME, SEG_OWNER
, OPERATION, USERNAME, ROW_ID, ROLLBACK, RS_ID, STATUS, INFO, SSN, THREAD#, DATA
_OBJ#, DATA_OBJV#, DATA_OBJD# FROM V$LOGMNR_CONTENTS WHERE SCN > :1 AND SCN <=
:2 AND ((OPERATION_CODE IN (6,7,34,36) OR (OPERATION_CODE = 5 AND USERNAME NOT
IN ('SYS','SYSTEM') AND INFO NOT LIKE 'INTERNAL DDL%' AND (TABLE_NAME IS NULL O
R TABLE_NAME NOT LIKE 'ORA_TEMP_%')) ) OR (OPERATION_CODE IN (1,2,3,255) ))

SQL执行情况分析

通过分析SQL执行情况,发现该SQL的执行计划并无改变,但在8月11日后,执行频率降低、扫描行数增高(执行计划为全表扫描,那么仅与挖掘的日志条目数量相关)、平均单次响应时间增高。

  • 执行次数统计:
  • 单次执行的BUFFER GETS统计:
  • 单次执行的平均返回行数统计:
  • 总返回行数变化:
  • 单次执行的平均时间:

归档日志生成量分析

由于logminer解析的日志条目数量和归档日志生产量相关,继续检查归档日志,发现归档日志同比变化不大。

最近14日归档日志生产量:

分析结论及处理建议

分析结论

通过上述分析,IO问题主要由LOGMINER日志挖掘导致,数据库层面分析到的变化时间与硬件层面的IO监控结果基本吻合。

图片

LOGMINER挖掘的性能变化,通过SQL统计看,其执行计划没有改变,但执行频率变低但单次执行扫描的行数、内存块数增加,由于语句查询效率取决于logminer 分析的日志条目数量,推测可能为处理逻辑变化导致。

处理建议

通过上述分析得出,本次IO性能问题主要由于LOGMINER日志挖掘导致,观察执行统计发现其执行频率、效率发生改变,建议联系logminer使用的对应厂商排查当前的抽取逻辑。


墨天轮从乐知乐享的数据库技术社区蓄势出发,全面升级,提供多类型数据库管理服务。墨天轮数据库管理服务旨在为用户构建信赖可托付的数据库环境,并为数据库厂商提供中立的生态支持。
墨天轮数据库服务官网:https://www.modb.pro/service

需求背景

  • 笔者有一个台式机,微星主板的
  • 每天睡觉前都会关机,然后第二天早晨都会手动再开机
  • 但是这个有些麻烦,每天都要手动点一下开机按钮
  • 于是,需要设置每天上午定时开机自启动
  • 本文记录在微星主板的BIOS面板进行设置,从而达到每天上午开机自启动的效果

什么是BIOS面板

我们从BIOS面板会做哪些事情,来回顾一下

  • 当我们按下开机键,BIOS立刻开始工作。它会挨个检查:CPU 在吗?内存插好了吗?显卡能用吗?
  • 如果发现问题(比如内存条没插好或者接触不良),电脑就会黑屏,或者主板会有故障灯亮起来
  • 检查通过后,它会按照设定好的顺序,把CPU、内存、硬盘、USB接口等所有硬件调整到准备工作的状态
  • 比如,安装操作系统的时候从启动U盘启动,或者日常从硬盘启动(寻找操作系统的启动管理器)
  • 再然后,BIOS会把控制权交给操作系统(Windows或者Linux或MAC)
  • 最后进入GUI桌面

实际上,除了上述BIOS的启动管理以外,BIOS还可以做别的控制,比如:

  • 通过增加核心电压,让内存条超频、CPU超频
  • 设置硬件温度功耗控制
  • 设置风扇散热转速等
  • 当然,其中还有一项,就是通过RTC进行定时自动开机
BIOS面板一般主要做三件事情:1.硬件自检与初始化;2.设置启动顺序(比如从U盘启动装系统);3.调整硬件性能与功能(比如开内存XMP、开虚拟化)等

RTC自动开机逻辑流程

  • 主板上有一颗纽扣电池(CMOS电池),专门供电的硬件实时时钟Real-Time Clock,简称RTC。
  • 这个主板上的硬件时钟,一直运行(哪怕没有连接电脑电源线)
  • 当我们在BIOS 中设置了定时开机后,这个硬件时钟,会记录到定时开机时间
  • 等到对应时间后,RTC硬件实时时钟,会向主板的电源管理电路发送一个 “唤醒信号”
  • 这个信号会模拟一次按下机箱电源键的操作,进而启动标准的开机流程:主板通电 → BIOS自检 → 启动操作系统等,从而做到了自动开机

也就是说,我们在BIOS面板中,设置一下RTC的时间就行了,具体如何设置几点开机自启动,如下三图解

三张图解记录

首先进入BIOS面板(在开机后,不停按 Delete 按钮),然后切换到Advanced标签页

然后,点击Advanced按钮,右侧进入其对应的选项

我们可以看到,有Wake Up Event Setup这个选项,然后点击之

  • 首先把Resume By RTC Alarm设置为Enabled(设置为允许,一般默认不允许)
  • 然后,把Date(of month)Alarm设置为0(这样就可以每天启动了)
  • 下面的分别是时分秒,分秒大家根据自己的需求设置即可
  • 注意,因为我的系统是Ubuntu系统,所以这里的小时默认主板把RTC当成UTC,所以少了8个小时
  • 我想设置成每天上午十点十五分开机自启动,所以这个的Time(hh)Alram就是10-8=2
  • 所以设置成2就行了,因此上述的设置成的数字,分别是0、2、15、0
  • 代表每天、10点、15分、0秒自动开机自启动
  • 设置完毕以后,按下F10保存并退出,这样就实现了每天上午十点十五分,定时开机的功能了
  • 注意,电源线要始终连着电脑,毕竟开机需要有电才行
A good memory is not as reliable as a written record. Write it down...

2026 年2月,迅易科技再次顺利通过微软官方严格审核,成功获得Microsoft Azure Infrastructure & Database Migration——基础架构与数据库迁移高级专项认证(ASP)。

图片

作为微软长期合作伙伴,迅易科技已累计服务众多行业领军企业,该认证是微软云领域高含金量的专业认证之一,是对迅易科技在云架构、数据库迁移、现代化改造、治理安全以及企业级交付能力的再次认可。

图片

一、权威认可:全生命周期云迁移能力全面达标

在微软的严格评估中,迅易科技凭借覆盖策略规划、架构设计、迁移实施、自动化部署、持续运维等全流程的体系化方法,获得了多项“满分通过”评价,包括:

✔ 企业级架构设计能力:采用微软企业级 LZ 参考架构,支持大规模多业务系统迁移与管理。
✔ 数据库与应用迁移能力:具备将 SQL Server、本地数据库、跨云数据库迁移至 Azure SQL IaaS 的完整能力。
✔ 自动化部署:使用 Bicep + Azure DevOps 实现大规模自动化部署、资源编排与标准化落地。
✔ 安全与治理:为客户提供安全基线配置、策略合规、持续监控与威胁防护体系。
✔ 可观测运维体系:云上资源全栈监控、日志分析、备份策略与合规性全部达标。
✔ 完整交付体系:包括评估报告、设计文档、架构图、测试报告、运维手册等全链路文档体系。

微软报告显示,迅易科技在架构规范性、文档完备性、过程可追溯性、治理与安全实践方面表现优秀,是业界少数具备端到端交付能力的云技术服务商。这意味着迅易科技在企业全生命周期云迁移服务方面不仅“能做”,而且“能标准化、能规模化、能可视化、能可审计地做好”。

二、获得认证:迅易能为客户带来什么?

微软专项认证本质上是企业上云与核心系统迁移安全交付能力的权威背书,代表迅易科技可为众多客户带来:

  • 更安全可靠的上云体验:基于微软 CAF、WAF、LZ 标准方法论,确保架构安全合规。
  • 更高效的迁移与现代化改造:使用 Azure Migrate、DMS、Bicep、DevOps 工具链,实现自动化、高质量迁移。
  • 更低风险、更可控的迁移过程:标准化流程确保从评估→设计→迁移→测试→交付全过程透明可控。
  • 最佳性价比的云成本优化能力:基于实际客户案例,迅易科技持续帮助企业实现资源优化与费用降低。
  • 更优的性能与更强的业务连续性:通过 Well-Architected Review(微软五大支柱),确保迁移后的系统稳健运行。
    迅易科技能够获得这项资质,企业再复杂的系统,我们也能用微软标准化方法迁移到最优架构。同时,我们能够将领先企业的成功迁移经验,转化为可复制的方法论,为不同规模、不同行业的客户提供兼具高度定制化和高度可靠性的一站式上云服务。

三、独特优势:迅易全栈技术服务能力

此项ASP资质是迅易科技整体实力的一个缩影,背后依托的是我们坚实的综合服务底座。

01硬核专家积累

作为微软十余年合作伙伴,我们获得多项微软资质,核心技术团队持有10+项微软专家认证,覆盖Azure、M365、Power Platform等技术平台,包含架构师、运维工程师等关键角色。

图片

02全栈技术能力矩阵

作为国家高新技术企业,我们拥有ISO 27001、ISO 20000、CMMI 3级等全球权威认证,确保项目在安全、质量与流程上均符合国际标准。

图片

03深厚的行业理解

长期深耕于快消、制造、服务等行业,使我们深刻理解不同业务的独特需求与合规要求,能够提供与业务目标紧密对齐的技术解决方案。

04领先的云原生视野

我们不仅帮助客户迁移上云,更致力于通过云原生技术助力客户实现真正的数字化转型与创新。

-END-

云迁移不是终点,而是企业数据智能化和 AI 转型的起点。

凭借此项专项认证,迅易科技将帮助更多企业持续深耕,提供基于 Azure 的企业级数据平台建设、云上安全治理体系升级、应用现代化与容器化(AKS)、AI 应用场景构建等服务。我们将继续携手微软,帮助更多企业降低上云成本、提升系统韧性、加速AI 落地, 构建下一代数字化竞争力。

如果您的企业正面临云安全挑战、AI转型需求、端点管理难题或数据库迁移计划,迅易科技将是您值得信赖的合作伙伴。如果您有上述需求,欢迎前往迅易科技官网联系我们!

本文整理自《深入解读 VSAG——OceanBase 自研开源向量索引库》系列文章
作者 | 金加宝、李昊天、王翔宇、杨鸣宇、钟萧遥(按姓名首字母排序)

摘要:
OceanBase向量索引库VSAG通过引入SIMD、内存分配优化、量化等方法提升向量检索性能。其核心算法包括:BSA在保证检索精度的前提下加速向量距离计算;EnhanceGraph利用搜索日志和构造日志动态增强图索引,提升查询准确性;DFSANN适配存算分离架构,实现低成本混合存储检索;HGraph则通过组件化分层架构支持多场景平滑切换。

向量搜索技术,被认为是海量非结构化数据检索的关键技术之一,这会涉及到高维空间的搜索问题,通常会通过近似最近邻搜索(Approximate Nearest Neighbor Search, ANNS)的方式来在高维空间中进行检索,以此来找到满足要求的数据。

随着 AI 应用场景的发展,半结构与非结构化数据的涌现,向量数据库成为 AI 时代重要的数据基座。在 VectorDBBench 基准测试中,OceanBase 在同等环境下向量性能已达到业界主流开源向量数据库的最优水平。这一出色表现很大程度上得益于 OceanBase 向量背后的向量索引库 —— VSAG。

向量索引,作为影响向量检索准确率、查询性能的重要因素,是决定向量数据库性能的关键基础。当前,开源社区已经涌现许多算法库,每个算法库有不同的特点,适用于不同的向量检索场景,包括在相似性搜索领域最有名、维护时间最长的 FAISS 算法库 (facebookresearch/faiss);由于高效、易于集成、单线程读写等特性广泛应用于搜索推荐系统的 hnswlib 算法库(nmslib/hnswlib);以及本文将深入介绍的 OceanBase 开源向量索引库 VSAG。

VSAG 库通过引入了许多 SIMD、内存分配和布局、量化等方法,获得了卓越的近似 K 近邻图的搜索性能表现。受益于其资源管理模块,在系统中能够提供租户级细粒度的计算和存储资源管理,提供了超大规模下混合内存与磁盘的快速检索方案。VSAG 在 960 维的 GIST 数据集上表现出色,在 ANN-Benchmarks 测试中远超其他算法。

今天,让我们从最基础的概念讲起,一起走进 OceanBase 向量背后的向量索引库 VSAG,并揭秘其中各项硬核算法。

向量是什么

向量(Vector / Embedding)是一个数据结构,其中包含一个浮点数的数组。这是一个向量的示例:

向量在检索相似的图片、音频和文本等方面发挥着关键作用,这源于其数据属性和特征表示能力。在机器学习和数据科学领域,向量被广泛用于描述数据特征。以图片数据为例,我们可以将其表示为向量。在计算机中,图片本质上是由像素构成的二维矩阵。每个像素的亮度值可视为图片的一个特征,因此,我们可以将这些亮度值串联成一个高维向量,从而实现图片的向量化表示。

这种向量化表示使我们能够利用向量空间中的距离和相似度度量方法来比较不同图片之间的相似程度。例如,欧氏距离可用于衡量两个图片向量间的像素差异,而余弦相似度则可测量它们的方向差异。通过计算向量间的距离或相似度,我们可以量化评估不同图片之间的相似程度。

在实际应用中,图片除了像素亮度以外还有轮廓等更复杂的特征可以用于比对相似度,所以一般会使用神经网络来进行特征向量的提取,然后通过距离函数来衡量不同图片之间的相似度。这就是为什么向量可以被用来衡量非结构化数据的相似度。

当可搜索内容表示为向量时,查询可以在相似内容中找到接近的匹配项。用于向量生成的嵌入模型知道哪些单词和概念相似,并将生成的向量放置在嵌入空间中。例如,关于 “clouds” 和 “fog” 的向量化源文档更有可能显示在关于 “mist” 的查询中,因为它们在语义上相似,即使它们在词法上不匹配。

如何衡量向量相似度

向量相似度有几种不同的度量方法,其中最常见的是欧式距离、点积距离和余弦距离。这些度量方法各有特点和适用场景。欧式距离直观地反映了向量在空间中的绝对距离,适用于需要考虑向量大小的情况。点积距离反映了向量的方向和大小,常用于机器学习中的权重计算。余弦距离则专注于向量间的角度,忽略大小差异,特别适合文本相似度等归一化场景。选择合适的度量方法对于提高相似度计算的准确性和效率至关重要,并且往往需要根据具体的应用场景和数据特征进行权衡。

相似度搜索的一种方法:近似最近邻搜索(ANNS)

在大规模数据集中,传统的精确最近邻搜索算法可能需要花费大量时间和计算资源。因此,近似最近邻检索(Approximate Nearest Neighbor Search,ANNS)技术的出现满足了对相似度搜索更快速和高效的需求。近似最近邻检索通过牺牲一定的搜索准确度,来换取更快的搜索速度。这种特性使得 ANNS 技术在需要快速检索大规模数据集中的相似对象时极具优势,特别是在诸如推荐系统、图像识别、自然语言处理和数据挖掘等领域。近似最近邻检索技术的应用范围非常广泛,它在提高效率的同时保持了对搜索结果准确度的要求,因此在大数据量情况下更能展现出其价值。

一般来说,近似最近邻搜索依赖对数据集提前构建好一个索引,搜索在索引上进行。通过使用索引,近似最近邻搜索一般能将耗时降低几个量级。常见的向量索引类型:基于树的索引结构、基于哈希的索引结构、基于图的索引结构、基于倒排的索引结构等。这些索引对于构建时间、批量查询、异构计算等场景分别有不同的优势,一般在业务场景中会根据实际需要来选用索引。

本文开头提到的 faiss,hnswlib,包括 vsag 都属于 ANNS 算法库。

向量搜索的挑战在哪里

虽然现在我们已经有了很多成熟的开源算法,但随着非结构化数据量的持续增长,以及更多 AI 应用的诞生,向量搜索技术被提出了更多的挑战。

更快的搜索速度是第一个挑战。对于更好性能的追求在业务中是一直存在的,更快的搜索速度意味着单位实例能够服务更多的用户请求,同时更快的搜索速度能够降低访问延迟提升体验。

更高的搜索精度是第二个挑战。向量召回作为搜索推荐链路的上游环节,搜索精度很大程度上影响到整条搜索链路的召回精度上界。通过提高向量召回的精度,能够给后续的排序环节提供更加高质量的输入。在 RAG 应用中同理,向量的召回率越高,能够输入给语言大模型的内容就越好,语言大模型的回答就越准确。

更低成本的搜索是第三个挑战。更低成本更多是企业从降本增效出发,希望在技术上获得收益。向量检索因为数据结构本身的特点,查询服务的成本本来就高于标量数据。而当前音视图文数据量的增长给系统带来的服务成本来增长迅速。近几年对于低成本的向量索引的探索更多被关注到,比较有名的是微软提出的 DiskANN 算法,而后续在学术界和工业界也涌现出更多相关的后续工作。

VSAG 硬核算法详解

1.BSA(Bridging Speed and Accuracy):在保证检索精度的前提下加速向量距离计算

背景与设计目的

现有向量检索算法(如 HNSW、IVF)经过多年优化,对索引结构的改进只能带来小幅度性能提升。向量检索算法的性能瓶颈在于“距离计算”这一操作:在 HNSW 中距离计算约占 80% 的总时间开销,在 IVF 中更是接近 90%。使用计算代价更低的近似距离代替精确的距离计算,例如乘积量化(product quantization),虽然可以大幅提高距离计算的效率,然而会导致检索精度的大幅下降,使其很难应用于高精度的向量检索场景。

因此,如何既利用近似距离的实现快速计算、又能够保持高检索精度,成为了 BSA 算法试图解决的关键问题。

核心技术与实现方案

BSA 算法将向量检索中的距离计算分为两类,其中第一类为需要精确距离计算(Label 0),第二类为不需要精确距离计算(Label 1),并利用近似距离、当前搜索过程中的队列阈值作为特征,训练一个线性二分类器,通过调整模型截距来保证分类器的分类精度达到检索要求。

在搜索过程中,如果线性分类器将当前距离计算分为第一类,则需计算当前点的精确距离并更新结果队列;如果线性分类器的分类结果为第二类,该次的距离计算则可以避免。

该算法不仅可以加速内存向量检索的距离计算,同时还可以避免磁盘方案的冗余 IO。

性能表现

以下展示了几种加速距离计算的方法在 GIST 和 DEEP 两个数据集上的性能表现。结果可见,BSA+OPQ 框架实现了原始 HNSW 最高 1.7 倍的检索性能提升,以及相对原始 IVF 最高 2.2 倍的提升,远超索引结构优化带来的性能提升。同时 BSA 方法不受索引结构的限制,可以应用于任意向量检索算法。

实战应用

当前,BSA 方法在内部的数据和实际应用场景均已进行验证和应用:

在 100w 数据集上,在召回率不降低的前提下,搜索耗时从 7.53ms 下降到4.85ms,降低 35.59% 。这意味着吞吐能够增加 55.25% 。
在 1000w 数据集上,在召回率不降低的前提下,搜索耗时从 10.09ms 下降到7.33ms,降低 27.35% 。这意味着吞吐能够增加 37.64% 。

2. EnhanceGraph:动态增强的图索引构建,提升查询准确性

背景与设计目的

以 k-NNs Graph 为例,基于图的近似最近邻搜索(ANNS)算法以其优越的搜索性能和精确性成为主流。为了对其进行进一步优化,当前许多研究正在探索通过边的剪枝策略,减少索引的空间占用和提高搜索效率,然而此类策略往往会导致检索精度大幅下降。此外,由于传统基于图的索引在构建后将保持静态,所以在人脸识别等服务中经常会出现反复识别失败的情况。

面对上述挑战,EnhanceGraph 将搜索日志和构建日志用于辅助图索引的构建,从而有效利用历史查询数据和被丢弃的信息完善图索引,从而在保障查询性能的同时提升准确性。

核心技术与实现方案

EnhanceGraph 利用搜索日志和构造日志对图进行动态增强,前者可用于检测图结构中的缺陷,后者可用于补充近似图中缺失的 k-NNs,从而在可接受的空间成本增加的情况下显著提高查询的准确性。

与现有的索引在构建完成后即保持静态不同,EnhanceGraph 允许在搜索过程中实时进行反馈,基于用户的实时反馈或历史查询生成共轭图,用于维护所有反馈的召回信息。在线搜索时,第一阶段首先在近邻图进行搜索,第二阶段使用共轭图对搜索结果进行补充以增强召回表现。

具体来说,在构建图索引时,首先将近似图中被裁掉的边(构造日志)添加到共轭图中。在历史查询中,将失败查询时收敛到的局部最优解,与离线计算或者用户反馈的全局最优解结合,构成搜索日志。基于搜索日志,可以在共轭图中添加缺失的从局部最优解到全局最优解的边。这些边将在搜索的第二阶段补充搜索结果,以提高召回率,确保历史中失败的查询不会再次收敛到局部最优。

性能表现

如图所示为 EnhanceGraph 在若干主流数据集(GIST1M;SIFT1M;GloVe-100)和蚂蚁数据集上对召回率增强的表现。

结果显示,在部分数据集上,EnhanceGraph 能显著提高 Recall@1 的召回率,最高从 41.74% 提升到 93.42%。得益于从生成的查询和历史的查询得到的搜索信息,大幅度降低了未来的查询对 TOP1 最近邻的召回失败情况。对于OceanBase 数据集,即使是 Recall@1 非常高的情况下也能无损 QPS 提高召回率(从 99.8% 提升到 99.9%)。另外,使用构建信息对二阶段搜索进行补充也显著提升了 Recall@10。

实战应用

当前,EnhanceGraph 已在实际业务场景中进行了测试验证:

在 100w 数据集上,使用生成式方法,在几乎不降低 QPS 和使用少量额外存储空间(少于 7%),提升 HNSW 的 TOP-1 召回率从 99.8% 到 99.96% 。保证召回失败的人群有 80% 以上的概率不会再失败。
在 100w 数据集上,使用历史查询进行反馈,在几乎不降低 QPS 和使用少量额外存储空间(少于 3%),提升 HNSW 的 TOP-1 召回率从 99.8% 到 99.97% 。保证召回失败的人群有 85% 以上的概率不会再失败。

3. DFSANN:适配存算分离架构的低成本检索方案

背景与设计目的

当下的向量检索的研究主要关注纯内存向量索引的性能,较少关注海量数据的存储性能。然而,随着非结构化数据的快速膨胀,内存开销增加,数据的存储成本飙升,只使用压缩方法会显著降低精度;同时,存算分离架构中的共享存储相比起本地 SSD 会有更高的 IO 成本,这导致现有的基于 IO 的检索方案(例如DiskANN、SPANN等)不一定有比较高的性能。

因此,业界迫切地需要一种能够适配在存算分离架构系统上的低成本的检索方案。

核心技术与实现方案

现有磁盘方案中,搜索过程会产生频繁 IO,且重排阶段有较多不必要的精确距离计算,从而造成资源浪费。为此,DFSANN 先将搜索过程与 IO 过程进行解耦,再通过优化 IO 方案实现有效降本。一方面,通过减少 IO 次数和 IO 后的重排数据量来优化检索时间,另一方面,通过异步下放 IO 来减少总的 IO 时间:

缓存 Graph 与部分 IO:

将 Graph 缓存至内存,原始数据仍在底层存储中,在搜索过程中使用压缩向量进行快速检索,对近似距离进行排序,仅在结果重排阶段对最有可能的部分后续集进行 IO,从而降低少对磁盘的依赖。

优化 IO 方案:

边搜边 IO: 搜索中异步下发 IO 请求,获取全部候选集对应的精确向量,搜完后只计算部分候选集合的精确距离。该方法虽然需要全量 IO,但只计算部分集合,此外由于 IO 在搜索过程中下发,重排时无需等待,IO 的耗时开销几近于无。

搜完再 IO: 在搜索过程中积累 IO 请求,搜索完成后,根据近似距离排序结果将部分更有可能是最终结果的候选集对应的 IO 请求一次性异步下发,并计算精确距离。该方案可减少 IO 量,但搜索耗时会稍高一些。

进一步的成本优化:当前方案能够在较短的时间内实现较高召回率的检索。然而,受限于本地 SSD 的 IO 并发与图索引的构建成本,单机一般不会只构建一个大规模索引,导致单次检索产生巨大的 IO 开销。后续将采用预聚合(即,预先将部分点聚类成簇)的方式进一步降低存储成本和 IO 成本。

性能表现

在随机数据上的实验结果显示,DFSANN 的两套搜索模式都显著优于原始 DiskANN,特别当存储介质是 DFS 时,DFSANN 的吞吐显著优于 DiskANN。

4. HGraph:适配通用场景,支持平滑切换的六边形战士

背景与设计目的

现有的向量算法往往针对特定的需求,只能做到部分场景的适配。如果伴随业务需求调整,需要切换算法,则算法之间的异构特性会导致切换难度大,同时切换后存在各种不确定性的隐患。HGraph 致力于实现一套支持多种场景并且可以平滑切换的索引。

核心技术与实现方案

HGraph 基于组件化的分层架构,弹性化各个向量检索组件(量化器,IO 模块,图结构模块等),部分组件支持可插拔能力,通过不同组件的配置支持广泛的业务场景,且几乎保持同等性能。

HGraph的分层架构包括:
基础的算子层:包括量化器算子,IO访问算子等,支持新型的量化算法变更,支持多种数据访问方式;
数据组织层:提供算法核心能力,支持多种算法角度的数据结构管理、访问与计算能力;
接口抽象层:屏蔽底层的数据结构细节,提供统一的访问接口;
基础索引层:支持具体的索引算法结构,包含了构建、训练、检索的工作流,以及标签过滤、范围查询等特定功能。

适配不同场景,HGraph 提供多种组装方案。例如纯内存场景、混合存储场景等,用户在使用上只需要修改配置参数即可实现不同索引类型,支持快速迭代落地。

此外,HGraph 还在算法兼容和工程层面实现了多项优化。算法兼容方面已实现对 BSA、EnhanceGraph、DFSANN 等算法的兼容;工程层面,通过优化算子调用开销、SIMD 混合加速、预取优化等方案,实现了性能对标专业领域索引,甚至有所超越。

典型场景配置

HGraph支持大部分应用场景,覆盖不同数据规格,不同精度诉求,尤其是希望一套索引支持多个场景和具备平滑切换能力的场景。

高性能,高精度场景(数据规模 1M-100M,内存资源充足,精度 99%+,性能要求高):带重排和共轭图的纯内存方案;或单层 FP32 图,配合共轭图提升精度。

低内存,高性能场景(数据规模 100M-10B,内存资源紧张,精度 96%-98%,性能要求高)。

低成本,混合存储场景(数据规模 10B-1000B,内存资源十分紧张,精度和性能要求放宽)

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/

一、背景与痛点

业务场景

在实时大数据处理场景中,Flink + ClickHouse 的组合被广泛应用于:

  • 日志处理: 海量应用日志实时写入分析库。
  • 监控分析: 业务指标、APM 数据的实时聚合。

这些场景的共同特点:

  • 数据量大:百万级 TPS,峰值可达千万级。
  • 写入延迟敏感: 需要秒级可见。
  • 数据准确性要求高:不允许数据丢失。
  • 多表写入: 不同数据根据分表策略写入不同的表。

开源 Flink ClickHouse Sink 的痛点

Flink 官方提供的 ClickHouse Sink(flink-connector-jdbc)在生产环境中存在以下严重问题:

痛点一:缺乏基于数据量的攒批机制

问题表现:

// Flink 官方 JDBC Sink 的实现
public class JdbcSink<T> extends RichSinkFunction<T> {
    private final int batchSize;  // 固定批次大小
    @Override
    public void invoke(T value, Context context) {
        bufferedValues.add(value);
        if (bufferedValues.size() >= batchSize) {
            // 只能基于记录数攒批,无法基于数据量
            flush();
        }
    }

带来的问题:

  1. 内存占用不可控: 100 条 1KB 的日志和 100 条 10MB 的日志占用内存差距 100 倍。
  2. OOM 风险高: 大日志记录(如堆栈转储)会迅速撑爆内存。
  3. 写入性能差: 无法根据记录大小动态调整批次,导致小记录批次过大浪费网络开销。

痛点二:无法支持动态表结构

问题表现:

// Flink 官方 Sink 只能写入固定表
public class JdbcSink {
    private final String sql;  // 固定的 INSERT SQL
    public JdbcSink(String jdbcUrl, String sql, ...) {
        this.sql = sql;  // 硬编码的表结构
    }
}

带来的问题:

  1. 多应用无法隔离: 所有应用的数据写入同一张表,通过特定分表策略区分。
  2. 扩展性差: 新增应用需要手动建表,无法动态路由。
  3. 性能瓶颈: 单表数据量过大(百亿级),查询和写入性能急剧下降。

痛点三:分布式表写入性能问题

问题表现:

// 大多数生产实现直接写入分布式表
INSERT INTO distributed_table_all VALUES (...)

ClickHouse 分布式表的工作原理:

带来的问题:

  1. 网络开销大: 数据需要经过分布式表层转发,延迟增加。
  2. 写入性能差: 分布式表增加了路由和转发逻辑,吞吐量降低。
  3. 热点问题: 所有数据先到分布式表节点,再转发,造成单点瓶颈。

生产级方案的核心改进

针对以上痛点,本方案提供了以下核心改进:

改进一:基于数据量的攒批机制

public class ClickHouseSinkCounter {
    private Long metaSize;  // 累计数据量(字节)
    public void add(LogModel value) {
        this.values.add(value);
        this.metaSize += value.getMetaSize();  // 累加数据量
    }
}
// 触发条件
private boolean flushCondition(String application) {
    return checkMetaSize(application)  // metaSize >= 10000 字节
        || checkTime(application);     // 或超时 30 秒
}

优势:

  • 内存可控: 根据数据量而非记录数攒批。
  • 精确控制: 1KB 的记录攒 10000 条 = 10MB,1MB 的记录攒 10 条 = 10MB。
  • 避免OOM: 大日志记录不会撑爆内存。

改进二:动态表结构与分片策略

public abstract class ClickHouseShardStrategy<T> {
    public abstract String getTableName(T data);
}
//日志侧实现为应用级分表
public class LogClickHouseShardStrategy extends ClickHouseShardStrategy<String> {
    @Override
    public String getTableName(String application) {
        // 动态路由:order-service → tb_logs_order_service
        return String.format("tb_logs_%s", application);
    }
}

优势:

  • 应用隔离: 日志侧内置应用级分表,每个应用独立分表。
  • 动态路由: 根据 application 自动路由到目标表。
  • 扩展性强: 新增应用无需手动建表(配合 ClickHouse 自动建表)。

改进三:本地表写入 + 动态节点发现

public class ClickHouseLocalWriter extends ClickHouseWriter {
    // 直接写本地表,避免分布式表转发
    private final ConcurrentMap<String, HikariDataSource> dataSourceMap;
    @Override
    public HikariDataSource getNextDataSource(Set<String> exceptionHosts) {
        // 1. 动态获取集群节点列表
        List<String> healthyHosts = getHealthyHosts(exceptionHosts);
        // 2. 随机选择健康节点
        return dataSourceMap.get(healthyHosts.get(random.nextInt(size)));
    }
}

优势:

  • 性能提升: 直接写本地表,避免网络转发。
  • 高可用: 动态节点发现 + 故障节点剔除。
  • 负载均衡: 随机选择 + Shuffle 初始化。

技术方案概览

基于以上改进,本方案提供了以下核心能力:

  1. 本地表/分布式表写入: 性能优化与高可用平衡。
  2. 分片策略: 按应用维度路由与隔离。
  3. 攒批与内存控制: 双触发机制(数据量 + 超时)。
  4. 流量控制与限流: 有界队列 + 连接池。
  5. 健壮的重试机制: 递归重试 + 故障节点剔除。
  6. Checkpoint 语义保证: At-Least-Once 数据一致性。

二、核心架构设计

架构图

核心组件

核心流程

三、本地表 vs 分布式表写入

ClickHouse 表结构说明

ClickHouse 推荐直接写本地表,原因:

  1. 写入性能: 避免分布式表的网络分发。
  2. 数据一致性: 直接写入目标节点,减少中间环节故障点,比分布式表写入更安全,利于工程化。
  3. 负载均衡: 客户端路由实现负载分散。
-- 本地表(实际存储数据)
CREATE TABLE tb_logs_local ON CLUSTER 'default' (
    application String,
    environment String,
    message String,
    log_time DateTime
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(log_time)
ORDER BY (application, log_time);
-- 分布式表(逻辑视图,不存储数据)
CREATE TABLE tb_logs_all ON CLUSTER 'default' AS tb_logs_local
ENGINE = Distributed('default', dw_log, tb_logs_local, cityHash64(application));

HikariCP 连接池配置

// HikariCP 连接池配置
public class ClickHouseDataSourceUtils {
    private static HikariConfig getHikariConfig(DataSourceImpl dataSource) {
        HikariConfig config = new HikariConfig();
        config.setConnectionTimeout(30000L);    // 连接超时 30s
        config.setMaximumPoolSize(20);          // 最大连接数 20
        config.setMinimumIdle(2);               // 最小空闲 2
        config.setDataSource(dataSource);
        return config;
    }
    private static Properties getClickHouseProperties(ClickHouseSinkCommonParams params) {
        Properties props = new Properties();
        props.setProperty("user", params.getUser());
        props.setProperty("password", params.getPassword());
        props.setProperty("database", params.getDatabase());
        props.setProperty("socket_timeout", "180000");      // Socket 超时 3 分钟
        props.setProperty("socket_keepalive", "true");      // 保持连接
        props.setProperty("http_connection_provider", "APACHE_HTTP_CLIENT");
        return props;
    }
}

配置说明:

  • maxPoolSize=20:每个 ClickHouse 节点最多 20 个连接。
  • minIdle=2:保持 2 个空闲连接,避免频繁创建。
  • socket_timeout=180s:Socket 超时 3 分钟,防止长时间查询阻塞。

ClickHouseLocalWriter:动态节点发现

public class ClickHouseLocalWriter extends ClickHouseWriter {
    // 本地节点缓存,按 IP 维护
    private final ConcurrentMap<String, HikariDataSource> dataSourceMap;
    // 动态获取集群本地表节点
    private final ClusterIpsUtils clusterIpsUtils;
    // IP 变更标志(CAS 锁,避免并发更新)
    private static final AtomicBoolean IP_CHANGING = new AtomicBoolean(false);
    @Override
    public HikariDataSource getNextDataSource(Set<String> exceptionHosts) {
        // 1️⃣ 检测集群节点变化(通过 CAS 避免并发更新)
        if (clusterIpsChanged() && IP_CHANGING.compareAndSet(false, true)) {
            try {
                ipChanged(); // 动态更新 dataSourceMap
            } finally {
                IP_CHANGING.set(false);
            }
        }
        // 2️⃣ 获取异常节点列表(从 Redis + APM 实时查询)
        Set<String> exceptIps = clusterIpsUtils.getExceptIps();
        exceptIps.addAll(exceptionHosts);
        // 3️⃣ 过滤健康节点,随机选择
        List<String> healthyHosts = dataSourceMap.keySet().stream()
            .filter(host -> !exceptIps.contains(host))
            .collect(Collectors.toList());
        if (CollectionUtils.isEmpty(healthyHosts)) {
            throw new RuntimeException("Can't get datasource from local cache");
        }
        return dataSourceMap.get(healthyHosts.get(random.nextInt(healthyHosts.size())));
    }
    private void ipChanged() {
        List<String> clusterIps = clusterIpsUtils.getClusterIps();
        // 新增节点:自动创建连接池
        clusterIps.forEach(ip ->
            dataSourceMap.computeIfAbsent(ip, v ->
                createHikariDataSource(ip, port)
            )
        );
        // 移除下线节点:关闭连接池
        dataSourceMap.forEach((ip, ds) -> {
            if (!clusterIps.contains(ip)) {
                dataSourceMap.remove(ip);
                ds.close();
            }
        });
    }
}

核心逻辑:

  1. 动态节点发现: 从 system.clusters 查询所有节点。
  2. 自动扩缩容: 节点上线自动加入,下线自动剔除。
  3. 故障节点剔除: 通过 APM 监控,自动剔除异常节点。
  4. 负载均衡: 随机选择健康节点,避免热点。

集群节点动态发现(ClusterIpsUtils)

public class ClusterIpsUtils {
    // 从 system.clusters 查询所有节点
    private static final String QUERY_CLUSTER_IPS =
        "select host_address from system.clusters where cluster = 'default'";
    // LoadingCache:定时刷新节点列表(1 小时)
    private final LoadingCache<String, List<String>> clusterIpsCache =
        CacheBuilder.newBuilder()
            .expireAfterAccess(10, TimeUnit.HOURS)
            .refreshAfterWrite(1, TimeUnit.HOURS)
            .build(CacheLoader.asyncReloading(new CacheLoader<>() {
                @Override
                public List<String> load(String dbName) {
                    return queryClusterIps();  // 定时刷新节点列表
                }
            }));
    // 异常节点缓存(1 分钟刷新)
    private final LoadingCache<String, FlinkExceptIpModel> exceptIpsCache =
        CacheBuilder.newBuilder()
            .refreshAfterWrite(1, TimeUnit.MINUTES)
            .build(CacheLoader.asyncReloading(new CacheLoader<>() {
                @Override
                public FlinkExceptIpModel load(String dbName) {
                    return queryExceptIp();  // 从 Redis + APM 查询异常节点
                }
            }));
}

异常节点监控策略:

  • 磁盘使用率 >= 90%: 从 APM 查询 Prometheus 指标,自动加入黑名单。
  • HTTP 连接数 >= 50: 连接数过多说明节点压力大,自动加入黑名单。
  • 人工配置: 通过 Redis 配置手动剔除节点

数据来源:

  1. ClickHouse system.clusters 表: 获取所有集群节点。
  2. APM Prometheus 接口: 监控节点健康状态。
  3. Redis 缓存: 人工配置的异常节点。

负载均衡优化

public class ClickHouseWriter {
    public <T> ClickHouseWriter(...) {
        // Shuffle:随机打乱数据源顺序
        Collections.shuffle(clickHouseDataSources);
        this.clickHouseDataSources = clickHouseDataSources;
    }
    public HikariDataSource getNextDataSource(Set<String> exceptionHosts) {
        // 轮询 + 随机选择(已 shuffle,避免热点)
        int current = this.currentRandom.getAndIncrement();
        if (current >= clickHouseDataSources.size()) {
            this.currentRandom.set(0);
        }
        return clickHouseDataSources.get(currentRandom.get());
    }
}

优势:

  • 初始化时 shuffle,避免所有 writer 同时从第一个节点开始。
  • 轮询 + 随机选择,负载分散更均匀。
  • 故障节点自动剔除。

四、支持分表策略

分片策略抽象

public abstract class ClickHouseShardStrategy<T> {
    private String tableName;      // 表名模板,如 "tb_log_%s"
    private Integer tableCount;    // 分表数量
    // 根据数据决定目标表名
    public abstract String getTableName(T data);
}

日志分片实现

public class LogClickHouseShardStrategy extends ClickHouseShardStrategy<String> {
    @Override
    public String getTableName(String application) {
        // 表名格式:tb_log_{application}
        // 例如:application = "order-service" -> table = "tb_log_order_service"
        return String.format(
            this.getTableName(),
            application.replace("-", "_").toLowerCase()
        );
    }
}

按表(应用)维度的缓冲区

日志侧维度降级为应用名称维度缓冲区,实则因为按照应用分表,

业务方可使用自身分表策略携带表名元数据,进行表维度缓冲。

public class ClickHouseShardSinkBuffer {
    // 按 application 分组的缓冲区(ConcurrentHashMap 保证并发安全)
    private final ConcurrentHashMap<String, ClickHouseSinkCounter> localValues;
    public void put(LogModel value) {
        String application = value.getApplication();
        // 1️⃣ 检查是否需要 flush
        if (flushCondition(application)) {
            addToQueue(application); // 触发写入
        }
        // 2️⃣ 添加到缓冲区(线程安全的 compute 操作)
        localValues.compute(application, (k, v) -> {
            if (v == null) v = new ClickHouseSinkCounter();
            v.add(value);
            return v;
        });
    }
    private void addToQueue(String application) {
        localValues.computeIfPresent(application, (k, v) -> {
            // 深拷贝并清空(避免并发修改异常)
            List<LogModel> deepCopy = v.copyValuesAndClear();
            // 构造请求 Blank:application + targetTable + values
            String targetTable = shardStrategy.getTableName(application);
            ClickHouseRequestBlank blank = new ClickHouseRequestBlank(deepCopy, application, targetTable);
            // 放入队列
            writer.put(blank);
            return v;
        });
    }
}

核心设计:

  • 应用隔离: 每个表(应用)独立的 buffer,互不影响。
  • 线程安全: 使用 ConcurrentHashMap.compute()保证并发安全。
  • 深拷贝: List.copyOf() 创建不可变副本,避免并发修改。
  • 批量清空: 一次性取出所有数据,清空计数器。

五、攒批与内存控制

双触发机制

public class ClickHouseShardSinkBuffer {
    private final int maxFlushBufferSize;  // 最大批次大小(如 10000)
    private final long timeoutMillis;      // 超时时间(如 30s)
    // 触发条件检查(满足任一即触发)
    private boolean flushCondition(String application) {
        return localValues.get(application) != null
            && (checkMetaSize(application) || checkTime(application));
    }
    // 条件1:达到批次大小
    private boolean checkMetaSize(String application) {
        return localValues.get(application).getMetaSize() >= maxFlushBufferSize;
    }
    // 条件2:超时
    private boolean checkTime(String application) {
        long current = System.currentTimeMillis();
        return current - localValues.get(application).getInsertTime() > timeoutMillis;
    }
}

批次大小计算

public class ClickHouseSinkCounter {
    private final List<LogModel> values;
    private Long metaSize; // 累计的 metaSize(字节)
    public void add(LogModel value) {
        this.values.add(value);
        this.metaSize += value.getMetaSize(); // 累加 metaSize
    }
    public List<LogModel> copyValuesAndClear() {
        List<LogModel> logModels = List.copyOf(this.values); // 深拷贝(不可变)
        this.values.clear();
        this.metaSize = 0L;
        this.insertTime = System.currentTimeMillis();
        return logModels;
    }
}

关键点:

  • 使用 metaSize(字节数)而非记录数控制批次,内存控制更精确。
  • List.copyOf() 创建不可变副本,避免并发修改。
  • 清空后重置 insertTime,保证超时触发准确性。

带随机抖动的超时

private final long timeoutMillis;
public ClickHouseShardSinkBuffer(..., int timeoutSec, ...) {
    // 基础超时 + 10% 随机抖动(避免惊群效应)
    this.timeoutMillis = TimeUnit.SECONDS.toMillis(timeoutSec)
                      + new SecureRandom().nextInt((int) (timeoutSec * 0.1 * 1000));
}

目的: 避免多个TM 同时触发 flush,造成写入流量峰值。

配置示例

ClickHouseShardSinkBuffer.Builder
    .aClickHouseSinkBuffer()
    .withTargetTable("single_table")  //单表时,可直接使用指定表名
    .withMaxFlushBufferSize(10000)  // 对应字节数
    .withTimeoutSec(30)              // 30 秒超时
    .withClickHouseShardStrategy(new LogClickHouseShardStrategy("table_prefix_%s", 8))  //分表策略时,使用
    // 分表策略可根据业务实际情况进行扩展
    .build(clickHouseWriter);

六、写入限流与流量控制

有界队列设计

public class ClickHouseWriter {
    // 有界阻塞队列
    private final BlockingQueue<ClickHouseRequestBlank> commonQueue;
    public ClickHouseWriter(ClickHouseSinkCommonParams sinkParams, ...) {
        // 队列最大容量配置(默认 10)
        this.commonQueue = new LinkedBlockingQueue<>(sinkParams.getQueueMaxCapacity());
    }
    public void put(ClickHouseRequestBlank params) {
        unProcessedCounter.incrementAndGet();
        // put() 方法在队列满时会阻塞,实现背压
        commonQueue.put(params);
    }
}

背压传导:

线程池并发控制

public class ClickHouseWriter {
    private final int numWriters; // 写入线程数
    private ExecutorService service;
    private void buildComponents() {
        ThreadFactory threadFactory = ThreadUtil.threadFactory("clickhouse-writer");
        service = Executors.newFixedThreadPool(numWriters, threadFactory);
        // 创建多个 WriterTask 并提交
        for (int i = 0; i < numWriters; i++) {
            WriterTask task = new WriterTask(i, commonQueue, sinkParams, futures, unProcessedCounter);
            service.submit(task);
        }
    }
}

WriterTask 消费逻辑

class WriterTask implements Runnable {
    @Override
    public void run() {
        isWorking = true;
        while (isWorking || !queue.isEmpty()) {
            // poll() 超时返回(100ms),避免无限等待
            ClickHouseRequestBlank blank = queue.poll(100, TimeUnit.MILLISECONDS);
            if (blank != null) {
                // 创建 Future 并设置超时(3 分钟)
                CompletableFuture<Boolean> future = new CompletableFuture<>();
                future.orTimeout(3, TimeUnit.MINUTES);
                futures.add(future);
                try {
                    send(blank, future, new HashSet<>());
                } finally {
                    // final 进行未知异常兜底,防止为捕获异常造成future状态不完成,永久阻塞
                    if (!future.isDone()) {
                        future.completeExceptionally(new RuntimeException("Unknown exception"));
                    }
                    queueCounter.decrementAndGet();
                }
            }
        }
    }
}

配置参数

七、重试机制与超时控制

Future 超时控制

public class ClickHouseWriter {
    private final int numWriters; // 写入线程数
    private ExecutorService service;
    private void buildComponents() {
        ThreadFactory threadFactory = ThreadUtil.threadFactory("clickhouse-writer");
        service = Executors.newFixedThreadPool(numWriters, threadFactory);
        // 创建多个 WriterTask 并提交
        for (int i = 0; i < numWriters; i++) {
            WriterTask task = new WriterTask(i, commonQueue, sinkParams, futures, unProcessedCounter);
            service.submit(task);
        }
    }
}

超时策略:

  • Future 超时: 3 分钟(orTimeout)。
  • Socket 超时: 3 分钟(socket_timeout=180000)。
  • 连接超时: 30 秒(connectionTimeout=30000)。

重试逻辑

class WriterTask implements Runnable {
    @Override
    public void run() {
        isWorking = true;
        while (isWorking || !queue.isEmpty()) {
            // poll() 超时返回(100ms),避免无限等待
            ClickHouseRequestBlank blank = queue.poll(100, TimeUnit.MILLISECONDS);
            if (blank != null) {
                // 创建 Future 并设置超时(3 分钟)
                CompletableFuture<Boolean> future = new CompletableFuture<>();
                future.orTimeout(3, TimeUnit.MINUTES);
                futures.add(future);
                try {
                    send(blank, future, new HashSet<>());
                } finally {
                    // final 进行未知异常兜底,防止为捕获异常造成future状态不完成,永久阻塞
                    if (!future.isDone()) {
                        future.completeExceptionally(new RuntimeException("Unknown exception"));
                    }
                    queueCounter.decrementAndGet();
                }
            }
        }
    }
}

重试控制逻辑

private void handleUnsuccessfulResponse(..., Set<String> exceptHosts) {
    // 检查 Future 是否已完成(避免重复完成)
    if (future.isDone()) {
        return;
    }
    if (attemptCounter >= maxRetries) {
        // 达到最大重试次数,标记失败
        future.completeExceptionally(new RuntimeException("Max retries exceeded"));
    } else {
        // 递归重试
        requestBlank.incrementCounter();
        send(requestBlank, future, exceptHosts); // 递归调用,排除失败节点
    }
}

重试策略:

  • 递归重试: 失败后递归调用,直到成功或达到最大次数。
  • 异常节点隔离: 每次重试时排除失败的节点(exceptHosts)。
  • 超时控制: Future 超时(3 分钟)防止永久阻塞。

为什么递归重试是更好的选择

递归重试(当前实现)

队列重试(假设方案)

保证一致性

  // ClickHouseWriter.java:139-158
  while (!futures.isEmpty() || unProcessedCounter.get() > 0) {
      CompletableFuture<Void> future = FutureUtil.allOf(futures);
      future.get(3, TimeUnit.MINUTES);  // 阻塞直到全部完成
  }
  • Checkpoint 时所有数据要么全部成功,要么全部失败。
  • 重启后不会有部分数据重复的问题。

简单可靠

  • 代码逻辑清晰。
  • 对于队列重试且不重复,需要复杂的二阶段提交(这里暂不展开),大幅增加代码复杂度。

性能可接受

class WriterTask implements Runnable {
    @Override
    public void run() {
        while (isWorking || !queue.isEmpty()) {
            ClickHouseRequestBlank blank = queue.poll(100, TimeUnit.MILLISECONDS);
            if (blank != null) {
                // 创建 Future 并设置 3 分钟超时
                CompletableFuture<Boolean> future = new CompletableFuture<>();
                future.orTimeout(3, TimeUnit.MINUTES); // 防止永久阻塞
                futures.add(future);
                try {
                    send(blank, future, new HashSet<>());
                } finally {
                    if (!future.isDone()) {
                        future.completeExceptionally(new RuntimeException("Timeout"));
                    }
                    queueCounter.decrementAndGet();
                }
            }
        }
    }
}
  • 虽然阻塞,但有超时保护。
  • ClickHouse 写入通常很快(秒级)。
  • 网络故障时重试也合理。

避开故障节点

  // ClickHouseWriter.java:259-260
  HikariDataSource dataSource = getNextDataSource(exceptHosts);
  • 递归时可以传递 exceptHosts。
  • 自动避开失败的节点。
  • 提高成功率。

异常节点剔除

// 特殊错误码列表(自动加入黑名单)
private final List<Integer> ignoreHostCodes = Arrays.asList(210, 1002);
public HikariDataSource getNextDataSource(Set<String> exceptionHosts) {
    if (CollectionUtils.isNotEmpty(exceptionHosts)) {
        // 过滤异常节点
        List<HikariDataSource> healthyHosts = clickHouseDataSources.stream()
            .filter(ds -> !exceptionHosts.contains(getHostFromUrl(ds)))
            .collect(Collectors.toList());
        if (CollectionUtils.isEmpty(healthyHosts)) {
            return null; // 所有节点都异常
        }
        return healthyHosts.get(random.nextInt(healthyHosts.size()));
    }
    // 正常轮询(已 shuffle,避免热点)
    return clickHouseDataSources.get(currentRandom.getAndIncrement() % size);
}

故障节点剔除策略:

  1. 错误码 210(网络异常): 自动加入黑名单。
  2. 错误码 1002(连接池异常): 自动加入黑名单。
  3. APM 监控: 磁盘 >= 90%、HTTP 连接 >= 50 的节点。
  4. 手动配置: 通过 Redis 配置剔除。

恢复机制:

  • LoadingCache 定时刷新(1 分钟)。
  • 节点恢复健康后自动从黑名单移除。

重试流程图

八、异常处理模式

两种 Sink 模式

public Sink buildSink(String targetTable, String targetCount, int maxBufferSize) {
    IClickHouseSinkBuffer buffer = ClickHouseShardSinkBuffer.Builder
        .aClickHouseSinkBuffer()
        .withTargetTable(targetTable)
        .withMaxFlushBufferSize(maxBufferSize)
        .withClickHouseShardStrategy(new LogClickHouseShardStrategy(targetTable, count))
        .build(clickHouseWriter);
    // 根据配置选择模式
    if (ignoringClickHouseSendingExceptionEnabled) {
        return new UnexceptionableSink(buffer);  // 忽略异常
    } else {
        return new ExceptionsThrowableSink(buffer); // 抛出异常
    }
}

UnexceptionableSink(忽略异常 - At-Most-Once)

public class UnexceptionableSink implements Sink<LogModel> {
    private final IClickHouseSinkBuffer<LogModel> buffer;
    @Override
    public void put(LogModel message) {
        buffer.put(message);  // 不检查 Future 状态
    }
    @Override
    public void flush() {
        buffer.flush();
    }
}

适用场景:

  • 允许部分数据丢失。
  • 不希望因写入异常导致任务失败。
  • 对数据准确性要求不高(如日志统计)。

语义保证:At-Most-Once(最多一次)

ExceptionsThrowableSink(抛出异常 - At-Least-Once)

public class ExceptionsThrowableSink implements Sink<LogModel> {
    private final IClickHouseSinkBuffer<LogModel> buffer;
    @Override
    public void put(LogModel message) throws ExecutionException, InterruptedException {
        buffer.put(message);
        // 每次写入都检查 Future 状态
        buffer.assertFuturesNotFailedYet();
    }
    @Override
    public void flush() throws ExecutionException, InterruptedException {
        buffer.flush();
    }
}

Future 状态检查:

public void assertFuturesNotFailedYet() throws ExecutionException, InterruptedException {
    CompletableFuture<Void> future = FutureUtil.allOf(futures);
    // 非阻塞检查
    if (future.isCompletedExceptionally()) {
        logger.error("There is something wrong with the future. exist sink now");
        future.get(); // 抛出异常,导致 Flink 任务失败
    }
}

适用场景:

  • 数据准确性要求高。
  • 需要保证所有数据写入成功。
  • 异常时希望 Flink 任务失败并重启。

语义保证:At-Least-Once(至少一次)

Future 清理策略与并发控制

定时检查器

public class ClickHouseSinkScheduledCheckerAndCleaner {
    private final ScheduledExecutorService scheduledExecutorService;
    private final List<CompletableFuture<Boolean>> futures;
    // ⚠️ volatile 保证多线程可见性(关键并发控制点)
    private volatile boolean isFlushing = false;
    public ClickHouseSinkScheduledCheckerAndCleaner(...) {
        // 单线程定时执行器
        scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(factory);
        // 定时执行清理任务(每隔 checkTimeout 秒,默认 30 秒)
        scheduledExecutorService.scheduleWithFixedDelay(getTask(), ...);
    }
    private Runnable getTask() {
        return () -> {
            synchronized (this) {
                //  关键:检查是否正在 flush,避免并发冲突
                if (isFlushing) {
                    return; // Checkpoint 期间暂停清理
                }
                // 1️⃣ 清理已完成的 Future
                futures.removeIf(filter);
                // 2️⃣ 触发所有 Buffer 的 flush(检查是否需要写入)
                clickHouseSinkBuffers.forEach(IClickHouseSinkBuffer::tryAddToQueue);
            }
        };
    }
    // Checkpoint flush 前调用(暂停 cleaner)
    public synchronized void beforeFlush() {
        isFlushing = true;
    }
    // Checkpoint flush 后调用(恢复 cleaner)
    public synchronized void afterFlush() {
        isFlushing = false;
    }
}

核心设计:

  • volatile boolean isFlushing: 标志位,协调 cleaner 与 checkpoint 线程。
  • synchronized (this): 保证原子性,避免并发冲突。
  • 单线程执行器: 避免 cleaner 内部并发问题。

并发控制机制

问题场景:

时间轴冲突:
T1: Cleaner 线程正在执行 tryAddToQueue()
T2: Checkpoint 触发,调用 sink.flush()
T3: Cleaner 同时也在执行 tryAddToQueue()
    ├─ 可能导致:数据重复写入
    ├─ 可能导致:Buffer 清空顺序混乱
    └─ 可能导致:Future 状态不一致

解决方案:

// ClickHouseSinkManager.flush()
public void flush() {
    // 1️⃣ 暂停定时清理任务(设置标志)
    clickHouseSinkScheduledCheckerAndCleaner.beforeFlush(); // isFlushing = true
    try {
        // 2️⃣ 执行 flush(此时 cleaner 线程会跳过执行)
        clickHouseWriter.waitUntilAllFuturesDone(false, false);
    } finally {
        // 3️⃣ 恢复定时清理任务
        clickHouseSinkScheduledCheckerAndCleaner.afterFlush(); // isFlushing = false
    }
}

并发控制流程:

关键设计点:

  1. volatile 保证可见性: isFlushing 使用 volatile,确保多线程间的可见性。
  2. synchronized 保证原子性: getTask() 整个方法体使用 synchronized (this)。
  3. 标志位协调: 通过 isFlushing 标志实现两个线程间的协调。
  4. finally 确保恢复: 即使 waitUntilAllFuturesDone() 异常,也会在 finally 中恢复 cleaner。

避免的并发问题:

  • 数据重复写入: Cleaner 和 Checkpoint 同时 flush。
  • Buffer 状态不一致: 一边清空一边写入。
  • Future 清理冲突: 正在使用的 Future 被清理。

性能影响:

  • Checkpoint flush 期间,cleaner 暂停执行(通常 1-3 秒)。
  • Cleaner 跳过的周期会在下次正常执行时补偿。
  • 对整体吞吐影响极小(cleaner 间隔通常 30 秒)。

九、Checkpoint 语义保证

为什么 Checkpoint 时必须 Flush?

不 Flush 的后果

不Flush导致数据永久丢失

正确做法

@Override
public void snapshotState(FunctionSnapshotContext context) throws Exception {
    logger.info("start doing snapshot. flush sink to ck");
    // 1. 先 flush buffer(将内存数据写入 ClickHouse)
    if (sink != null) {
        sink.flush();
    }
    // 2. 等待所有写入完成
    if (sinkManager != null && !sinkManager.isClosed()) {
        sinkManager.flush();
    }
    // 此时 Checkpoint 才能标记为成功
    logger.info("doing snapshot. flush sink to ck");
}

Flush 实现与并发协调

public class ClickHouseSinkManager {
    public void flush() {
        //  步骤1:暂停定时清理任务
        clickHouseSinkScheduledCheckerAndCleaner.beforeFlush(); // isFlushing = true
        try {
            //  步骤2:执行 buffer flush + 等待所有写入完成
            clickHouseWriter.waitUntilAllFuturesDone(false, false);
        } finally {
            //  步骤3:恢复定时清理任务(finally 确保执行)
            clickHouseSinkScheduledCheckerAndCleaner.afterFlush(); // isFlushing = false
        }
    }
}

并发协调详解:

// cleaner 线程执行流程
synchronized (this) {
    if (isFlushing) {
        return; // Checkpoint 期间跳过本次执行
    }
    // 正常执行:清理已完成的 Future + 触发 Buffer flush
    futures.removeIf(filter);
    buffers.forEach(Buffer::tryAddToQueue);
}

关键点:

  • volatile 可见性: isFlushing 使用 volatile 确保 cleaner 线程立即看到状态变化。
  • synchronized互斥: getTask()方法体使用 synchronized (this) 确保原子性。
  • 标志位协调: 通过 beforeFlush() / afterFlush() 管理标志位。
  • finally 保证恢复: 即使 flush 异常,也会在 finally 中恢复 cleaner。

等待所有 Future 完成

public synchronized void waitUntilAllFuturesDone(boolean stopWriters, boolean clearFutures) {
    try {
        // 循环等待:直到所有 Future 完成 + 队列清空
        while (!futures.isEmpty() || unProcessedCounter.get() > 0) {
            CompletableFuture<Void> all = FutureUtil.allOf(futures);
            // 最多等待 3 分钟(与 Future 超时一致)
            all.get(3, TimeUnit.MINUTES);
            // 移除已完成的 Future(非异常)
            futures.removeIf(f -> f.isDone() && !f.isCompletedExceptionally());
            // 检查是否有异常 Future
            if (anyFutureFailed()) {
                break; // 有异常则退出
            }
        }
    } finally {
        if (stopWriters) stopWriters();
        if (clearFutures) futures.clear();
    }
}

关键逻辑:

  • 循环等待直到所有 Future 完成 + 队列清空。
  • 超时 3 分钟(与 Future 超时一致)。
  • 移除已完成的非异常 Future。
  • 有异常时退出循环。

三种 Flush 触发方式对比

Checkpoint 参数配置

// Checkpoint 配置建议
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 启用 Checkpoint(间隔 1 分钟)
env.enableCheckpointing(60000);
// Checkpoint 超时(必须大于 Future 超时 + 重试时间)
// 建议:CheckpointTimeout > FutureTimeout * MaxRetries
env.getCheckpointConfig().setCheckpointTimeout(600000); // 10 分钟
// 一致性模式
env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);
// 最小间隔(避免过于频繁)
env.getCheckpointConfig().setMinPauseBetweenCheckpoints(30000); // 30 秒
// 最大并发 Checkpoint 数
env.getCheckpointConfig().setMaxConcurrentCheckpoints(1);

语义保证

推荐配置:

生产环境: 使用 ExceptionsThrowableSink + Checkpoint。

允许部分丢失: 使用 UnexceptionableSink。

十、最佳实践与调优

生产配置

// ========== ClickHouse 连接参数 ==========
clickhouse.sink.target-table = tb_logs_local
clickhouse.sink.max-buffer-size = 104857600        // 批次大小
clickhouse.sink.table-count = 0                // 0 表示不分表
// ========== 写入性能参数 ==========
clickhouse.sink.num-writers = 10               // 写入线程数
clickhouse.sink.queue-max-capacity = 10        // 队列容量
clickhouse.sink.timeout-sec = 30               // flush 超时
clickhouse.sink.retries = 10                   // 最大重试次数
clickhouse.sink.check.timeout-sec = 30         // 定时检查间隔
// ========== 异常处理参数 ==========
clickhouse.sink.ignoring-clickhouse-sending-exception-enabled = false
clickhouse.sink.local-address-enabled = true   // 启用本地表写入
// ========== ClickHouse 集群配置 ==========
clickhouse.access.hosts = 192.168.1.1:8123,192.168.1.2:8123,192.168.1.3:8123
clickhouse.access.user = default
clickhouse.access.password = ***
clickhouse.access.database = dw_xx_xx
clickhouse.access.cluster = default
// ========== HikariCP 连接池配置 ==========
connectionTimeout = 30000                      // 连接超时 30s
maximumPoolSize = 20                           // 最大连接数 20
minimumIdle = 2                                // 最小空闲 2
socket_timeout = 180000                        // Socket 超时 3mi

性能调优

故障排查

十一、总结

本文深入分析了 Flink ClickHouse Sink 的实现方案,核心亮点包括:

技术亮点

  • 连接池选型: 使用 HikariCP,性能优异,连接管理可靠。
  • Future 超时控制: orTimeout(3min) 防止永久阻塞。
  • 显式资源管理: Connection 和 PreparedStatement 显式关闭,防止连接泄漏。
  • 负载均衡优化: Shuffle 初始化 + 轮询选择,避免热点。
  • 异常处理增强: future.isDone() 检查,避免重复完成。
  • 本地表写入: 动态节点发现 + 故障剔除,写入性能提升。
  • 分片策略: 按表(应用)维度路由,独立缓冲和隔离。
  • 攒批优化: 双触发机制(大小 + 超时)+ 随机抖动。
  • 流量控制: 有界队列 + 线程池,实现背压。
  • 健壮重试: 递归重试 + 异常节点剔除 + 最大重试限制。

Checkpoint 语义

  • At-Least-Once: ExceptionsThrowableSink + Checkpoint。
  • At-Most-Once: UnexceptionableSink。
  • Exactly-Once: 需要配合 ClickHouse 事务(未实现)。

生产建议

  1. 必须: Checkpoint 时 flush,否则会丢数据。
  2. 推荐: 使用 HikariCP + 本地表写入。
  3. 推荐: 配置合理的超时(Future < Socket < Checkpoint)。
  4. 推荐: 监控队列大小、Future 失败率、重试次数。

该方案已在生产环境大规模验证,能够稳定支撑百万级 TPS 的日志写入场景。

往期回顾

1.服务拆分之旅:测试过程全揭秘|得物技术

2.大模型网关:大模型时代的智能交通枢纽|得物技术

3.从“人治”到“机治”:得物离线数仓发布流水线质量门禁实践

4.AI编程实践:从Claude Code实践到团队协作的优化思考|得物技术

5.入选AAAI-PerFM|得物社区推荐之基于大语言模型的新颖性推荐算法

文 /虚白

关注得物技术,每周更新技术干货

要是觉得文章对你有帮助的话,欢迎评论转发点赞~

未经得物技术许可严禁转载,否则依法追究法律责任。

【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!


Lyra项目,被誉为UE5的官方教学示例,实际上却远超初学者的难度。官方定义为初学者游戏,但真正掌握它,却需要较深的技术背景和至少200小时的UE开发经验。

视频地址:
【Inside Lyra】之我要学UE

引言

Lyra项目,是伴随着UE5一起发布的官方教学的示例项目,全称是Lyra Starter Game。官方定义为初学者游戏。

但学过的人都知道,这个示例项目远远超出了初学者的难度。简单来说,如果自学Lyra的话,你至少需要掌握以下条件:

1.熟练掌握UE特化C++编程。这就表示,你需要在熟练掌握普通C++的基础上,额外掌握Unreal为C++做的特性化封装,比如:以UHT(Unreal Header Tool)为代表的反射系统,以UObject为代表的UE对象系统,以TSharedPtr等为代表的智能指针和垃圾回收系统。

2.熟练掌握UE编辑器与核心框架。这表示,你需要能够熟练使用UE的编辑器,至少能知道绝大多数功能的入口,以及常用功能的位置和使用方法。在展示某个窗口的时候,你应该知道它是如何打开的,以及它包含哪些操作和信息。掌握核心框架则代表,你了解UE的模块化构建和依赖规则,了解事件委托机制和用法,了解UE的资产序列化与引用,了解常用的UE容器,以及核心的Gameplay框架等等。

除此之外,还希望你拥有至少2年的编程经验,或者至少1年左右的游戏开发经验。这表示,你应该能秒懂某些约定俗成的知识点,比如单例和工厂,广播和分发,会话和鉴权,缓存与热修等等。

低于上面这个门槛的同学,自学Lyra就如同在啃天书一样。并且从经验上来说,200小时的UE开发经验是达到高效学习Lyra的临界值,低于此时长的开发者自学Lyra的放弃率高达 90%。

但可以这么说,如果你能基本看懂并理解Lyra的所有代码,那么月薪2W是简简单单的。如果你能熟练掌握和使用所有的Lyra代码,做个主程也是随随便便的。

本文就是帮大家剖析一下Lyra这个项目,减少自学的挫败感,希望能够尽快掌握这个“工业级”入门游戏,提高自己的游戏开发水平。所以,我将这个系列定义为Inside Lyra。

在开始之前,再次强调一下,本文不是0基础,不会讲解诸如编辑器有几个面板,蓝图有几种类型,用TArray等容器写一个用于排序的Lamba表达式之类的基础知识。而是,尽量为大家深入浅出的去剖析,整个Lyra项目的运作流程,以及各个工业级框架和组件之间的协同关系等。

本文的目标是,能正常打开UE编辑器并运行Lyra就成功。

一、为什么是UE?

由于本文的目标非常简单,在开始之前我们还是先说明几个前置话题。

我拥有10多年Unity开发经验,过去也一直是在做Unity引擎相关的教程,那么这次为什么选择Unreal的项目做教程呢?从程序的角度来分析一下,主要有以下几点:

1. 引擎源码开放。
这一点对技术开发来说非常重要,非常非常重要。虽然引擎源码会大幅增加项目开发时的复杂度,从而导致学习和开发效率的锐减,但一旦你迈过这个门槛,从学习者变为熟练使用者之后,你才知道引擎源码对于开发者来说是多么提高效率的事情。你无需再盲猜每个功能背后的实现思路,你可以随意修改引擎源码完成特殊功能的适配,你可以随时断点来调试某个功能的调用顺序,你可以自己修复引擎版本自带的BUG,你甚至可以直接Copy引擎模块代码来实现一个比较接近的功能,等等。虽然我自己也能接触到其他引擎的源码,但绝大部分的开发同学是没有这个条件的。因此选择一个提供源码的引擎,对于开发者而言,会得到前所未有的控制力与安全感

2. 预置Gameplay框架。
从这一点上来说,我个人觉得是有利有弊的。如果大家接触过其他引擎就会知道,大部分引擎在开发项目的时候,是可以自由地定制项目的启动入口的,并且启动的流程也可以完全自定义。但是UE不是,它提供一套自己的Gameplay框架,开发者必须完全理解这套机制,并且在这个基础上穿插去做自己的定制流程。很难说这两种方式,谁更好。自由度高意味着,复用性低。而自由度低则意味着,可以举一反三。

也可以这么认为,当你理解了一个UE项目的启动流程之后,你就可以快速上手任何一个UE项目。但相比于可自由定制的项目来说,这增加了初学者的学习门槛,也是学习UE会卡关的主要问题。在其他引擎上,你花20个小时可能已经做出一个有点意思的小游戏了,而在UE上,20个小时可能连Gameplay框架还没学完。但总结来说: 用短期学习成本换取长期团队协作效率与项目可维护性的指数级提升,是非常有必要的,因为你不可能一直是一个人在战斗。

3. 强大完整的服务器。
UE采用的是服务器同构设计,同构设计代表的是服务器逻辑和客户端逻辑是同一套代码。也就是说服务器可以完全复用所有为该项目实现的框架和代码。以基于Actor级别的同步能力,和可靠的同步机制,让开发者完全不需要关心通信。使绝大多数的异常可锁定在游戏逻辑层,而无需反复排查底层同步机制,减少开发者在定位问题上的尝试,提高开发和调试效率。同时,也可以任意部署在本地或者直接用编辑器充当服务器来调试相关逻辑。但缺点也是有的,因为自己又当客户端,又当服务器,难免会在系统在开发的时候发生“精神分裂”,因为你要时刻切换自己的身份,思考某句代码是执行在权威服务器上,还是在本地客户端上。

4. 完整的无缝大世界方案。
无缝大世界,可以说是次世代开放世界游戏的标配了。在其他引擎中完成这个方案的代价非常高,而在UE中,只需在创建地图时,简单勾选几个选项,即可激活基础框架,配合Data Layers可快速实现昼夜/环境破坏等动态效果。这可以让开发者的精力从实现无缝大世界本身解放出来,全力投入内容创作与玩法设计上。

5. 影视级的动画系统。
内置Control Rig+Motion Matching等工业流水线,搭配IK/FK重定向的工具链,让中小团队也能产出3A级动画的丝滑表现。

6. 完善的编程规范和命名规范。
UE为所有代码和资产提供了一套命名规则,所有开发人员需要共同遵守,甚至部分规则如果不遵守还会强制报编译错误,因为代码可读性、可维护性是一个团队高效协作的利器

7. 蓝图。
是一把威力与风险并存的双刃剑。无需代码,策划/美术也能快速搭原型、配置数据,对UE新手友好。但从开发效率上和逻辑可读性上来说,远远落后于C++。当哪天你突然意识到蓝图实现某个功能很麻烦的时候,那么恭喜你,你现在是个程序员了。

8. 多线程安全。
在UE中,你可以通过Task Graph和AsyncTask提供高层抽象,在规范使用下大幅降低死锁/竞态风险。傻瓜式的封装,可以让你随意指定线程池(游戏/渲染/后台)来干活,完成后用委托(Delegate)再回调到Game线程去处理(非线程安全操作必须回主线程!)。

以上并不是全部的UE优势,UE最大的优势其实是他们每个版本都提供最前沿的技术,供开发者学习和了解,并且非常慷慨地给出所有资源和示例代码。甚至官网的文档都远远落后于代码的更新速度。

所以综合而言,选择UE,其实是选择一艘拥有核动力引擎的工业巨轮。启航虽慢(学习曲线陡),转向笨拙(框架约束),但其源码级的掌控力、成熟的Gameplay框架、高效的同构Server、革命性的大世界/动画方案、规范的代码环境、灵活的代码/蓝图模式、强悍的并发异步工具链等能力,让你在开发3A级巨制或大型多人游戏的惊涛骇浪中,拥有无与伦比的稳定性、生产力与技术上限。它逼你成长为“正规军”,过程虽让人头秃,但学成之日,你便是战场上的“王牌舰长”!

所以,就你了,Unreal,启动!

二、为什么是Lyra?

Lyra一直以来被当做UE官方的“初学者示例”,其实是存在认知错位的。它本质是Epic用来展示UE5工业级开发范式的技术演示,而非真正的零基础教程。它是一个完整的项目,包含各种顶级的框架设计和UE5最新的引擎特性。比如:

1.它有约15万行的代码和200+个蓝图,规模远超独立小游戏的标准。

2.多层抽象的基础框架,GameFeature+Experience+HotFix,再加客户端和服务器一体化的设计,复杂度非常高,需先熟练掌握插件系统/模块化设计

3.核心机制代码分散,学习难度高。被拆分为20+个独立的插件,对于能力复用和组合有较好的支持度。

4.使用数据驱动设计,一个简单的角色属性的修改,可能就要跨越数个配置文件。而非简单修改一个值。

一个典型的场景就是:

设计一个简单的复活队友的技能可能就要穿透至少5层:LyraHeroComponent → AbilitySystem → GameplayCue → 客户端预测 → 服务器RPC验证。

那么为什么Epic仍坚持推广Lyra呢?说些个人不负责任的猜想:

1. 技术展示。
强制开发者接触UE5前沿特性(如World Partition/MetaSounds, 等优秀能力)。

2. 生态绑定。
使用Lyra等于深度依赖Epic后端服务(如EOS好友,排名,成就等系统)。

3. 开发者筛选。
用高复杂度来过滤非目标用户(3A/多人游戏团队)。

  • 一个不负责任的数据显示,某个国外课程的后台数据表明,仅12%的UE自学者在Lyra项目上坚持超2周。

那么,最后回答一下,我们为什么要学习Lyra呢?我的答案是:

1.从技术提升角度来看,Lyra涵盖了UE5众多前沿且复杂的技术特性和架构设计。学习Lyra能够帮助开发者深入理解UE5的高级功能和工业级开发范式,掌握插件系统、模块化设计、数据驱动开发等关键技术,这些技术在大型游戏开发和复杂项目中具有极高的实用价值。例如,掌握了Lyra的架构设计思路,开发者在面对其他大型项目时,能够更高效地进行系统架构和模块划分。

2.从职业发展角度考虑,由于Lyra的学习难度较大,成功掌握它意味着开发者具备较强的技术学习能力和解决复杂问题的能力。正如前面调查数据所示,掌握Lyra的开发者在求职大公司和大型项目工作室时具有显著优势,能够获得更多的职业机会和更好的职业发展前景。

3.从行业趋势来看,随着游戏行业的发展,对游戏的品质和规模要求越来越高,UE5的工业级开发范式将逐渐成为行业主流。学习Lyra可以让开发者提前适应行业发展趋势,紧跟技术前沿,在未来的职业竞争中占据有利地位。

其实,大家也可从B站或者知乎上搜索Lyra相关的关键词,可以看到对一个子模块的讲解都可以作为一个技术大会的分享主题,也就证明了Lyra的含金量。再一个是,就目前来看,绝大部分UE5的项目,不管是什么类型的,都会或多或少参考Lyra的框架设计。比如,Lyra中完整实现了编辑器扩展,客户端和服务器交互和分离,构建多平台等能力,这些是无论做什么类型的游戏都有参考价值的。

三、教程形式

传统教程像在组装乐高说明书 —— 先逼你认遍所有“零件”,比如从UObject到Actor再到Component等,按照UE的复杂度来看,可能20小时后还在学基础概念。而那种技术大会分享更不用说,简直就是“量子速读现场” —— 满屏架构图咻咻乱飞,一张PPT涉及的知识点可能比他的头发还多。每章的知识点过的还非常快,来不及截图不说,截了也看不懂。

对于Lyra这种工业级的架构和业务来说,这两种就更不合适了,讲个GameState要先科普一个小时的UObject,这谁受得了呢?有可能你讲完Gameplay框架,UE都更新两个版本了。

而如果分模块击破也不靠谱,Lyra的核心代码分散在20多个核心的Plugin中,如果要按模块讲解,要就要把UE的插件-模块化的结构先讲清楚,再讲明白Lyra拆分插件的思路和优劣势,这也是耗时且性价比不高的事情。

所以真要按照传统线性的教学方式来的话,挫败感会很强,弃坑率也绝对会非常高。

而我这次的思路,会偏向于先上路再慢慢修正。也就是直接从Lyra运行的核心代码开始,按照顺序,代码执行到哪我们就拆解到哪。这样的好处就是,每一个介绍的代码你都知道它在当前运行时候是有用的。虽然坏处是会将知识点分散到多节课中,但每节课学到的就是项目当前在用的,知识点不浮空。

最后呢,本文还是以大家能看懂为主,在能看懂的基础上再去局部修改和替换小模块来验证自己的理解,以此为迭代才能真正的掌握。比如一个UI界面,当你看懂之后,可以先尝试修改上面的一个文字,然后添加或者修改一个自己导入的图片,或者直接加载一个自己写的UI等等。循序渐进地理解才能真正掌握。

四、环境准备

本次使用UE最新的版本,也就是5.6版本进行。请严格按照下面的步骤配置你的开发环境。

  • UE 5.6的下载和安装

1. 安装Epic Games启动器。
https://www.unrealengine.com/zh-CN/download

下载完成之后,像普通程序一样,双击安装。由于要额外下载内容,所以需要等待一会儿,也可以通过观看右边官方提供的安装视频进行安装。

UE引擎官方版本的安装只有这一个办法,当然当你有一定经验之后,可以到GitHub上下载引擎源码自己编译生成引擎也是可以的。

如果你有时间和话,也可以阅读官方提供的安装文档进行引擎安装:
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/i...

如果你打开网页是英文的话,可以在这里切换语言:

启动器下载完成之后,需要登录才能正常使用。未登录状态下,运行启动器的界面是这样的,需要自行注册Epic账号进行登录,这一步就留给大家自行完成。

当你登录之后,看到的界面是这样的。

其中右边有三个页签,商城、库和虚幻引擎。前两个就跟Steam平台一样,展示的是作为游戏平台的内容,库则是你已经拥有的游戏。友情提示,Epic平台每周可以免费领取1~2款游戏,重大活动时候免费送大型游戏,可以保持关注。

然后我们要看的其实是第三个页签,也就是关于虚幻引擎的部分,点开页签后长这样。

这个页签下会发布很多UE引擎的动态和新闻。顶上的一排子标签的作用分别是:

  • News:热点资讯。
  • 示例:UE官方发布的各种技术演示工程,基本上都是完整可以运行的部分。
  • Fab:是EPIC多个资产商城的合集,可以下载大量的三方插件、代码和资产之类的。不过它需要在单独的页面打开才能看,启动器里只是一个跳转入口。你甚至可以在这里下载Unity的插件和资产。
  • 库:这个页签是引擎相关的管理页签。在这里可以下载新的引擎版本,和管理已经下载的引擎版本,比如我这里就已经下载好了5.6版本的引擎。

当你有已经安装好的引擎的时候,在右上角就会提示可以直接启动引擎,这是引擎启动的方式之一。当然如果安装了多个版本的话,右上角也可以切换版本。

如果没有引擎或者想要下载引擎,点击左边的“+”号,可以选择要下载的引擎版本。

选好引擎版本之后,点击安装就会弹出安装的一些选项,包括位置和选项。选项这里可以选择额外支持的部署平台,一般我们加上安卓和iOS就可以了。还有一个是调试符号,一般是用来调试引擎的,新手的话可以不管,这个要多增加几十G的空间。

都选好之后,点击安装,然后等待安装完成即可。

若要删除引擎,只要把鼠标移入标签卡里,就会出现卸载按钮,点击即可卸载。

  • VS的下载和安装

当引擎安装完毕之后,桌面上就会出现图标,同时右上角也会出现启动引擎的按钮。无论点击哪个都会打开引擎的预启动界面。第一次启动的时候,时间会很久,因为它要编译引擎启动所需要的材质,界面上会有进度和数量显示,需要耐心等待。

打开之后,这个界面长这样,主要是跟随引擎一起的模板、示例这些。然后可以管理和新建项目。

比如我要新建一个第三人称的示例项目就可以通过点击右侧Games标签来完成。

到这里就需要注意了,如果你是新手还不懂代码,只想用蓝图的话,现在就已经可以开工了。但是如果蓝图不能满足或者未来不能满足你的要求,就必须切换成 C++的版本。由于C++是代码,就必须要安装对应的编译环境才可以工作。这是UE附加的必要条件,只要你用代码,就必须要安装。一般我们是安装Visual Studio 2022的社区版本。因为它是免费的。

也可以手动去这里下载安装:
https://visualstudio.microsoft.com/zh-hans/vs/community/

另外当你切换任意一个示例到C++版本的时候,如果本地没有代码环境,那么会有一个黄字提示需要安装VS 2022,点击也会自动帮你下载。

安装VS的技巧可以参考官网,一些必要的组件需要勾选:
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/s...

一些SDK版本,尽量选最新的。当然选多个也没问题,就是多占点空间而已。

当VS安装完成之后,UE开发必要的组件就已经准备好了。接下来我们就可以运行项目了。

  • Lyra示例工程的下载和安装

Lyra示例工程需要到Fab上先订阅,再在Epic启动器里下载。

Fab上直接搜索Lyra,找到图示的这个项目,点开之后加入到库里。点击在启动器查看,或者直接在启动器里搜索Lyra。

注意,这个库是引擎标签的库,不是最外层的游戏库。找到之后,点击创建,设置好目录,等待下载完成就可以了。

到这里Lyra的工程也就准备完成了。到设定的安装目录下就可以看到工程信息了。

由于Lyra是一个C++工程,在运行之前,必须要先编译才行。右键uproject文件,执行代码工程的生成,完成之后会有一个.sln的文件出现,代表生成成功。

这个时候双击Lyra,就可以打开Lyra工程了。当然,由于Lyra工程引入了大量新的材质,所以第一次启动也是会编译较长时间,请耐心等待,编译后会自动打开编辑器界面。

到这里,本文的目标就已经达成了。

后面这个点是我个人推荐的开发经验,并且我之后也都是会使用这个软件进行代码更新的。推荐大家继续看完,否则可能会影响后续课程的一些理解。因为不同IDE软件的操作和显示是不一样的。

  • Rider的下载和安装

Visual Studio是基础,但Rider专为UE深度优化,提供更智能的代码补全(理解UCLASS, UFUNCTION等)、更便捷的蓝图/C++互跳、更强大的反射信息查看、更直观的调试体验,以及更友好的项目结构管理。它能显著提升阅读和理解引擎和Lyra庞大代码库的效率。

访问以下地址下载Rider for Unreal Engine安装包。运行安装程序,按提示完成安装即可:
https://www.jetbrains.com/lp/rider-unreal/

Rider是一个付费软件,但个人非商业许可是免费的。第一次启动Rider的时候,会提示你选择许可。关联许可之后就可以正常使用Rider了。

在打开Lyra项目之前,推荐先下载一下这个插件,可以更好地关联UE:

不手动安装其实也行,Rider在检查项目完成之后,会提示你是否安装,他会有两个选择,一个是安装在引擎目录下,一个是安装在项目目录下。建议大家安装在引擎目录下,这样在创建其他项目的时候就不用再次安装了。

前面我们用双击uproject的方式打开编辑器,但作为程序员,你应该用IDE的方式打开编辑器。也很简单,用Rider打开它即可。

打开后,界面长这样,右上角两个按钮一个是正常启动,一个是调试模式。选择任何一个都可以。点击启动之后会先检查代码有没有编译,没有的话会先编译。编译好之后就会直接启动编辑器,效果跟双击uproject打开是一样的,但不一样的是调试模式就可以断点调试相关代码和逻辑。

那么到此,本文的内容就全部结束了。


这是侑虎科技第1946篇文章,感谢作者放牛的星星供稿。欢迎转发分享,未经作者授权请勿转载。如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。(QQ群:793972859)

作者主页:https://www.zhihu.com/people/niuxingxing

再次感谢放牛的星星的分享,如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。(QQ群:793972859)

一、IP归属地查询的广泛应用需求

在现代信息化社会中,IP地址是每个在线设备与互联网连接的唯一标识。通过对IP地址的归属地进行查询,企业和机构可以获取关于用户的地理位置、运营商信息等,帮助他们做出更加精准的决策。无论是在网络安全、数据分析、市场营销,还是反欺诈等领域,IP归属地查询都有着广泛的应用场景。

手动查询IP的归属地往往耗时且易出错,尤其是当需要批量查询时,工作量将成倍增加。借助Excel宏结合本地离线数据库(如CSV文件、JSON文件或MySQL数据库),可以实现自动化的IP查询,显著提升效率和准确性。

二、为什么选择Excel宏进行自动化查询?

Excel是全球最广泛使用的数据处理工具之一。其强大的数据管理和分析功能,使得它不仅限于财务管理,还广泛应用于各行各业。在处理大量数据时,Excel宏(VBA)为用户提供了自动化操作的强大能力。

Excel宏可以与本地离线数据库(如CSV、JSON或MySQL)结合,通过简单的脚本,快速实现IP归属地查询,而无需每次手动查找。相较于在线查询,离线数据库具有快速响应、无需网络依赖等优点,尤其适合需要频繁查询、批量查询的场景。
如何利用Excel宏和离线数据库自动化IP归属地查询?

三、如何编写Excel宏,调用本地数据库进行IP归属地查询?

1. 准备本地数据库

首先,需要准备一个包含IP地址和归属地信息的本地数据库。这里我们使用CSV格式作为示例,数据包括IP地址、归属地和运营商等字段,在正式测试中,我们使用的是IP数据云的IP归属地库。以下是一个简单的CSV文件示例:

IP地址,归属地,运营商
192.168.1.1,北京市,中国联通
180.76.15.18,上海市,中国电信

这个CSV文件可以根据实际需要扩展更多的IP信息

2. 编写Excel宏代码:调用本地CSV文件进行查询

在Excel中,可以使用VBA编程来实现IP查询。以下是一个示例代码,通过VBA宏读取本地CSV文件,并根据输入的IP地址查询归属地信息:

Sub 查询IP归属地()
    Dim ipAddress As String
    Dim csvFilePath As String
    Dim fileContent As String
    Dim lines() As String
    Dim line As String
    Dim data() As String
    Dim found As Boolean
    Dim i As Integer
    
    ' 获取用户输入的IP地址
    ipAddress = InputBox("请输入IP地址:", "IP归属地查询")
    
    ' 设置CSV文件路径
    csvFilePath = "C:\path\to\your\ip_database.csv"
    
    ' 读取CSV文件内容
    Open csvFilePath For Input As #1
    fileContent = Input$(LOF(1), 1)
    Close #1
    
    ' 将CSV内容按行分割
    lines = Split(fileContent, vbCrLf)
    
    ' 查找IP地址对应的归属地
    found = False
    For i = 0 To UBound(lines)
        line = lines(i)
        data = Split(line, ",")
        
        ' 如果找到匹配的IP地址
        If data(0) = ipAddress Then
            MsgBox "IP地址 " & ipAddress & " 的归属地是:" & data(1) & ", 运营商:" & data(2)
            found = True
            Exit For
        End If
    Next i
    
    ' 如果未找到对应IP
    If Not found Then
        MsgBox "未找到IP地址 " & ipAddress & " 的相关信息。"
    End If
End Sub

3. 批量查询IP归属地

为了应对大量的IP地址查询,Excel宏还可以扩展为批量查询的功能。以下是一个批量查询IP归属地的VBA代码,假设IP地址列表存储在Excel工作表的第一列,查询结果将输出到第二列:

Sub 批量查询IP归属地()
    Dim ipAddress As String
    Dim csvFilePath As String
    Dim fileContent As String
    Dim lines() As String
    Dim line As String
    Dim data() As String
    Dim i As Integer
    Dim resultRow As Integer
    
    ' 设置CSV文件路径
    csvFilePath = "C:\path\to\your\ip_database.csv"
    
    ' 读取CSV文件内容
    Open csvFilePath For Input As #1
    fileContent = Input$(LOF(1), 1)
    Close #1
    
    ' 将CSV内容按行分割
    lines = Split(fileContent, vbCrLf)
    
    ' 开始处理IP地址列表
    resultRow = 1
    For i = 1 To ActiveSheet.UsedRange.Rows.Count
        ipAddress = Cells(i, 1).Value ' 假设IP地址在第一列
        
        ' 查找IP地址对应的归属地
        For Each line In lines
            data = Split(line, ",")
            If data(0) = ipAddress Then
                Cells(resultRow, 2).Value = data(1) ' 输出归属地
                Cells(resultRow, 3).Value = data(2) ' 输出运营商
                resultRow = resultRow + 1
                Exit For
            End If
        Next line
    Next i
End Sub

该宏将遍历工作表中的IP地址,查找对应的归属地信息并输出结果。

四、如何优化和扩展Excel宏?

Excel宏的强大之处在于其可扩展性。除了查询IP归属地,以下是一些优化和扩展的建议:

增加查询结果的格式化功能:

可以在查询结果中使用条件格式化,突出显示不同的运营商或归属地。例如,可以使用不同的颜色标记中国电信与中国联通的归属地。

支持更多数据库格式:

除了CSV文件外,宏也可以支持JSON或MySQL数据库。对于较大的数据集,使用MySQL数据库可以提高查询效率。

定时查询和自动报告:

结合Excel的定时功能,可以实现自动定期查询并生成报告。对于需要定期更新IP归属地的情况,宏的自动化功能尤为重要。

批量导入IP地址:

在实际应用中,IP地址可能来自多个渠道(如日志文件、数据库等)。Excel宏可以扩展为批量导入不同来源的数据,进一步提升查询效率。当我们在选择数据库时,最好是选择数据维度多且更新频率高的,像IP数据云就是一个不错的选择,结果返回20+维度字段更是支持每日更新。

五、结语

通过利用Excel宏和本地离线数据库,企业和个人可以轻松实现IP归属地查询的自动化,无论是在网络安全、数据分析、市场营销等多个行业中,都会大大提高工作效率,节省时间和精力。无论是单次查询还是批量查询,Excel宏都能提供便捷的解决方案,帮助用户更好地管理和分析IP数据。

在中国信通院2025年数字孪生十大关键词中,“高性能仿真与渲染”被明确定义为 “连接物理世界与数字空间的‘可视化桥梁’” 。报告指出,该技术能在虚拟空间中精准模拟现实世界的运行规律与未来状态,并强调其正推动数字孪生超越“可视化”层面,迈向 “虚实共生”

然而,构建这座“桥梁”面临双重挑战:一是科学计算与工程仿真产生的海量数据(如流体、应力场)难以实时转化为直观图形;二是高保真渲染本身消耗巨大算力,与仿真计算形成资源竞争。实时云渲染技术通过“云-网-端”的协同架构+PaaS平台属性,正成为化解这一矛盾,释放高性能仿真全部潜力的关键。

数字孪生的深化:对物理规律精准模拟与实时可视化的双重渴求

随着数字孪生从“形似”走向“神似”,其需求发生了深刻变化。

从“结果观看”到“过程交互”。 过去,工程师运行一次CFD(计算流体动力学)模拟,可能需要等待数小时甚至数天,最终得到一组静态的压强云图或流线图。而现在,他们希望能在仿真计算的同时,实时调整参数(如进气角度、流速),并立即看到流场变化的动态效果,实现交互式探索与优化。

从“单物理场”到“多场耦合”。 真实的物理现象往往是多场耦合的。例如,电池的热管理涉及电化学、热传导和流体散热的耦合仿真。这类仿真数据维度高、结构复杂,传统后处理软件难以进行动态、综合的可视化分析,阻碍了深层次规律的发现。

从“专家工具”到“协作平台”。 仿真结果需要被产品经理、客户、生产人员等非仿真专家理解和使用。抽象的等高线图和矢量图形成了认知壁垒。他们需要的是更直观、更接近真实物理世界的渲染效果,如逼真的烟雾运动、结构变形动画等,以支持基于仿真的协同决策。

实时云渲染的解局之道:分离“计算”与“显示”,释放专业仿真潜力

实时云渲染为解决上述挑战提供了一种范式级的解决方案:将仿真计算渲染与结果可视化呈现在架构上分离,并通过高速网络实时联动。

架构分离,专精所长。 仿真计算任务(如有限元分析、分子动力学模拟)可以在最适合的HPC(高性能计算)集群或超算中心完成,这些环境针对数值计算进行了优化。与此同时,平行云LarkXR平台提供专用的可视化渲染集群,该集群配备顶级消费级或专业级GPU,专为图形渲染优化并生成超低时延的视频流,通过网页即可打开高精度、高仿真的三维可视化场景。

数据通道,二三维数据无缝对接。 仿真计算程序在运行过程中,可以通过实时数据接口(如利用LarkXR提供的SDK及数据通道等功能组件),将中间结果或最终结果(网格、标量场、矢量场数据)实时传递到三维场景中,通过键鼠/触摸等客户端反馈时间,实现二维数据与三维场景的实时交互。在这个过程中,LarkXR支持各类2D/3D(Unreal Engine或Unity等)引擎开发的应用,以及BIM/CIM引擎工具渲染出来的结构数据场景。

一键推流,网页访问。 生成的高保真图像序列被实时编码为视频流,通过互联网推送到用户的任何终端设备上。这意味着,仿真专家可以在本地工作站提交计算任务,然后在平板电脑上通过网页实时监控全球另一角落超算中心的仿真过程与结果;项目评审会也不再需要搬运庞大的数据,一个链接即可让所有参会者沉浸在同一高质量的可视化场景中。

实时云渲染赋能复杂仿真可视化:多引擎支持与科学可视化集成

平行云LarkXR平台在赋能高性能仿真可视化方面,具备独特的技术优势。

广泛的引擎兼容性。 LarkXR支持基于DX、OpenGL、Vulkan等主流 3D 引擎(如 Unity 、UE、CE等)及国产自研引擎开发的应用,也支持基于QT、WebGL、Revit、AutoCAD、H5等二三维混合应用/2D应用, 这给了用户最大的灵活性:可以利用Unreal Engine 5的Nanite虚拟几何体和Lumen动态光照来实现极限逼真的场景渲染;也可以使用Unity的灵活性和丰富资产来快速构建交互式分析界面;对于航天、军工等领域,则可使用专业的Unigine或OSG引擎。

与科学可视化工具的深度集成潜力。 许多专业仿真领域使用ParaView、VisIt等开源科学可视化工具进行后处理。LarkXR支持二次开发,其平台可以集成这些工具的后处理模块,或者将其渲染输出捕获并重新流化。

互动与协同模式,打造增强评审新范式。 在云渲染的可视化场景中,所有用户都可以进行交互操作,如旋转、剖切、测量、标注,并可以同步看到他人的操作焦点和标注信息。这彻底改变了仿真评审的模式,使其从单向汇报变为沉浸式、可互动的研讨会。

技术指标上,基于LarkXR的方案可以实现:支持TB级瞬态仿真数据集的动态加载与流畅播放;将传统需要数分钟加载的本地渲染仿真结果,变为秒级打开的可实时交互探索的模型;在专业网络环境下,实现从参数修改到可视化画面更新的端到端延迟最低达到20ms(不考虑网络时延),满足交互式分析的需求。

技术指标与价值:提升仿真效率,促进成果普惠

实时云渲染与高性能仿真的结合,带来的价值是倍增的。

极大提升仿真验证与设计的迭代效率。 “设计-仿真-可视化-评审-修改”的闭环周期从天级缩短到小时甚至分钟级。工程师可以快速验证大量设计变体,更快地找到最优解。中国信通院报告中提及的 “渲染效率提升数十倍” 在此体现得淋漓尽致。

降低高保真仿真可视化的技术门槛与硬件成本。 前端用户无需配备昂贵的工作站和安装复杂的软件,普通电脑甚至平板即可访问电影级渲染质量的仿真结果。这使得仿真成果能够更广泛地在企业内部分享和应用,促进基于仿真的决策文化。

为数字孪生的“虚实共生”提供核心支撑。 当仿真不仅是后台计算,而是能实时、高保真地呈现在人们面前时,数字孪生体才真正具备了与物理世界“对话”的能力。人们可以相信它在虚拟世界中的反应,并据此在现实世界采取行动。这正是迈向 “虚实共生” 的坚实一步。

平行云LarkXR平台,通过将强大的云端图形算力变成像水电一样可随时取用的服务,正在让高性能仿真与渲染从顶尖实验室和大型企业的专属能力,转变为更多行业和工程师触手可及的日常工具,加速数字孪生从“可视”走向“可模拟”、“可信任”乃至“可共生”的深刻演进。

本文已发布于官网:https://www.pingxingyun.com/

fiddler是Windows抓包方式

1.开启Https解密,从菜单找到:

Tools → Options → HTTPS

勾选:

✔ Decrypt HTTPS traffic
✔ Ignore server certificate errors

49ca72fb11941f42e200ca7bfbb9de43.png

第一次会提示安装证书:
全部点 Yes
自动安装到系统信任

2.验证是否抓到包

打开浏览器访问网站
左侧可以看到请求列表

3.基础抓包使用

左侧是请求列表:

每一条 = 一个接口请求

点开一条请求:

右侧常用几个面板:

Inspectors

看请求参数

Inspectors → WebForms
Inspectors → Raw
Inspectors → JSON

看返回内容

Inspectors → JSON
Inspectors → Raw

4.过滤接口

如果左侧请求接口过多,可以通过右侧Filters过滤接口
fd9c64d9aeb4347b653fa83ee05b552f_720.png

5.断点修改请求参数

点击菜单

Rules → Automatic Breakpoints → Before Requests

作用:

所有请求发出去前都会暂停

这时:

1)发起请求
2)Fiddler 会拦住
3)你可以改参数
4)再放行
当请求被拦住后:

右侧 → Inspectors → WebForms / Raw

改完点击: Run to Completion
7ed7c366990c84c0ba2c3e9642568556_720.png

6.断点修改返回结果(最强功能)

开启返回断点

Rules → Automatic Breakpoints → After Responses

作用:

服务器返回后 → 在给客户端前暂停

修改返回数据

当接口返回时,右侧:

Inspectors → Raw

修改完内容后:

Run to Completion

App / 浏览器就会收到你改后的数据。

7.模拟弱网

Rules → Performance → Simulate Modem Speeds

可以测试:加载慢、卡顿、超时

如果把十年前的互联网和今天做一个对比,你会发现一个非常明显的变化:平台越来越集中,风控越来越智能,数据越来越重要。

在这样的环境下,企业要想稳定开展跨境电商、广告投放、社媒运营、市场调研等,仅仅依靠本地网络可能远远不够。代理IP,从“可选工具”,逐步变成了“基础设施”。

那么,为什么代理IP在今天变得几乎不可替代?下面就跟着IPDEEP小编一起来看看吧!
为什么现在的业务离不开代理IP?

一、平台风控升级,真实与变得更重要

几乎所有的大型平台都在做同一件事情:识别异常行为,过滤风险流量。

它们会综合判断:

IP来源

使用频率

行为模式

设备环境

网络运营商

如果多个账号在相同或高度相似的网络条件下活动,就很容易被打上“关联”的标签。一旦被平台的风控系统发现,轻则限流、验证增多,重则直接封禁。

这种情况下,能否提供独立、可信、接近真实用户的网络出口,就绝对了账号的生存空间。代理IP正是解决这个问题。

二、多账号运营已经成为常态

在社媒、电商和广告行业,一个主体往往需要管理多个账号,这已经不再是秘密了。不同品牌、不同产品线、不同营销策略,都可能对应独立的账号体系。

但平台的逻辑是:

希望确认“一个人就是一个人”。

如果所有的账号都从同一个IP或设备登录、操作,再配合高频行为,被判定关联几乎是必然的。

代理IP的作用,并不是“作弊”,而是为不同业务单元提供合理的隔离环境,让系统可以按照独立主体去理解它们。

三、稳定性直接等于成本

很多人只看到代理IP的采购费用,却忽略了另外一件事:

失败本身就是更大的成本。

账号被封需要重新养号、广告中断影响投放节奏、采集失败拖慢项目进度。当业务规模扩大,任何不稳定都会被成倍放大。

四、数据需求爆炸式增长

越来越多决策依赖数据:

价格监控

排名追踪

广告验证

评论分析

但当访问请求变多时,限制也会随之出现,比如访问频率控制、验证码甚至封锁。通过代理网络分散请求来源,能够显著提升成功率,同时避免对单一IP造成压力。

五、业务全球化,但网络天然有边界

跨境业务越来越普遍,但互联网内容和服务却存在明显的地域差异。

比如:

不同国家看到的价格、广告、搜索结果不同

某些服务只针对特定地区IP开放

应用商店、支付方式、推荐算法都具有区域属性

如果你没有对应地区的IP,你看到的可能只是某个地区的,无法看到你的业务在其他国家的情况。

因此,无论是做本地化运营,还是竞争对手调研,获取目标市场的真实访问视角都是基本需求,而代理IP是最直接、效率最高的方式。