应用案例|开源 PolarDB-X 在互联网安全场景的应用实践

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 中盾集团采用PolarDB-X云原生分布式数据库开源版本,有效解决了大数据量处理、复杂查询以及历史数据维护等难题,实现了业务的高效扩展与优化。

背景介绍

中盾数科集团始创于2012年,是由网络安全服务而发展起来的科技型、多元化的企业集团。旗下包括网络安全服务、信创一体化服务、箱式液冷、区块链、位置服务、视觉服务等六大板块,业务覆盖湖南、甘肃、贵州等多个省份。

image.png

业务挑战

中盾集团基于AI模型的云数据分析平台很好地支持了公司网络安全的相关业务。但是随着多年业务的发展与数据积累,也面临诸多挑战:

  • 数据量大,高并发更新:云数据分析平台对接很多的上游网络安全数据源,数据库每天需要写入千万级数据并伴随高并发的更新请求,当前的数据库系统遇到扩展瓶颈。
  • 复杂查询影响线上业务:数据分析平台存在大量复杂查询,需要对数据进行Join 和聚合操作,需要能在不影响在线业务的前提下快速返回查询结果。
  • 历史数据维护复杂:随着数据量积累达到数十TB 以上,在线数据库已力承载。虽然将部分表2年以上数据作为历史数据进行归档,减轻了在线数据库压力,但业务层面存在强烈的“冷热数据”混合查询需要,只能通过访问两套数据库,并在业务层进行数据合并,造成较大的运维和分析成本。

解决方案

经过多方面对比测试,中盾集团最终采用 PolarDB-X 云原生分布式数据库开源版本支持其网络安全数据平台业务。


image.png

基于开源的 polardbx-operator, 中盾数科在 Kubernetes 集群上快速完成数十节点的PolarDB-X 部署,将数据迁移至PolarDB-X,未增加业务改造成本的情况下,完成业务切换。下图给出了中盾数科部署的 PolarDB-X 数据库的信息:


image.png

PolarDB-X 提供的高性能、高可扩展性,很好地解决了当前业务的痛点,支撑业务的快速发展。

透明分布式,高效支撑高并发写入

PolarDB-X 的透明分布式能力,使中盾可以像使用单机 MySQL 数据库一样使用分布式数据库,从原数据库架构升级至 PolarDB-X 集群,无需任何业务改造,极大节约了运维成本,提升架构升级效率。

例如中盾系统中记录用户交易记录的表结构如下:

CREATE TABLE `transation_statement` (
    `id` bigint(20) NOT NULL COMMENT '序列号',
    `src_account_no` varchar(30) DEFAULT NULL COMMENT '转账账号',
    `dst_account_no` varchar(30) DEFAULT NULL COMMENT '收款账号',
    `trx_amt` decimal(20,2) DEFAULT NULL COMMENT '交易金额',
    `trx_date` varchar(30) DEFAULT NULL COMMENT '交易时间',
    ......
    PRIMARY KEY (`id`),
    index idx_src_account(src_account_no),
)


迁移到 PolarDB-X 后,基于自动分区的能力,表结构无需改变,即可实现数据的自动打散, 将数据均匀分布到多个DN 节点上。使用上述CRATE TABLE 语句在 PolarDB-X 执行后,实际的表结构如下。可以看到 PolarDB-X 已经默认按照主键 id 分区,打散数据。


mysql> show full create table transation_statement\G
*************************** 1. row ***************************
       Table: auto_t1
