SequoiaDB

【巨杉数据库SequoiaDB】巨杉⼯具系列之一 | ⼤对象存储⼯具sdblobtool

 ̄綄美尐妖づ 提交于 2019-12-04 20:25:07
近期,巨杉数据库正式推出了完整的SequoiaDB 工具包,作为辅助工具,更好地帮助大家使用和运维管理分布式数据库。为此,巨杉技术社区还将持续推出工具系列文章,帮助大家了解巨杉数据库丰富的工具矩阵。 本文作为系列第一篇,将分享巨杉数据库大数据存储工具 sdblobtool 的基本介绍和应用实践。 巨杉工具矩阵 一、对象存储与自建存储对比 通俗地讲,自建存储就是自己购买服务器设备存储文件,通过运维人员手工进行文件的上传下载。而对象存储,则是使用不同的存储形态来存储文件。目前,对象存储独立的存储形态有三种:块存储、⽂件存储以及新出现的对象存储。 块存储:简单来说,块存储就是将硬盘直接挂载到主机,在主机上我们能够看到的就是一块块的硬盘以及硬盘分区。从存储架构的角度而言,块存储又分为DAS存储(Direct-Attached Storage,直连式存储)和SAN存储(Storage Area Network,存储区域网络)。 文件存储:指的是在文件系统上的存储,也就是主机操作系统中的文件系统。我们知道,文件系统中有分区,有文件夹,子文件夹,整体形成⼀个自上而下的⽂件结构,⽤户可以通过操作系统中的应⽤程序来打开和修改文件系统下的⽂件。 对象存储:指的是⾯向对象/⽂件的、海量的互联网存储对象。虽然它也是文件,但它是已经被封装的⽂件(编程中的对象就有封装性的特点)。在对象存储系统⾥

【巨杉数据库SequoiaDB】SequoiaDB 巨杉数据库 v3.4 版本正式发布

旧巷老猫 提交于 2019-12-04 20:22:37
深秋时节,SequoiaDB 巨杉数据库在深秋给大家带来了“一把火”。 SequoiaDB v3.4 正式发布啦! 分布式交易场景性能大幅提升 SequoiaDB 巨杉数据库3.4版本正式发布,v3.4最重要的特性就是在分布式交易场景下的性能提升。 对比上一大版本,SequoiaDB v3.4 在分布式交易场景,读写性能提升达30%,更新性能提升1倍-1.5倍,查询性能较v3.2提升1.5倍以上。 新旧版本性能对比示意 针对分布式交易场景,3.4版本的技术提升主要有以下几个: Improved 2PC Algorithm 分布式事务智能仲裁算法。为分布式事务 2PC 提交增加智能仲裁算法,重点解决 2PC 算法中“In-doubt Transaction” 异常状态,实现数据库在极端场景下为多分区事务智能仲裁,确保分布式事务的强一致性。 Latch-less Memory Model 实现多层级内存池和无锁内存模型。数据库集群池化内存资源,内存池多级管理,会话访问实现 99.99% 内存访问命中率,实现高并发 OLTP 场景下内存的无锁访问,系统CPU的使用率提升 10%。SequoiaDB v3.4同时提供在线内存监控和离线内存分析能力,自动化生成内存分析报告。 Improved Raft Algorithm 突破Raft 算法极限,实现全并发同步。SequoiaDB v3

【巨杉数据库SequoiaDB】巨杉Tech | 巨杉数据库数据高性能数据导入迁移实践

强颜欢笑 提交于 2019-12-04 20:22:32
SequoiaDB 一款自研金融级分布式数据库产品,支持标准SQL和分布式事务功能、支持复杂索引查询,兼容 MySQL、PGSQL、SparkSQL等SQL访问方式。SequoiaDB 在分布式存储功能上,较一般的大数据产品提供更多的数据切分规则,包括:水平切分、范围切分、主子表切分和多维切分方式,用户可以根据不用的场景选择相应的切分方式,以提高系统的存储能力和操作性能。 为了能够提供简单便捷的数据迁移和导入功能,同时更方便地与传统数据库在数据层进行对接,巨杉数据库支持多种方式的数据导入,用户可以根据自身需求选择最适合的方式加载数据。 本文主要介绍巨杉数据库集中常见的高性能数据导入方法,其中包括巨杉工具矩阵中的 Sdbimprt导入工具,以及使用SparkSQL, MySQL和原生API 接口进行数据导入,一共四种方式。 Sdbimprt工具导入 sdbimprt 是 SequoiaDB 的数据导入工具,是巨杉数据库工具矩阵中重要组成之一,它可以将 JSON 格式或 CSV 格式的数据导入到 SequoiaDB 数据库中。 关于工具说明与参数介绍,请参考: http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1479195620-edition_id-0 。 一、示例 下面简单介绍一下如何使用 sdbimprt 工具将 csv 文件导入到

【巨杉数据库SequoiaDB】巨杉Tech | 四步走,快速诊断数据库集群状态

