jjzjj

StoneDB社区答疑第二期

关于StoneDB的星星点点 2023-03-28 原文

我们又把近期的一些社区热点问题做了一次汇总,同步给所有关注StoneDB的同学们~

提问Qustions & 解答Answers

Q:现在StoneDB单机什么硬件规格部署能分析100TB级别的数据?

A:像这么大的存储量,系统一般是分析类的,存储可以是单块盘容量是7.6TB的SSD,CPU核数和主频越高越好。

Q:StoneDB什么时候支持delete功能?

A:StoneDB预计在10月20号会发布StoneDB_5.7_V1.0.1版本,届时会支持delete功能,目前只是暂时不支持,主要是为了优化性能,给用户更好的使用体验。

Q:当前StoneDB支持哪些客户端管理软件吗?类似MySQL下的Navicat客户端。

A:StoneDB支持Navicat、DBeaver、SQLyog等客户端,同时对应标准的JDBC,ODBC等方式也是支持的。

Q:1、创建表时,可以选择engine = innodb 或 tianmu 吗?engine = innodb 的表会更新到 tianmu 去吗?2、如果没指定引擎,表默认引擎是什么?

A:1、StoneDB 支持在创建表时显式指定表的存储引擎类型。另外,StoneDB支持将engine=innodb的表自动更新到 engine=tianmu 的表中,在主从架构下,将主节点默认的存储引擎设置为innodb,从节点默认的存储引擎设置为tianmu,则数据在主从同步过程中自动完成行列转换。

2、如果创建表没有指定存储引擎,表的存储引擎取决于参数default_storage_engine的值。建议TP端的参数设置为default_storage_engine=innodb,AP端的参数设置为default_storage_engine=tianmu。

Q:一份数据在主节点可以同时 行存&列存,以两种形态存放吗?如果数据同时以两种形态存放, 则任何数据修改需要维护两个 copy , 如果只以一种形态存放, 那如何兼顾TP/AP 两种业务操作?

A:现阶段StoneDB HTAP是通过MySQL主从架构来实现的(这只是1.0的架构,未来在2.0的架构中会有完全不同的实现),采用binlog同步数据:主节点使用InnoDB引擎,可读写,提供OLTP场景的读写业务;从节点使用StoneDB引擎,只读,OLAP查询节点,实现了OLAP 的多种重要特性,满足数据实时查询及高并发复杂查询场景。

Q:对于主节点是innodb,slave是stoneDB应对TP和AP的场景,,对目前你们不支持的DDL和DML,比如修改字段长度、创建、删除索引、delete等这些你们是如何处理的,到slave会忽略?

A:遇到不支持的DDL和DML可以通过以下办法解决。如果主从之间没有开启GTID模式,主库在变更前可以关闭当前线程的binlog(set sql_log_bin=off),这样就不会同步到从库;如果主从之间开启GTID模式,主库在变更前可以设置GTID的值,从库可以执行这个GTID值的空事务。

Q:因为MySQl适合OLTP场景下的事务处理,那每次进行新增、修改、删除,这部分数据是如何同步到StoneDB里的呢?因为StoneDB的限制,有些DDL不支持,比如修改字段长度、类型、重命名字段等,如果这部分在我们实际开发和应用中对MySQL进行了操作会影响MySQL和StoneDB之间的数据保持一致性吗?

A:如果StoneDB为从库,那么主库做的DML会通过binlog同步到从库,delete目前不支持,TP端可以用逻辑删除标记为这一行为删除状态。例如新增一个字段,这个字段用于标识这一行是否是删除状态,1表示删除,0表示未删除,这种方法在TP端使用update代替了delete。原生delete支持将在10月20号的StoneDB_5.7_v1.0.1版本中支持,详细的可以看看我们的Roadmap。

Q:你们文档中列举的使用限制是针对存储引擎是Tianmu的吧?

A:是的,文档中列举的使用限制是针对存储引擎为Tianmu的情形,如果存储引擎为 InnoDB ,与使用 MySQL 无任何差异。

Q:我们现在的业务数据表都是基于行式存储引擎InnoDB创建的,如果要用StoneDB,这部分业务数据需要迁移?同步?需要用什么工具吗?

A:
InnoDB迁移到StoneDB,常用的mysqldump,mysqldumper、gravity都可以支持。停机迁移可以考虑使用mysqldump 或者mydumper,可以参考

mysqldump:
https://stonedb.io/zh/docs/O&M-Guide/backup-and-recovery/use-mysqldump-backup-and-restore/

mydumper:
https://stonedb.io/zh/docs/O&M-Guide/backup-and-recovery/use-mydumper-full-backup

