当前位置: 首页 > news >正文

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

背景介绍

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

业务挑战

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

  • 数据量大,高并发更新:云数据分析平台对接很多的上游网络安全数据源,数据库每天需要写入千万级数据并伴随高并发的更新请求,当前的数据库系统遇到扩展瓶颈。

  • 复杂查询影响线上业务:数据分析平台存在大量复杂查询,需要对数据进行Join 和聚合操作,需要能在不影响在线业务的前提下快速返回查询结果。

  • 历史数据维护复杂:随着数据量积累达到数十TB 以上,在线数据库已无力承载。虽然将部分表2年以上数据作为历史数据进行归档,减轻了在线数据库压力,但业务层面存在强烈的“冷热数据”混合查询需要,只能通过访问两套数据库,并在业务层进行数据合并,造成较大的运维和分析成本。

解决方案

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

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

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_t1Create 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 = utf8mb4PARTITION BY KEY(`id`)PARTITIONS 20

 

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

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

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

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

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

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

针对大量历史数据的问题,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分布式版(PolarDB-X)完成了业务的改造,基于PolarDB-X 高性能规模查询与写入能力,以及高速列存索引查询能力,使得业务分析效率成倍提升,大大提升了风险线索发现与治理能力。

----中盾数科CTO 李鹏宇

相关文章:

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

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

【大数据】MapReduce的“内存增强版”——Spark

【大数据】MapReduce的“内存增强版”——Spark 文章脉络 Spark架构 Spark-core SparkConf 和 SparkContext RDD Spark集群 Spark-sql 在大数据时代,数据处理和分析成为企业竞争的重要手段。Hadoop作为大数据处理的基石,其核心组件MapReduce在众多…...

o1模型:引领AI技术在STEM领域的突破与应用

o1模型是OpenAI最新推出的大型语言模型,它在多个领域展现出了卓越的能力,被认为是AI技术发展的一个重要里程碑。以下是对o1模型的详细介绍和分析: o1模型的简介和性能评估 o1模型在物理、化学、生物学等领域的基准任务上达到了博士生水平&…...

数据库系统 第57节 数据库迁移

数据库迁移是一个复杂的过程,涉及到将数据从一个数据库系统转移到另一个数据库系统。这个过程通常需要仔细规划和执行,以确保数据的完整性和可用性。以下是数据库迁移的一些关键方面: 数据迁移工具: 这些工具可以帮助自动化迁移过…...

【主机入侵检测】Wazuh规则详解

前言 Wazuh 规则是一组用XML格式编写的条件,它们定义了应该如何解释日志数据。这些规则由Wazuh Manager使用,用于在日志消息中检测特定的模式或行为,并相应地生成警报或响应。它们在威胁检测中扮演着至关重要的角色,因为它们允许系…...

redis有序集合写入和求交集的速度

背景 团队小伙伴做了一个需求。大概的需求是有很多的图片作品,图片作品有一些类别,每个人进入到每个类别的作品业,根据权重优先查看权重最高的的作品,权重大概是基于每个人对该作品的浏览计算,浏览过的作品放在最后展…...

微服务之服务注册与发现:Etcd、Zookeeper、Consul 与 Nacos 比较

在微服务架构中,服务注册与发现是实现服务动态管理和负载均衡的关键。本文将对四款主流的服务注册与发现工具——Etcd、Zookeeper、Consul、Nacos进行深入对比,从功能、性能、一致性、生态集成、应用场景等多个维度展开分析,帮助您选择最适合…...

桥接模式详解和分析JDBC中的应用

🎯 设计模式专栏,持续更新中, 欢迎订阅:JAVA实现设计模式 🛠️ 希望小伙伴们一键三连,有问题私信都会回复,或者在评论区直接发言 桥接模式 文章目录 桥接模式桥接模式的四个核心组成&#xff1a…...

【python - 函数】

一、交互式会话 在与 Python 的交互式会话中,你可以在提示符 >>> 后键入一些 Python 代码,Python 解释器会读取并执行你键入的各种命令。 要启动交互式会话,请在终端 (Mac/Unix/Linux) 中键入 python3 或在 Windows 中打开 Python…...