六月ゝ 毕业季﹏ 提交于 2019-12-04 20:21:09
1.背景 SequoiaDB 巨杉数据库是一款金融级分布式数据库,包括了分布式 NewSQL、分布式文件系统与对象存储、与高性能 NoSQL 三种存储模式,分别对应分布式在线交易、非结构化数据和内容管理、以及海量数据管理和高性能访问场景。 集群一般会使用三副本方式以确保数据安全。假若集群发生因硬件故障等原因导致的节点故障或集群异常,数据库管理员应进行系统的分析和诊断,以确保集群正常工作,不会影响用户的正常使用。本文将与大家分享一下基本的 SequoiaDB 数据库诊断方法。 数据库集群诊断 1)确定 SequoiaDB 的安装路径 如果用户刚接触全新的 SequoiaDB 环境,可以通过 cat /etc/default/sequoiadb 命令查看数据库安装路径。 cat tc/default/sequoiadb NAME=sdbcm SDBADMIN_USER=sdbadmin INSTALL_DIR=/opt/sequoiadb INSTALL_DIR即 SequoiaDB 的安装路径。 2)列出集群节点信息 【检查办法】 切换到数据库安装用户(默认为sdbadmin用户),查看节点信息和全部节点。 $ sdblist -l $ sdblist -t all 从左到右依次为SvcName(节点名称)、Role(角色名称分为:编目节点、协调节点和数节点)、PID(进程号)

【技术教程】MySQL to SequoiaDB数据迁移

こ雲淡風輕ζ 提交于 2019-12-03 11:23:56
1 背景 随着互联网的飞速发展,互联网的业务量呈爆发性增长,对于的数据量也迅速激增。传统的单机数据库在存储空间及性能的瓶颈,导致其将无法支撑企业业务的高速发展。伴随着海量数据对系统性能,成本以及扩展性的新需求,分布式数据库系统应运而生。sequoiadb作为是一款优秀的分布式文档型数据库,其底层基于分布式,高可用,高性能与动态数据类型设计的,能够应对海量数据的存储,及提供高效检索。 传统数据库可以利用分布式数据库的优势来缓解其自身的瓶颈。比如,将历史数据迁移到sequoiadb,由sequoiadb提供存储及业务服务,以缓解传统数据库自身的压力。数据迁移分为全量迁移和增量迁移,本文主要对mysql到sequoiadb的增量数据迁移过程进行分析。 2 场景介绍 本文将通过一个小案例来分析数据从mysql数据库抽取,并经由spark对数据进行清洗转换,最后装载到sequoiadb的迁移过程。 源数据mysql中有两张待迁移的数据表分别为student表和grade表,我们需要对grade表进行增量迁移,每次只迁移更新的数据;此外,我们需要一张由student和grade整合的大表,方便提供查询服务。 具体方案为先通过select ...... into outfile ......方式从mysql数据库中导出数据为csv格式文件,指定导出编码为gb18030(此处模拟银行数据编码)

【入门教程】SequoiaDB+Postgresql数据实时检索最佳实践

杀马特。学长 韩版系。学妹 提交于 2019-12-03 11:23:21
1. 背景 SequoiaDB数据实时检索的能力体现在索引和数据切分的使用上,创建合适的索引能够快速查询到具备某一特征数据的能力;合理的切分方式能够提高数据查询性能。比如按时间,按地区去统计一些数据时,可以采用主子表的切分方式,将一个海量数据的集合切分成均匀的多个数据块,某些类型的查询性能就可以得到极大提升。 SequoiaDB作为分布式数据库,从设计之初就已经支持SQL访问。目前,SequoiaDB自研的SQL访问组件SequoiaSQL作为企业版的功能之一已经提供给上百家企业用户使用,并且已经实现分布式架构下的SQL 2003支持。 由于大部分开发人员及客户倾向于使用标准的SQL语句作为数据库操作的标准接口,SequoiaDB实现了与PostgreSQL的对接,使得开发者可以使用SQL语句访问SequoiaDB数据库,完成SequoiaDB数据库的增,删,查,改操作。对于SequoiaDB社区版用户,我们可以通过SequoiaDB对接PostgreSQL 实现社区版的分布式SQL访问。这一应用方式基本也可以满足大部分的社区版需求。 2. SequoiaDB与PostgreSQL对接结构 Pg与sdb对接架构图 Pg对接sdb步骤 · 先创建PostgreSQL本地数据库, · 在本地数据库中加载SequoiaDB连接驱动sdb_fdw · 基于sdb_fdw,创建server

SequoiaDB 3.0 正式发布,分布式OLTP场景实现MySQL协议级兼容