Create Table: CREATE TABLE `transation_statement` (
  `id` bigint(20) NOT NULL COMMENT '序列号',
  `src_account_no` varchar(30) DEFAULT NULL COMMENT '转账账号',
  `dst_account_no` varchar(30) DEFAULT NULL COMMENT '收款账号',
  `trx_amt` decimal(20,2) DEFAULT NULL COMMENT '交易金额',
  `trx_date` varchar(30) DEFAULT NULL COMMENT '交易时间',
  ......
  PRIMARY KEY (`id`),
  GLOBAL INDEX /* idx_src_account_$6425 */ `idx_src_account` (`src_account_no`) 
    PARTITION BY KEY(`src_account_no`,`id`)
    PARTITIONS 20,
  LOCAL KEY `_local_idx_src_account` (`src_account_no`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY KEY(`id`)
PARTITIONS 20


image.png


同时,基于 PolarDB-X 分布式的线性扩展能力,不仅可以满足每天大量数据写入/更新的需求,更重要的是,PolarDB-X 还支持进一步扩展,最大可扩展至 1024 节点,支撑 PB 级的数据量,轻松化解数据快速增长带来的焦虑和业务压力,无需为数据库的扩展性担忧。


HTAP 一体化,满足复杂查询的需求


PolarDB-X 提供列存索引,一张表可以同时具备行存和列存的数据,通过CREATE CLUSTERED COLUMNAR INDEX这样的 DDL 即可为行存表创建列存索引,实现行列数据的混合存储。面向行列混合场景设计SQL优化引擎,通过一套引擎支持行列混合查询,能够在一套数据库内很好地满足业务复杂查询的需求。


image.png



众所周知,数据分析场景一定会占用比较大的数据库资源,包括CPU、IOPS、内存等,PolarDB-X 提供的从计算到存储的“全链路资源隔离”能力,首先行存主要在DN多副本上,列存是在OSS对象存储上,确保行存和列存数据在IO读取层面完全隔离,其次支持列存只读实例,可以通过业务直连 或者 通过主集群地址读写分离的方式路由,确保SQL引擎的计算链路也可以完全隔离,确保了中盾分析查询业务(AP)与在线的业务(TP)安全、稳定、高效运行。


冷数据归档,解决历史数据的痛


历经多年发展,中盾沉淀了大量的历史数据,除了需要确保这些归档数据安全、低成本的存储,还时常需要基于新老数据混合分析,挖掘数据价值。


image.png

针对大量历史数据的问题,PolarDB-X 提供冷数据归档能力,支持按照时间维度自动将超过一定时限的历史数据转存至低成本的对象存储(OSS, S3, Minio)上,形成一张归档表。

对于上面介绍的交易记录表,可以通过如下的 DDL,方便地将其转换成TTL 表,实现数据根据交易日期自动归档,将两年前的历史数据更新至低成本存储上。


ALTER TABLE `transation_statement`
  LOCAL PARTITION BY RANGE (trx_date)
  STARTWITH '2021-01-01' # 初始时间分区。TTL表会把“初始时间分区”作为第一个分区。
  INTERVAL 1 MONTH # 时间分区的间隔,支持的时间粒度为YEAR、MONTH、DAY
  EXPIRE AFTER 24 # 指定分区失效的时间,此处是24个月
  PRE ALLOCATE 6;


PolarDB-X归档表同样支持高效的主键与索引点查、复杂分析型查询,业务上可以在一套数据库内完成在线与历史数据的查询分析,具备两边数据实时Join的查询能力,大大降低当前历史数据的维护成本。


应用效果总结

  • 基于 polardbx-operator,仅用十多分钟完成生产级 PolarDB-X 分布式集群的部署,支撑业务迁移。
  • 基于 PolarDB-X 的 HTAP 能力,复杂查询的耗时从原先的10多秒优化至4秒以内,提升了系统的分析效率。
  • 结合冷数据归档的能力,可以降低历史数据的存储与查询成本,最高可做到原来的1/20,同时原先针对冷热数据的多次查询也能够一条SQL搞定,详见《1/20的成本!PolarDB-X 冷热分离存储评测
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
打赏
0
18
16
3
163
分享
相关文章
PolarDB Supabase 助力快速构建现代应用
简介:本文介绍了在AI时代背景下,如何通过阿里云瑶池推出的全托管Supabase服务快速构建现代应用。该服务基于开源Supabase与PolarDB-PG数据库,提供一站式后端解决方案,涵盖实时数据库、身份认证、文件存储及AI能力,助力开发者高效迭代业务,降低运维复杂度。适用于协作类应用、SaaS平台、移动开发等多种场景。
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
187 3
PolarDB开源数据库入门教程
PolarDB是阿里云推出的云原生数据库,基于PostgreSQL、MySQL和Oracle引擎构建,具备高性能、高扩展性和高可用性。其开源版采用计算与存储分离架构,支持快速弹性扩展和100%兼容PostgreSQL/MySQL。本文介绍了PolarDB的安装方法(Docker部署或源码编译)、基本使用(连接数据库、创建表等)及高级特性(计算节点扩展、存储自动扩容、并行查询等)。同时提供了性能优化建议和监控维护方法,帮助用户在生产环境中高效使用PolarDB。
824 21
PolarDB开源:云原生数据库的新篇章
阿里云自研的云原生数据库PolarDB于2023年5月正式开源,采用“存储计算分离”架构,具备高性能、高可用及全面兼容性。其开源版本提供企业级数据库解决方案,支持MySQL、PostgreSQL和Oracle语法,适用于高并发OLTP、核心业务系统等场景。PolarDB通过开放治理与开发者工具构建完整生态,并展望更丰富的插件功能与AI集成,为中国云原生数据库技术发展贡献重要力量。
330 17
PolarDB开源进阶篇:深度解析与实战优化指南
PolarDB是阿里云开源的云原生数据库,采用计算-存储分离架构,结合高性能共享存储与Parallel Raft多副本一致性协议,实现微秒级延迟和卓越性能。本文深入解析其架构设计,涵盖智能调度层、性能优化技巧(如查询优化器调优和分布式事务提升)、高可用与容灾配置、扩展功能开发指南以及监控运维体系。同时,通过电商平台优化案例展示实际应用效果,并展望未来演进方向,包括AI结合、多模数据库支持及Serverless架构发展。作为云原生数据库代表,PolarDB为开发者提供了强大支持和广阔前景。
180 16
喜报|PolarDB开源社区荣获“2024数据库国内活跃开源项目”奖
喜报|PolarDB开源社区荣获“2024数据库国内活跃开源项目”奖
客户说|太美医疗选择阿里云PolarDB,助力医药研发数据安全应用
客户说|太美医疗选择阿里云PolarDB,助力医药研发数据安全应用
186 1
PolarDB开源数据库进阶课18 通过pg_bulkload适配pfs实现批量导入提速
本文介绍了如何修改 `pg_bulkload` 工具以适配 PolarDB 的 PFS(Polar File System),从而加速批量导入数据。实验环境依赖于 Docker 容器中的 loop 设备模拟共享存储。通过对 `writer_direct.c` 文件的修改,替换了一些标准文件操作接口为 PFS 对应接口,实现了对 PolarDB 15 版本的支持。测试结果显示,使用 `pg_bulkload` 导入 1000 万条数据的速度是 COPY 命令的三倍多。此外,文章还提供了详细的步骤和代码示例,帮助读者理解和实践这一过程。
181 0
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库
909 63
Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 云原生数据库 PolarDB
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等

    登录插画

    登录以查看您的控制台资源

    管理云资源
    状态一览
    快捷访问