热迁移StoneDB基本支持当前市面上MySQL热迁移工具,例如Mydumper+otter(mysqldump也可以,mydumper支持多线程全量备份,大数据量建议使用mydumper多线程备份),gravity等。

Mydumper+otter可以参考这个方案操作,从mydumper备份文件 metadata 中找到binlog位点填入otter位点配置,就可以做到全量数据同步后进行增量数据同步,

mydumper 可以参考上面提供的链接,otter可以参考otter 项目文档:https://github.com/alibaba/otter

gravity可以参考我们的官方文档:https://stonedb.io/zh/docs/data-migration-to-stonedb/use-gravity-to-migrate

Q:集群方案是基于什么算法?需要引入zk这样的额外组件吗?

A:目前集群采用的是HA架构,搭建和MySQL高可用架构一样,再引入keepalive或者ProxySQL之类的流量分摊组件即可,不需要使用zk组件。

Q:我们现在业务系统通过JAVA生态体系技术开发,如果用InnoDB的话,我们现有持久层对MySQL的操作需要进行哪些改造?

A:无需改造。

Q:关于检索的需求,目前的数据量使用MySQL不能很好的支持全文检索,我们了解到其他友商的解决方案也是要配合ES。StoneDB的介绍上有写可以取代ES集群支持检索业务,这块StoneDB的能力大概是怎样的?

A:目前StoneDB在行存引擎支持了全文检索,列存引擎尚未支持。如果有任何一位用户提供给我们对全文检索的具体需求和使用场景做详细描述,我们会派相关技术人员展开深入交流,共同探讨解决方案。

Q:1、将来有没有可能支持CEP?2、支持prewhere这样的功能么?3、支持物化视图么?4、是个单机数据库么?

A:1、会支持CEP的。

2、不支持prewhere。

3、不支持物化视图,MySQL也不支持物化视图,理论上可以结合触发器达到物化视图的功能。

4、目前是单机,将来会实现集群。

Q:StoneDB知识节点(KN)里存储的是什么数据?知识节点和元数据节点有啥不同呢?

基本的元数据(如列定义,约束条件等),数据特征及更深度的数据统计信息(如记录值范围段的标识BitMap, 统计当前Column中各记录的值分布信息等)。

A:数据元信息节点和数据节点是一一对应的,记录对应数据块中聚合函数值(min,max, sum,avg ...),record count,null 记录标记等信息。

Q:1、假设我在TP中创建了一个表testA,并指明engine=innodb,在进行一些业务写入操作后,这张表是否会同步到AP中?(相当于在TP中的表在AP中也有一份)2、如果我要对testA进行分析,是不是需要等TP同步之后才能进行分析?

A:如果在TP端创建表时指定了存储引擎engine=innodb,那么这张表会同步到AP端,但在AP端它的存储引擎还是innodb。

如果继续对这张表做analyze操作,不需要等AP端同步完,在TP端的analyze也会同步到AP端。但因为这张表在AP端还是innodb引擎,所以就没有Tianmu存储引擎的特性。

