我需要创建大数据应用程序,能够在整个多年的时间内每天存储50多万条记录,将这些数据存储在SQL Server的规范化表中。分区是这个问题中未讨论的另一个问题,虽然我使用Express(实际上是Stardard)版本并且无法使用分区,所以在这方面的任何答案也将受到赞赏。
我有一个域模型,其中所有聚合都具有GUID标识。我还有数据采集模块(显然)使用BIGINT写入数据库。所以我有主键和将表中的索引聚类为BIGINT,将域标识聚类为具有唯一索引的GUID列。
这导致了许多连接(包括在LINQ中),这些连接是为了更新,持久化或重构域对象所必需的,因为我需要找到所有需要的实体' GUID列值的主键。
这是一种有效的方法,我只需要编写很多难以理解和维护的基础设施代码吗? (DDD在复杂性方面没有帮助......)或者我可以将GUID作为主键并使用具有代理BIGINT ID的单独表来将数据绑定到域实体吗?