千家信息网

分布式数据库如何玩转HTAP场景

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家介绍分布式数据库如何玩转HTAP场景,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。传统数据库架构面临的痛点1. 集群分散不利于整合,数据结构同步工作量大第一招:数据
千家信息网最后更新 2026年10月31日分布式数据库如何玩转HTAP场景

这篇文章给大家介绍分布式数据库如何玩转HTAP场景,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

传统数据库架构面临的痛点

1. 集群分散不利于整合,数据结构同步工作量大

第一招:数据源的数据同步

通过开发消费kafka的程序将数据同步到SequoiaDB数据中,保持和生产实时同步。以下为数据同步加载架构图:

第二招:弹性扩容

第三招:多模数据引擎使用

MySQL 实例适用于比较熟悉 MySQL 的操作人员,适合精准查询、业务数据写入、柜面查询、OLTP场景。增删查改操作和 MySQL 完全一致,底层数据保存在 SequoiaDB。

  • PostgreSQL 实例适用于比较熟悉 PostgreSQL 的操作人员,适合精准查询和OLAP场景。支持增删查改等功能和 PostgreSQL 使用完全一致,采用外表的方式将数据保存在 SequoiaDB 中。

  • Spark 实例为分布式集群,SparkSQL 适合报表分析、大表关联查询和 OLAP 场景。跨库关联查询比较友好,支持标准 SQL、支持 JDBC 访问、支持 Python 对接查询。

第四招:多种 SQL 引擎关联使用方法

4.1 MySQL 创建表

  • 创建 temp.test 这张表 ,其中字段信息如下所示 :

create  table temp.test  (        numcode smallint,        agentcode char(12),        bankname varchar(120),        flag decimal(8,4),        timecode datetime  );
  • 给 temp.test 这个表插入下面的4条记录:

insert into  temp.test (numcode,agentcode,bankname,flag,timecode)values(1,'test1','beijingbank1',10.1,'2019-06-21 10:07:52');insert into  temp.test (numcode,agentcode,bankname,flag,timecode)values(2,'test2','beijingbank2',10.2,'2019-06-22 10:07:52');insert into  temp.test (numcode,agentcode,bankname,flag,timecode)values(3,'test3','beijingbank3',10.3,'2019-06-23 10:07:52');insert into  temp.test (numcode,agentcode,bankname,flag,timecode)values(4,'test4','beijingbank4',10.4,'2019-06-24 10:07:52');

更新 temp.test 中 numcode=1 的记录中 bankname 为 "guangzhoubank"

  mysql> update  temp.test  set  bankname="guangzhoubank"  where  numcode=1;                      Query OK, 0 rows affected (0.00 sec)Rows matched: 0  Changed: 0  Warnings: 0
  • 更新后再次查询,显示更新已经成功

 mysql> select * from   temp.test;

删除 temp.test 表中 numcode=1 的这条记录

  mysql> delete  from  temp.test where  numcode=1;  Query OK, 0 rows affected (0.01 sec)  mysql> select * from   temp.test;

在 PostgreSQL 客户端创建映射表,能够查询出数据

  temp=# create foreign table test  temp-# (  temp(# numcode int,  temp(# agentcode text,  temp(# bankname  text,  temp(# flag decimal(8,4),  temp(# timecode  text  temp(# )  temp-# server sdb_server  temp-# options ( collectionspace 'temp', collection 'test', decimal 'on' );

连接 SparkSQL 客户端创建映射表,能够查询出数据

  create table temp.test (        numcode int,        agentcode string,        bankname string,        flag decimal(8,4),        timecode string  )USING com.sequoiadb.spark OPTIONS ( host '10.139.***.***:11810', collectionspace 'temp', collection 'test') ;

以上证明 MySQL 、PostgreSQL 和Spark 三者之间数据是通的,数据可以共用。

4.2 使用Spark生成子表

  • 连接 Spark 客户端,使用 create table as 的方式创建新表 test2

 create table temp.test2 USING com.sequoiadb.spark OPTIONS (     host '10.139.***.***:11810',    domain 'allDomain',     collectionspace 'temp',     collection 'test2',     ignoreduplicatekey 'true'  ,     shardingkey '{"_id":1}',     shardingType 'hash' ,     compressiontype 'lzw' ,     autosplit 'true'  )as select * from temp.test ;

连接 MySQL 客户端,映射 Spark 创建的新表能够查询出同步的数据

mysql> create  table temp.test2         -> (         ->     numcode smallint,         ->     agentcode char(12),         ->     bankname varchar(120),         ->     flag decimal(8,4),         ->     timecode datetime         -> );   mysql> select * from temp.test2;

第五招:多副本机制的应用

5.1 同城三副本高可用架构

其中有主备两个机房,其中主机房部署两个节点,备机房部署一个节点。三台机器共同组成一个数据组,其中选举逻辑遵循 Raft 协议。

5.2 主备一致性设置