scipy中稀疏矩阵特征值问题概述

在Python的scipy库中,这三种算法——ARPACK、LOBPCG、和AMG——都是用于求解稀疏矩阵特征值问题的数值方法。它们各自有不同的特性和适用场景,以下是详细说明: 1. ARPACK (Arnoldi Package) ARPACK(Arnoldi Package)…...

浅谈线性表——队列

文章目录 一、什么是队列?二、队列底层三、自我实现一个队列3.1、链式存储3.1.1、单向链表实现队列的实现代码3.1.2、双向链表实现队列的实现代码 3.2、顺序存储3.2.1、循环队列的实现代码 一、什么是队列? 队列是只允许在一端进行插入数据操作&#xf…...

2-94 基于matlab的最佳维纳滤波器的盲解卷积算法

基于matlab的最佳维纳滤波器的盲解卷积算法。维纳滤波将地震子波转换为任意所需要的形态。维纳滤波不同于反滤波,它是在最小平方的意义上为最 佳。基于最佳纳滤波理论的滤波器算法是莱文逊(Wiener—Levinson)算法。程序提供了4种子波和4种期望输出:零延迟…...

【提示词】浅谈GPT等大模型中的Prompt

Prompt是人工智能(AI)提示词,是一种利用自然语言来指导或激发人工智能模型完成特定任务的方法。在AI语境中,Prompt是一种自然语言输入,通常指的是向模型提出的一个请求或问题,这个请求或问题的形式和内容会…...

最强AI照片说话Windows一体包下载地址,口型合成音频驱动图片,免安装,下载即用

照片数字一键整合包:点击下载 一键安装包,简单一键启动,即刻使用,秒级体验。 目前效果最好的音频驱动图片说话的软件,比sadtalker、MuseTalk更清晰,效果更好,可以作为DID heygen的开源平替。原…...

Windows下使用cmake编译OpenCV

Windows下使用cmake编译OpenCV cmake下载OpenCV下载编译OpenCV cmake下载 下载地址:https://cmake.org/download/ 下载完成,点击选择路径安装即可 OpenCV下载 下载地址:https://github.com/opencv/opencv/releases/tag/4.8.1因为我们是编译…...

设计模式---中介者模式

设计模式---中介者模式 定义与设计思路中介者模式的引入:机场控制塔中介者模式的设计框架 定义与设计思路 定义:用一个中介对象来封装一系列对象交互。中介者使各对象不需要相互引用,从而使其耦合松散,而且可以独立地改变它们之间…...

六氟化硫密度微水在线监测配套5孔M12格兰头航空插头插座

我们将为大家介绍如何使用六氟化硫密度微水在线监测配套5孔M12格兰头连接器。在本教程中,我们将向您展示简单易懂的步骤,让您轻松掌握。 所需材料: 1. 六氟化硫密度微水在线监测器 2. 5孔M12格兰头连接器 3. 电源线 4. 符合要求的电缆 5…...

linux -L4.linux 暂停和启动进程

接第3课,L3 第3课-查看进程 通过端口号,查看对应的进程 netstat -tulnp | grep :9513暂停这个进程 Kill -STOP 5376重启这个进程 Kill -CONT 5376要查看特定PID对应的端口,你可以使用netstat命令结合grep工具来过滤输出。以下是一个基于L…...

Java多线程编程-基础篇

多线程相关的概念 并发 并发是指在同一时间段内,两个或多个任务在同一个处理器上交替执行,使得在宏观上看起来像是同时进行。并发是通过快速切换任务来模拟同时执行的效果,实际上在任何一个时刻点上只有一个任务在执行。 也就是说&#xff0…...

【极限、数学】 NOIP 2018 提高组初赛试题 第 7 题详解(线段长度期望)

在一条长度为 1 1 1 的线段上随机取两个点,则以这两个点为端点的线段的期望长度是( )。 考虑将一个线段上平均分布有 n ( n ≥ 2 ) n(n\geq 2) n(n≥2) 个节点,其中首尾均有一个节点,那么我们就将一个线段均分为 n…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

零基础设计模式——行为型模式 - 责任链模式

第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...