有关StoneDB社区答疑第二期的更多相关文章

  1. ruby-on-rails - lovdbyless VS 社区引擎……哪个最好? - 2

    随着ruby​​被引入为新的编程救世主,我想知道是否有人基于易用性、运行所需的资源、可用性和易定制性而有偏好。两者有更好的吗? 最佳答案 好吧,任何基于Rails的社交网络应用程序的比较都应该包括insoshi(http://portal.insoshi.com/)。话虽这么说,这三个都非常相似,区别在于实现细节。Lovd和Insoshi都是完整的Rails应用程序;它旨在供您将它们用作入门工具包,并使用您自己的自定义功能对其进行扩展。另一方面,CommunityEngine是一个Rails插件。这意味着您可以更轻松地向现有Rail

  2. ruby-on-rails - 提交者在 Ruby 社区中使用什么测试环境设置? - 2

    今天,我将尽可能地设置我的测试环境和工作流程。我正在向对Ruby测试充满热情和精通的你们寻求有关如何设置测试环境的实用建议。到一天结束时(太平洋标准时间早上6点?)我希望能够:键入一个1-command来为我在Github上找到的任何项目运行测试套件。为任何Github项目运行autotest,这样我就可以fork并做出可测试的贡献。使用Autotest和Shoulda从头开始​​构建gem。Foronereasonoranother,IhardlyeverruntestsforprojectsIclonefromGithub.Themajorreasonisbecauseunless

  3. ruby - 什么是社区首选的 Ruby 单元测试框架? - 2

    在Java领域,主要使用JUnit,而在.NET中,我相信nUnit非常流行。社区是否就Ruby世界的单元测试框架达成一致?背景:我问是因为我是Ruby的新手,想在学习Ruby的同时练习TDD。到目前为止,我只玩过Test::Unit。 最佳答案 你可以坚持使用Test::Unit或者你可以使用Shoulda对其进行很好的扩展或使用Context的一些很酷的上下文.另一方面,如果您更喜欢BDD,那么您可以安全地坚持使用RSpec.至于验收测试用Cucumber. 关于ruby-什么是社区

  4. ruby - Unix 哲学在 Ruby 社区失宠了吗? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。ImprovethisquestionDavidKorn,Unix哲学的支持者,几年前在aSlashdotinterview中斥责Perl程序员用于编写单一的Perl脚本而不通过管道、重定向等使用Unix工具包。“Unix不仅仅是一个操作系统,”他说,“它是一种做事的方式,shell通过提供使它起作用的胶水。”似乎提醒同样适用于Ruby社区。Ruby具有通过popen、STDIN、STDOUT、STDERR、ARGF等与其他U

  5. ruby-on-rails - ruby on rails(或者至少是社区)正在消亡吗? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭12年前。这是一个诚实的问题,我不是在挑衅。作为Rails的新手,我一直在寻找好的Rails资源。但是我注意到许多曾经很受欢迎的网站现在已经完全被废弃了。一些例子:http://www.softiesonrails.com/-最后更新于2010年2月http://www.therailsway.com/-最后更新于2009年8月http://nubyonrails

  6. eBPF verifier常见错误整理 @龙蜥社区eBPF SIG - 2

    如今eBPF程序的编写,很多都是基于bcc或者bpftrace进行,也有开发者直接基于libbpf库进行,但是不管怎样,编写的xx.bpf.c程序,在加载到内核时,都必须经过内核的verifier校验器进行各种边界和内存检查,经常会碰到各种奇奇怪怪的verifier报错,导致eBPF程序加载失败。有些错误,开发者可能要花费大量的时间去分析并修改程序,并祈祷程序能够加载成功。特别是在低版本的内核运行低版本Clang编译器编译的eBPF程序,错误提示非常糟糕,经常找不到出错点,这就大大增加了开发难度。为此,本文梳理了一些常见的eBPFverifier报错,避免更多的人走弯路,写出能成功加载的eBP

  7. (附源码)ssm智慧社区管理系统 毕业设计 101635 - 2

    基于SSM的智慧社区管理小程序摘 要随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,社区管理通过网络结合现下流行的小程序进行信息管理掀起了热潮,因此“智慧社区管理小程序”应运而生了。整个智慧社区管理小程序开发过程首先对系统进行需求分析,得出其主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进

  8. javascript - 网络中的社区/集群检测算法 - 用 javascript 实现? - 2

    我正在寻找用javascript实现的社区检测算法。Louvain算法或任何其他算法都可以。 最佳答案 最近执行了Louvaincommunitydetection在JavaScript中,在某种程度上,它很容易与D3.js一起使用:https://github.com/upphiminn/jLouvain作为旁注,由于我没有意识到,我为我的项目写了一个贪婪的模块化最大化TagOverflow(另请参见somedescription)。它工作得很好(见下面的示例),但是这个jLouvain是一个更好的算法和更好的实现。

  9. 利用腾讯云函数实现和鲸社区每日自动登录 - 2

    和鲸社区算是国内比较不错的机器学习算力平台,可以通过每日登录积累成长值,每月还会给鲸币奖励,有一段时间每天都会登登陆一次,但是有时候还是会忘记。最近根据腾讯云Serverless部署云函数实现自动登录,解放双手。首先每次登陆后将进行微信推送,我采用的是pushplus平台,获取token即可。微信推送#从pushplus平台获取tokentoken='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'defsendToWechat(title,content):url='http://www.pushplus.plus/send'headers={'Content-Type

  10. javascript - Javascript 社区是否有依赖项检索(如 maven 或 gem)? - 2

    Java有maven或ivy从各种公共(public)存储库中检索依赖的jar。Ruby有更好的依赖检索工具:gem和bundle。Javascript社区是否有任何等效工具?我找到了许多工具来管理将依赖项动态加载到浏览器中。我不是在寻找那些工具。具体来说,我正在寻找新开发人员用来检索他们需要的javascript文件的工具。开发人员运行此工具并:查看项目依赖描述文件发现该项目需要jquery-ui-1.8.7、tiny_mce-3.4.3.2和prettyLoader-1.0.1从网络检索jquery-ui-1.8.7.min.js、prettyLoader-1.0.1.js、tin

随机推荐