在分布式系统中,一致性是指数据在多个副本之间数据保持一致的特性。SequoiaDB 巨杉数据库支持不同级别的主备一致性策略,以适配不同的应用场景。用户可根据业务对数据安全性和服务可用性的要求,选择不同的一致性策略。

1)强一致性

写所有节点当发生写操作时,数据库会确保所有复制组节点都同步完成才返回。写操作处理成功后,后续读到的数据一定是当前复制组内最新的。优势是能够有效的保证数据的完整性和安全性,劣势则是会降低复制组的写入性能,并且当集群内有一个节点故障或者异常时,无法写入数据,降低高可用性。

在核心交易型业务中,为了保证数据安全性,同时可以牺牲一定的写入性能时,推荐使用强一致性策略。

2)最终一致性

为了提升数据库的高可用性,以及实现数据的读写分离,SequoiaDB 默认采用"最终一致性"策略。在读写分离时,读取的数据在某一段时间内可能不是最新的,但副本间的数据最终是一致的。

写主节点在主节点执行写操作成功后,写操作即可返回。对数据查询一致性要求不高的业务,如历史数据查询平台,夜间批量导入数据以及白天提供查询业务,推荐使用写主节点的最终一致性策略。

其中强一致还是最终一致创建集合时由 ReplSize 这个参数来指定,创建集合时如设置 ReplSize 为-1表示强一致,默认为 ReplSize 值为1表示最终一致。根据使用场景来选择使用强一致还是最终一致,用户可以通过 db.setAttributes() 修改 ReplSize 属性。

第六招:多样化的监控工具

SequoiaPerf 工具除了能够协助用户对慢查询快速定位分析,还能够帮助用户全面监控 SequoiaDB 数据集群。在 SequoiaPerf 的首页上,用户可以对 SequoiaDB 数据库集群运行情况做一个宏观的浏览,快速查阅当前集群的运行情况。

在 SequoiaPerf 的服务器资源页面上,用户可以了解服务器更加详细的信息。

例如服务器磁盘的I/O使用情况,可以通过放大图表获得更加详细的数据。同时用户也可以通过页面右上角的时间栏,选择查看近期一段时间的资源使用情况。

小结

1. 数据库在数据管理中的突出能力

SequoiaDB 巨杉数据库是一款金融级分布式关系型数据库,产品引擎采用原生分布式架构,100%兼容 MySQL 语法和协议,支持完整的 ACID 和分布式事务。同时 SequoiaDB 还提供多模(multi-model)数据库存储引擎,原生支持多数据中心容灾机制,是新一代分布式数据库的首选。SequoiaDB 巨杉数据库可以为用户带来如下价值:

  • 完全兼容传统关系型数据,数据分片对应用程序完全透明

  • 高性能与无限水平弹性扩展能力

  • 分布式事务与 ACID 能力

  • 同时支持结构化、半结构化与非结构化数据

  • 金融级安全特性,多数据中心间容灾做到 RPO = 0

  • HTAP 混合负载,同时运行联机交易与批处理任务且互不干扰

  • 多租户能力,云环境下支持多种级别的物理与逻辑隔离

2. 实践成果

数据库完美解决目前传统数据库面临的痛点,降低了IT成本、提高运维效率,使数据能够有效给企业提供服务。其优势如下:

  • 提高查询效率,使用 Spark 大表查询效率提高20倍。

  • 容量多,合并同步了多个生产库、历史库的全部数据。

  • 模式新,支持多种数据类型、结构化和非结构化。

  • 扩容简单,支持快速扩容和缩容,基本有机器就能扩容。

  • 上手简单,一键部署使用,降低dba学习成本。

  • 查询引擎丰富,支持多种 SQL 查询引擎,丰富业务使用。

  • 接口丰富,除了 SQL 还支持 JDBC、ODBC 和 API 多种接口,灵活使用。

  • 系统完备,有新的业务系统随时可以接入。

关于分布式数据库如何玩转HTAP场景就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

数据 一致 查询 数据库 支持 分布式 一致性 用户 节点 同步 场景 业务 引擎 结构 集群 同时 多种 策略 服务 结构化 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技金融是不是互联网金融 中国互联网科技股 科技创新与互联网经济 互联网科技垄断 互联网科技公司怎么样 互联网科技公司官网 互联网科技宣传片 开启互联网科技时代小说 天速互联网络科技有限公司 深圳国际航运科技和互联网 福州新华互联网科技学校 知乎 常德市电业局互联网科技部 广州新华互联网科技学校电竞方面 合肥互联网科技公司公章图片 卡尔迅互联网科技有限公司 易企秀互联网科技是做什么的 互联网科技手抄报图片 众联互联网络科技 互联网对科技影响 东风日产互联网科技公司叫什么 互联网科技公司 有格互联网科技 伟宏互联网科技 广东猪兼强互联网科技有限公司 互联网是第几次科技革命的成果 互联网科技公司华为 科技企业和互联网企业 米聚互联网科技南京有限公司排面 互联网公司高科技产品 杭州披云加互联网科技有限公司
0