我刚刚获得了新任务的要求。
有一项服务可以从另一个系统(SQL服务器)更新一个系统(来自CSV文件)的数据:该任务要求我存储我们复制的每个记录的序列化版本,并带有校验和和时间戳。不会有更新,只会根据时间戳和校验和进行插入和检索。根据序列化的内容,也可以有SELECTS。我们要存储的最大数据量是N * 1m;我几乎没有在系统中看到超过几百万行。我发现在接下来的3年中,它每天最多可以从几百行增加到几千行,然后系统将被解雇。
我的团队是MS SQL SERVER的专家,但我想知道是否有更好的引擎(Kafka,Cassandra等)来支持这种情况。有什么建议/想法吗?为我们团队的教学/推广工作辩护的好处是什么?另请注意,我们主要使用C#,因此与其进行交互的简便方法应该是有利的。
我不是DBA所以我可能会忽略一些细节。如果只是让我知道,我会澄清。 谢谢
答案 0 :(得分:1)
实际上,任何关系数据库都可以完成这项任务。对功能和指示大小的要求都在当今可用的关系数据库的能力范围内。既然你提到了一个具有SQL Server专业知识的商店,我建议坚持你所知道的。虽然尝试新技术总是很有趣,但如果你偏离了你所知道的,你就会依赖于不属于你店铺专业知识的技术。
另一方面,如果您的商店愿意并且能够将开源作为您的技术曲目的永久部分(一个好主意,顺便说一句),那么只有这样才能引入您的技术才是合理的。 ;目前不熟悉,如MySQL或其中一个NoSQL数据库。
答案 1 :(得分:1)
您的主要用例非常适合关系数据库,因为您拥有SQL Server体验,这似乎是一个明显的选择。根据您告诉我们的内容,搜索新的数据库产品没有任何明显的好处。
由于您提到的小尺寸,您甚至可以使用SQL Server Express(免费版本,每个数据库高达10GB),并且可以省去许可费用。有一些功能上的差异,但从你所说的内容来看,它是否适用于这种快速,一次性用例的完美之处。
由于它没有超长的寿命,这使得免费版本更具吸引力。再说一次,期望某些东西按时退役是危险的......:)