别来无恙 提交于 2019-12-02 08:00:08
SequoiaDB 巨杉数据库 3.0 ,在产品GA发布后,经过近半年在金融级场景的测试、上线和稳定运行之后,于近期正式发布。 1. SequoiaDB 3.0 产品定位 SequoiaDB巨杉数据库是一款金融级分布式数据库,包括了分布式NewSQL、分布式文件系统与对象存储、与高性能NoSQL三种存储模式,分别对应分布式在线交易、非结构化数据和内容管理、以及海量数据管理和高性能访问场景。 根据Gartner的数据库报告,Multi-model多模是未来10年,下一代分布式数据库发展的最主要方向。从1.0的高性能分布式 NoSQL数据库,到2.0加入的分布式对象存储,再到3.0完整协议级兼容MySQL,SequoiaDB经过6年的不断迭代创新,全面支持企业级结构化、半结构化以及非结构化数据存储。 SequoiaDB 3.0 产品维度 2. MySQL 完整协议级兼容 SequoiaDB 3.0实现了100%的MySQL协议级兼容: · 全面兼容:全面支持MySQL协议与语法,用户可以直接使用MySQL客户端或任何管理、开发与监控工具对数据库进行操作; · MySQL语法:由于使用了MySQL原生的解析器,SequoiaDB 3.0 能够实现100%的MySQL语法兼容,支持语法包括基础CRUD操作,多表关联,跨节点事务操作,创建视图,存储过程,索引和访问计划等。 · 无缝切换:

【技术教程】SequoiaDB对接Kafka

白昼怎懂夜的黑 提交于 2019-12-02 04:36:33
1、 背景 当前互联网、金融、政府等行业,活动流数据几乎无处不在。对这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。活动流数据的这种处理方式对实时性要求越来越高的场景已经不在适用并且这种处理方式也增加了整个系统的复杂性,为了解决这种问题,分布式开源消息系统Kakfa已被 多家不同类型的公司 作为多种类型的数据管道和消息系统使用。 Kafka是一种分布式的,基于发布/订阅的消息系统。提供消息持久化能力,支持消息分区,分布式消费,同时保证每个分区内的消息顺序传输,支持在线水平扩展、高吞吐率,同时支持离线数据处理和实时数据处理。 巨杉数据库SequoiaDB支持海量分布式数据存储,并且支持垂直分区和水平分区,利用这些特性可以将Kafka中的消息存储到SequoiaDB中方便业务系统后续数据分析、数据应用。本文主要讲解巨杉数据库SequoiaDB如何消费Kafka中的消息以及将消息存储到SequoiaDB中。 2、 产品介绍 巨杉数据库SequoiaDB是一款分布式非关系型文档数据库,可以被用来存取海量非关系型的数据,其底层主要基于分布式,高可用,高性能与动态数据类型设计,它兼顾了关系型数据库中众多的优秀设计:如索引、动态查询和更新等,同时以文档记录为基础更好地处理了动态灵活的数据类型。PostgreSQL支持标准SQL

MySQL 迁移到 PG 怎么做

浪尽此生 提交于 2019-12-01 06:18:54
千万不要用 pgloader,就是个垃圾 etlalchemy 是值得信赖的选择。 https://github.com/seanharr11/etlalchemy 还有其它基于 sqlalchemy 的 migration tool 都值得一试,我已经用了不少 sqlalchemy 特性,比如从 mysql -> sqlite, mysql -> postgres,我深深的了解到,只要做好一个 column type mapping 之类的东西就好了,核心功能 sqlalchemy 基本都完成了,本想造个轮子发现已经有现成的。 另参见:巨杉Tech | 使用etlAlchemy工具迁移数据实战_SequoiaDB技术博客_SequoiaDB巨杉数据库 : http://www.sequoiadb.com/cn/Blog-detail-id-105 来源: https://www.cnblogs.com/inshua/p/11664584.html

SequoiaDB报告创建线程失败的解决办法

元气小坏坏 提交于 2019-12-01 04:09:38
1. 问题背景 对于分布式数据库和分布式环境,高并发和高性能压力的情况下,出现线程创建失败等等问题也是十分常见的,这时候就十分考虑数据库管理员的经验,需要能快速的定位到问题和瓶颈所在,快速解决。本文也是作为一个最佳实践,告诉大家如何在高并发情况下定位问题,排除问题,解决瓶颈。 2. 问题定位 SequoiaDB 在集群环境中的 -10 错误码,在认真查阅节点的 diaglog 日志后,发现是操作系统 create thread 失败的问题。 如我们的测试环境下,SequoiaDB节点的 diaglog 的错误日志信息 阅读这个错误日志的内容,通过看到类似如下的关键信息 Failed to create new agent: boost::thread_resource_error: Resource temporaily unavailable Failed to create new agent, probe = 30 Failed to create subagent thread, rc = -10 Failed to start session EDU, rc = -10 那么一般操作系统在创建线程时,会受限于哪些参数呢,主要有几个: 文件句柄数限制、操作系 统 句柄数限制 和 内存 资 源。 1 )文件句柄数 在 linux 操作系 统 中,号称一切皆 为 文件,无 论