matrixorigin / matrixorigin.io.cn

10 stars 23 forks source link

[Enhancement]: 1.1版本的FAQ更新 #903

Closed dengn closed 6 months ago

dengn commented 8 months ago

Is there an existing issue about this enhancement?

Describe the enhancement.

产品相关FAQ要进一步丰富及细分。

cyann7 commented 8 months ago

根据1-4期的直播内容更新FAQ : 第一期: 问题汇总: 1)单机和MySQL性能对比有测试过吗

单机版本在TP性能上与MySQL相比略差,在Load,流式写入,分析查询上远超过MySQL。

2)MO是否支持信创环境下部署

信创说的比较笼统,我们就认为是说的国产的操作系统和芯片,芯片我们已经适配过鲲鹏和海光,操作系统已经适配过银河麒麟,欧拉,麒麟信安。都有适配认证的。

3)对MySQL的兼容性怎么样,BI里直接当MySQL用吗

对MySQL 8.0是高度兼容的。传输协议,绝大部分的SQL语句,函数等等都是一样的。管理和生态工具很多也都可以复用MySQL的工具。BI里可以直接当MySQL用,我们官网上也有教程。

4)也是HTAP?这跟TiDB有啥区别?

架构不一样。MatrixOne是存算分离的,是基于云的share storage架构,数据都在一个地方,也就存一份,也是拿一个引擎实现的HTAP。不像TiDB是Share nothing,数据要分片,TiKV做TP,TiFlash做AP,两个引擎加了个ETL做到的HTAP,数据也要存两份。

5)集群部署只支持K8s吗?能不能物理分布式本地部署?

如果提前没有k8s和minio环境的话。我们的安装工具会自带k8s和minio,也可以在物理机一键部署。

6)有没有MO云版本?想快速测试看看

有的。mo cloud马上就要公测了。敬请期待。

7)各个组件都是做什么用的?最小化需要部署都多少个实例?后期能支持不停服无感扩容吗?

核心的组件有4个,proxy,cn,tn,log service。cn就是无状态的计算节点,tn是事务节点,log service是事务的日志,相当于WAL。proxy是用来做负载均衡和资源组管理的。如果都混布的话可以在3台物理机/虚拟机搞定。 可以无感扩容,mo是存算分离的,存储的扩容就是s3的扩容。计算的扩容就是cn,本身基于k8s,cn无状态,而且是容器,这个可以非常快的一下子扩很多个出来。

8)高可用架构要怎么搞?

Mo的单机版目前还没有高可用架构,目前主从版的高可用架构还在设计中。分布式版本来就是高可用的,k8s和s3本来就都是高可用架构。mo的节点里cn和dn都是无状态的,挂了可以随时拉起,log service有状态,它的3节点是提供一个raft group的分布式架构,挂1个没关系,继续运行,挂2个系统才会不可用。

9)红帽系的,比如CentOS 7下可以正常使用吗? 是可以使用的,MatrixOne对操作系统的要求不严格,但CentOS 7在明年6月底就停止维护了,推荐大家使用更新版本的操作系统。

10)现在MO发稳定版了吗?推荐使用哪个版本? 1.0 Release版本很快会和大家见面,本周刚刚发布了1.0 RC2版本,在稳定性上我们做了大量的优化工作,已经可以用于生产业务,欢迎大家试用反馈。

11)helm安装operator,怎么样看是否安装成功了? 使用 helm list -A 就可以查看。

12)安装最新的operator,一直有一个叫job-bucket的pod起不来,请问应该怎么排查? 可以看看是否没有secret。可能是没有配置minio连接信息导致没办法连接minio。

-------------------------------------------------------------- 西安天能整理问题在上方,下面是用户提出问题 -------------------------------------------------------------------------------------------------------------------—-

13)生产环境只能k8s模式部署吗?这部署步骤多依赖组件多有点复杂,估计很多第一步部署就会卡住了

14)支持阿里云上ecs服务器的分布式部署吗?

15)想问下如果用azure部署,会出现什么问题呢

16)MatrixOne 支不支持 Geometry?用于车联网场景

第二期: 1、MySQL中的表引擎能直接迁移吗?MO兼容InnoDB这些? MatrixOne不支持MySQL的InnoDB,MyISAM等引擎,但可以直接使用MySQL的语句在,MO会忽略这些引擎,在MatrixOne中仅有TAE一种存储引擎,它是完全独立研发的,可以友好的适用于各类场景,无需使用ENGINE=XXX来更换引擎。

2、支不支持物化视图? MatrixOne目前不支持物化视图,在目前的AP性能支撑下,直接进行分析也可以获得较高的分析体验。物化视图功能也已经在MatrixOne的Roadmap中,如果您对物化视图有刚性较高的需求,欢迎给我们提Issue来描述您的场景:https://github.com/matrixorigin/matrixone/issues

3、多租户之间是如何实现资源隔离的? MatrixOne的资源隔离核心是ACCOUNT可以对应到CN Set的资源组上,或者可以认为租户的隔离就是CN的容器隔离。除了多租户可以分配不同资源组以外,单个租户内部也可以根据业务类型进一步分配CN资源组,进行更细粒度的控制。关于资源隔离的完整描述,您可以参考:https://docs.matrixorigin.cn/1.0.0-rc2/MatrixOne/Deploy/mgmt-cn-group-using-proxy/#_2

