请问一下我业务系统不用mysql,直接用hologres这样行吗?
有没有其他坑,比如主键自增这种?
Hologres是阿里云自研的交互式分析服务,它能够充分满足多种场景中的数据存储方式,包括Point Query(Hbase场景)、Ad-hoc Query(Durid场景)和OLAP Query(Impala场景)等。它的设计理念以实时分析为中心,具有优秀的性能,可以支持压秒级的数据实时分析。
确实,您可以不使用MySQL而直接使用Hologres作为业务系统的主要数据库。但是要注意,Hologres与MySQL在处理机制上存在一些区别:例如,Hologres默认采用列存+KeyValue行存的方式,这与MySQL的行存储方式不同;同时,Hologres使用的优化器可以将用户执行的SQL高效的运行在计算引擎上。
此外,Hologres底层采用了postgreSQL引擎,因此在语法、问题解决方案上有很多互通之处。然而,由于Hologres是分布式系统,高并发的混合工作负载可能会给系统带来一定的挑战。因此,当您选择使用Hologres时,需要针对您的业务需求做出合理的规划和设计。
如果您业务系统不用 MySQL,直接用 Hologres 是可行的。Hologres 支持多种数据源,包括但不限于 MySQL、PostgreSQL、Oracle、SQL Server 等。Hologres 还支持丰富的 SQL 语法,可以满足大部分 SQL 查询需求。
关于主键自增的问题,Hologres 支持主键自增。您可以在创建表时设置主键为自动增长,Hologres 会自动为每一行记录生成唯一的主键。但是,需要注意的是,由于 Hologres 支持分布式存储,因此主键自增可能无法保证在不同节点之间的一致性。因此,在使用主键自增时,需要特别注意业务逻辑,以确保数据的一致性。
如果支持在线业务 建议首先设计好高可靠的架构 从而支持多负载的隔离。在Holo里 用户的Query可以使用很多资源,访问很多数据,而业务系统需要的都是小query,避免干扰。采用主从架构 或者计算组架构 有隔离之后 是可以支持业务系统的,此回答整理自钉群“实时数仓Hologres交流群”
Hologres是一种实时数据仓库服务,支持标准的SQL语法,兼容PostgreSQL,支持多种异构数据源的实时、离线写入,包括MySQL、Datahub等。Hologres还提供了向量数据库的功能,可以进行高效的向量搜索。
如果业务系统不需要MySQL的一些特性,比如事务、外键、触发器等,那么可以直接使用Hologres作为数据存储和分析平台。Hologres可以提供秒级交互式查询体验,高并发和低延迟的在线数据服务,以及流批一体的实时数仓解决方案。
关于主键自增的问题,Hologres目前还不支持PostgreSQL中的SERIAL类型,所以不能直接使用SERIAL来创建自增主键。不过,可以使用PostgreSQL中的另一种方法来实现自增主键,就是创建一个序列,并将主键字段的默认值设置为序列的下一个值。例如:
-- 创建一个序列
CREATE SEQUENCE test_id_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1;
-- 创建一个表,并将id字段的默认值设置为序列的下一个值
CREATE TABLE test(
id INT PRIMARY KEY DEFAULT nextval('test_id_seq'),
age INT
);
-- 插入数据时,id字段会自动填充为序列的下一个值
INSERT INTO test(age) VALUES(12);
所以如果你的业务系统是实时分析系统也就是OLAP那完全可以使用hologres,但是如果业务系统还是以增删改为主的OLTP系统那还是要用mysql
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975