Article body
正文
引言
金融、政务、能源和军工等关键行业持续推进信创,即信息技术应用创新。信创强调从芯片、操作系统、数据库到中间件逐步建设自主可控的技术体系,保障关键信息基础设施安全。
对于 BI 数据分析平台,信创适配涉及一系列具体问题:系统能否运行在国产 CPU 和国产操作系统上,能否稳定连接国产数据库,能否在国产中间件环境中交付完整功能。
衡石 BI 已完成从芯片、操作系统、数据库到中间件的全栈信创适配,并形成可复制的国产化部署方案。 本文介绍这套适配体系的技术实践。
一、信创适配的技术挑战
1.1 BI 信创适配为何复杂
Java 或 Go 应用并不一定能在所有 Linux 发行版和处理器架构上直接运行。BI 平台还会依赖驱动、系统库、计算组件和应用服务器。
CPU 指令集差异
鲲鹏、飞腾使用 ARM 架构,海光、兆芯使用 x86 架构。特定 C++ 扩展或机器学习推理库如果只有 x86 构建,就无法在 ARM 环境中运行。
操作系统兼容性
麒麟和统信 UOS 虽然基于 Linux,但内核、glibc 和系统库版本可能与通用发行版不同。依赖特定系统调用或库版本的组件需要重新验证。
数据库驱动与方言
达梦、人大金仓、OceanBase、GaussDB 和 TiDB 的 JDBC 或 ODBC 驱动、SQL 方言、数据类型映射和事务行为各有差异。BI 平台需要在数据连接层逐一适配。
中间件替代
部分信创环境要求用东方通 TongWeb、宝兰德 BES 等国产中间件。BI 平台的部署方式需要兼容数据源配置、会话共享和日志接入等机制。
1.2 适配层次
信创适配可以分为三个层次:
- L1 可运行:系统能够在国产 CPU 和操作系统上启动,基础功能可用。
- L2 可生产使用:核心功能完整,性能接近通用 x86 环境。
- L3 全栈适配:数据源、缓存、消息队列等数据链路组件也采用国产方案。
衡石面向 L3 提供完整信创方案。
二、衡石 BI 信创适配架构
2.1 芯片层
衡石 BI 的查询加速和向量化执行等核心计算组件需要针对不同处理器架构构建。
ARM 架构(鲲鹏 920、飞腾 FT-2000+)
- 将核心组件编译为 ARM64 目标。
- 针对 ARM 的 NEON SIMD 指令优化向量化执行。
- 在鲲鹏 920 上实测查询性能达到同频 x86 环境的 85% 至 92%。
x86 架构(海光 C86、兆芯)
- 复用 x86 的 AVX 指令集优化路径。
- 海光 C86 的测试性能接近同代 Intel 产品。
衡石采用一次源码、多架构构建。CI 流水线分别生成 ARM64 和 x86_64 镜像,团队维护一套代码和两套构建配置。
2.2 操作系统层
银河麒麟 V10
- 适配内核参数,例如文件句柄数和网络栈参数。
- 对齐系统库依赖。
统信 UOS
- 适配 systemd 服务注册。
- 验证 UOS 安全模块下的权限模型。
衡石 BI 主要以 Docker 或 Kubernetes 容器方式部署。容器降低了用户态环境差异,操作系统适配工作集中在宿主机内核参数和容器运行时兼容性。
2.3 数据库层
数据库连接是信创适配中工作量较大的部分。
达梦 DM8
- 适配 JDBC 驱动类名和连接串。
- 验证 Oracle 兼容方言及层级查询等函数。
- 校验 NUMBER、VARCHAR2 等类型与 BI 内部类型的映射。
人大金仓 KingbaseES
- 复用 PostgreSQL 协议兼容能力。
- 重点处理 GIS 等扩展数据类型。
OceanBase
- 分别适配 MySQL 和 Oracle 兼容模式。
- 配置分布式架构下的 OBProxy 连接路由。
GaussDB
- 复用 PostgreSQL 协议兼容能力。
- 针对 Hash 和 Range 等分布式表优化查询下推。
TiDB
- 复用 MySQL 协议兼容能力。
- 根据分布式执行计划特征优化大表 JOIN。
衡石为每类数据库维护适配测试矩阵,覆盖连接、基础查询、聚合、窗口函数、数据类型、事务和权限七个维度。数据库升级后,团队重新执行这套矩阵。
2.4 中间件层
衡石 BI 支持部署在东方通 TongWeb 和宝兰德 BES 等国产应用服务器环境中。适配重点包括:
- JNDI 与直接配置等数据源配置方式。
- 集群环境中的 Session 共享机制。
- 对接国产日志平台的日志格式。
国产缓存和消息队列方面,系统可以使用 Tendis 等 Redis 兼容方案,并支持用 RocketMQ 承载异步任务。
三、信创环境性能优化
3.1 性能基准
衡石在相同核数和内存规格下,对信创环境与 Intel x86 环境进行了性能对比。
| 场景 | Intel x86 | 鲲鹏 920(ARM) | 海光 C86(x86) |
|---|---|---|---|
| 单表聚合(1000 万行) | 1.2s | 1.4s | 1.3s |
| 多表 JOIN(3 张表) | 3.5s | 4.1s | 3.8s |
| 仪表盘加载(8 张图表) | 0.9s | 1.1s | 1.0s |
| 并发查询(50 QPS) | 稳定 | 稳定 | 稳定 |
测试中的信创环境性能差距保持在 10% 至 20% 范围内,可满足常见企业分析场景。
3.2 面向国产硬件的优化
ARM 内存访问优化:根据 ARM 与 x86 不同的缓存特征调整查询引擎的内存对齐,减少 Cache Miss。
国产 NVMe I/O 优化:根据国产服务器存储控制器的特征调整数据文件预读和并发 I/O。
鲲鹏 NUMA 亲和性:在多路鲲鹏服务器中,把查询进程绑定到邻近的 NUMA 节点,减少跨节点内存访问。
3.3 国产 OLAP 引擎
衡石支持在信创环境中连接多种国产 OLAP 引擎:
- StarRocks:可作为查询加速层。
- Apache Doris:适合中等规模分析场景。
- TiDB:适合 HTAP 场景。
对于全栈信创要求较高的项目,可以采用国产数据库与 StarRocks 或 Doris 组合,形成国产化数据链路。
四、信创部署参考架构
4.1 标准架构
一个金融客户的信创部署可以采用以下组合:
硬件层:三台鲲鹏 920 双路 64 核服务器,包括一个主节点和两个工作节点。
操作系统层:银河麒麟 V10。
数据库层:
- 业务数据源使用客户已有的达梦 DM8。
- 分析加速层使用部署在信创服务器上的 StarRocks。
中间件层:东方通 TongWeb。
BI 层:衡石 BI 以容器方式部署在国产 Kubernetes 发行版上。
这套组合从芯片到 BI 应用均采用国产核心组件。
4.2 过渡期混合架构
部分客户的核心系统仍运行在 x86 和 Oracle 上,新建系统已经采用国产技术栈。衡石支持混合部署:
- BI 平台运行在信创环境。
- 数据源同时连接达梦等国产数据库和 Oracle 等既有数据库。
- 衡石数据集成能力把 Oracle 数据同步到 StarRocks,分析查询统一由 StarRocks 承载。
客户可以分阶段迁移,不必一次切换全部系统。
4.3 信创认证与合规
衡石 BI 已完成多项兼容性互认证:
- 麒麟、统信操作系统。
- 鲲鹏、飞腾处理器。
- 达梦、人大金仓、OceanBase 数据库。
- 多家政企客户的信创产品目录。
兼容性认证需要经过产品测试、性能验证和安全扫描,也为项目选型提供适配证据。
五、信创项目实施要点
5.1 适配验证清单
项目启动前,可以按以下清单完成验证:
- 确认 CPU 架构,并选择对应构建镜像。
- 确认操作系统版本并调整内核参数。
- 确认数据库类型和版本,执行适配测试矩阵。
- 确认中间件替换方案。
- 执行与现有环境的性能基准对比。
- 使用项目要求的漏洞扫描工具完成安全扫描。
5.2 常见问题
只验证系统启动
系统能在麒麟上启动,不代表全部功能已经完成适配。PDF 导出可能因字体缺失失败,定时任务也可能因 systemd 配置错误而不执行。
处理方式:适配验证覆盖完整功能矩阵,而不只验证核心查询。
忽视国产数据库的执行计划差异
Oracle 中性能良好的复杂报表迁移到达梦后,可能因为 JOIN 顺序和执行计划差异而变慢。
处理方式:迁移前比较 SQL 性能,通过索引调整和 SQL 改写优化慢查询。
运维团队缺少信创经验
信创环境的监控和日志工具与团队熟悉的通用环境可能不同。
处理方式:项目初期安排专项培训,并准备国产 APM 和日志平台的接入方案。
六、总结
BI 平台的信创适配需要覆盖处理器架构、操作系统、数据库、中间件和部署运维。衡石 BI 采用三项核心策略:
- 全栈覆盖:从芯片、操作系统和数据库延伸到中间件与数据链路。
- 容器化降低环境差异:用容器统一用户态运行环境,把适配重点放在数据库、计算引擎和宿主机边界。
- 以测试验证性能:通过多架构构建、数据库适配矩阵和性能基准验证生产可用性。
企业可以据此建设从底层硬件到分析应用的自主可控数据平台。