对于中等数据项目,我需要选择哪个分布式数据库 [英] Which distributed database I need to choose for medium data project

查看:76
本文介绍了对于中等数据项目,我需要选择哪个分布式数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我们有了一个带有Spring Data JPA(Hibernate)的Spring Boot 2上的带有PostgreSQL数据库的Java项目.

Now we have java project with PostgreSQL database on spring boot 2 with Spring Data JPA (Hibernate).

对新体系结构的要求: 在N台计算机上,我们有工作场所.每个工作场所使用具有不同配置的同一程序(用于重新分发数据库的已配置客户端). 电脑数量不多-数量为10/20台电脑.数据库必须具有可伸缩性(可以将大量数据存储在约1/2 Tb的磁盘上). 每天,一个工作场所最多可将一百万行插入数据库. 每个工作场所都使用重新分配的数据库-这意味着每个节点必须能够读取/写入彼此修改的数据.并根据数据做出决策,并在运行时由另一个工作场所修改(Transactional). 数据存储(磁盘数据库存档)必须能够存档并复制为备份快照. 必须使用Spring Data JPA 2将项目移植到新架构,并使用liquibase移植数据库.在Windows/Linux上运行.

Requirements to new architecture: On N computers we have workplace. Each workplace use the same program with different configuration (configured client for redistributed database). Computers count is not big - amount 10/20 PCs. Database must be scalable (a lot of data can be stored at the disk ~1/2 Tb). Every day up to 1 million rows can be inserted into database from one workplace. Each workplace works with redistributed database - it means, that each node must be able to read/write data, modified by each other. And make some decision based on data, modified by another workplace at runtime(Transactional). Datastore(disk database archive) must be able to archived and copied as backup snapshot. Project must be portable to new architecture with Spring Data JPA 2 and database backups with liquibase. Works on windows/ Linux.

快速概述告诉我,目前最受欢迎的重新分发的FREE数据库是: 1)Redis 2)Apache Ignite 3)Hazelcast

The quick overview shows me that the most popular redistributed FREE database at now are: 1) Redis 2) Apache Ignite 3) Hazelcast

在理解架构师描述的系统的方式上,我需要帮助. 首先,我尝试使用redis和ignit. Redis易于启动-但它的工作方式类似于简单的IMDG(在内存数据网格中).但是我需要将所有数据存储在持久性数据库中(在磁盘上,例如点燃持久性).有没有办法在现有的PostgreSQL数据库中使用redis? Postgres与所有节点同步,Redis在内存缓存中使用每个工作场所生成的新数据.每10分钟刷新一次磁盘数据. 1)这可能吗?怎么样?

I need help in understanding way to architect described system. First of all, I'm tried to use redis and ignite. Redis start easily - but it works like simple IMDG(in memory data grid). But I need to store all the data in persistent database(at disk, like ignite persistence). There is a way to use redis with existing PostgreSQL database? Postgres synchronized with all nodes and Redis use in memory cache with fresh data, produced by each workplace. Each 10 minutes data flushed at disk. 1) This is possible? How?

我也尝试使用Ignite-但我的项目在spring boot 2上运行.Spring data2.而Ignite的最新发行版本是2.6,而spring data 2支持仅在apache ignite 2.7中出现! 2)我必须每晚下载2.7版本,但是如何在我的项目中使用它? (需要安装到本地Maven存储库吗?)

Also I'm tried to use Ignite - but my project works on spring boot 2. Spring data 2. And Ignite last released version is 2.6 and spring data 2 support will appears only in apache ignite 2.7! 2) I have to download 2.7 version nightly build, but how can I use it in my project? (need to install to local Maven repository?)

3)毕竟,在那种情况下最好的架构是什么?数据存储提供程序将持久性数据存储在磁盘上,并与每个工作区同步,并通过超时将内存中的数据持久化到磁盘吗? 最佳解决方案是什么?我应该选择哪个数据库? (可能对现有的PostgreSQL有用吗?)

3) And after all, what will be the best architecture in that case? Datastore provider stores persistent data at disk, synchronized with each workspace In-memory cache and persist in-memory data to disk by timeout? What will be the best solution and which database I should to choose? (may be something works with existing PostgreSQL?)

Thx)

推荐答案

Ignite不适合该选项,因为JPA 1仅支持. Redis不支持SQL查询. 我们的选择是带有从属复制的普通PostgreSQL主数据库.可能是cockroachDB也适用. 感谢帮助))

Ignite is not suitable for that options, because JPA 1 supports only. Redis isn't supports SQL queries. Our choiсe is plain PostgreSQL master with slave replication. May be cockroachDB applies also. Thx for help))

这篇关于对于中等数据项目,我需要选择哪个分布式数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