4、MO的权限也是基于RBAC模型设计的吗?可不可以将权限直接授予到用户? MatrixOne的权限管理是结合了基于角色的访问控制(RBAC,Role-based access control)和自主访问控制(DAC,Discretionary access control)两种安全模型设计和实现的,不支持将权限直接授予用户,需要通过角色进行授权。

5、普通用户能授予MOADMIN角色吗? 不可以的,MOADMIN为最高的集群管理员权限,只有root用户拥有。

6、MO对标识符大小写敏感不? MatrixOne默认对标识符大小写不敏感,并支持通过lower_case_table_names参数来进行大小写敏感的支持,对于参数的详细介绍您可以参考:https://docs.matrixorigin.cn/1.0.0-rc2/MatrixOne/Reference/Variable/system-variables/lower_case_tables_name/

7、怎么查看临时表?show tables看不到,怎么知道是不是创建了?? 目前可以通过"show create table 临时表名"来查看,由于临时表在创建后只在当前会话可见,在当前会话结束时,数据库自动删除临时表并释放所有空间,在它的生命周期内我们通常是可以人为感知的。

8、目前连接MO支持哪些编程语言? Java、Python、Golang语言连接器和ORM都是支持,其他语言也可以将MO当作MySQL来进行连接。

第三期: 1、请问我想通过mo-dump工具只导出表结构,而不要数据,怎么导呢? 答:可以在导出命令后跟-no-data参数,指定不导出数据 2、使用load data导入的json 对象中缺少某些字段,导入会报错吗? 答:导入会报错,导入json中字段多余表中字段,可以正常导入不过多出字段会被忽略,如果少于的话,则无法导入。 3、我在执行source导入的时候导入文件是否可以写相对路径? 答:可以写相对路径,是相对于您使用mysql客户端的当前路径的,这里还是建议写全路径,防止出错,另外注意文件权限问题。 4、使用load data命令导入一个大文件时比较耗时,有时候就会断掉又得重新来一遍,能否优化呢? 答:您可以在导入时候指定PARALLEL为true开启并行导入,例如,对于 2 个 G 的大文件,使用两个线程去进行加载,第 2 个线程先拆分定位到 1G 的位置,然后一直往后读取并进行加载。这样就可以做到两个线程同时读取大文件,每个线程读取 1G 的数据。也可以自己切分数据文件。 5、load data导入有事务吗? 答:所有的load语句都是有事务的。 6、source导入sql时涉及触发器和存储过程会执行生效吗? 答:目前如果sql中存在不兼容的数据类型、触发器、函数或存储过程,仍需要手动修改否则执行会报错。 7、mo-dump支持批量导出多个数据库吗? 答:仅支持导出单个数据库的备份,如果你有多个数据库需要备份,需要手动运行 mo-dump 多次。 8、matrixone支持从Minio导入数据吗? 是支持的,load data 命令支持从本地文件、S3 对象存储服务以及S3 兼容的对象存储服务中导入数据到matrixone中, 而Minio也是基于S3协议的,所以也是支持的,具体参考文档:https://docs.matrixorigin.cn/1.0.0/MatrixOne/Deploy/import-data-from-minio-to-mo/ 9、matrixone 导入导出数据时,如果出现编码问题,导致数据乱码,我们一般是怎么解决的? 由于matrixone默认只支持UTF8这一种编码且无法更改;所以在导入数据时如果出现了乱码,我们就不能通过修改数据库和表的字符集来解决,可以试着转换数据编码为UTF8。常见的转换工具有 iconv 和 recode,比如:将 GBK 编码的数据转换为 UTF-8 编码:iconv -f GBK -t UTF8 t1.sql > t1_utf8.sql。 10、matrixone导入导出时 ,需要哪些权限? 租户管理员的话,通过默认角色可以直接进行导入、导出操作。普通用户的话,导入时,需要导入表的'insert'权限;select...into outfile方式导出时,需要导出表的'select'权限; mo-dump导出时,需要所有表(table .)的'select'权限和所有库(database .)的'show tables'权限。

第四期: 1.二进制包安装可以通过mo_ctl管理吗? 答:通过设置MO_PATH配置二进制包的路径,就可以使用mo_ctl进行管理了。 2.当前非k8s版本是否支持主从配置? 答:当前还不支持,后续会支持。 3.operator的版本在部署的是否有要求? 答:operator是用来管理matrixOne集群的,所以operator版本尽量与集群的版本保持一致,比如我们安装了1.0.0-rc2这个版本的集群,对应提前安装的operator版本也应该为1.0.0-rc2 4.helm方式部署的operator如何进行卸载? 答:通过helm uninstall命令指定名称和命名空间进行卸载。 5.请问0.7版本能否升级到最新的1.0版本? 答:当0.7版本无法直接升级至1.0,建议备份数据,进行重装后导入。 6.mo_ctl工具是否支持源码部署升级? 答:通过upgrade命令可以指定对应的版本或者commitid进行细粒度升级,需要注意的设置当前版本MO_PATH,以及编译环境。 7.k8s集群节点当前dn(也叫tn)节点是否支持扩容? 答:当前dn节点还不支持扩容 8.mo_ctl工具是否支持部署matrixOne集群 答:当前还不支持,后续考虑加入集群部署和管理。

dengn commented 6 months ago

verified.