gpt4 book ai didi

c# - 存储大量分析数据

转载 作者:太空狗 更新时间:2023-10-30 01:05:14 25 4
gpt4 key购买 nike

我通常将 SQL Server 和 C# 用于我所做的所有项目,但是我正在寻找一个可能跨越数十亿行数据的项目,我觉得在 SQL Server 中这样做不太舒服。

我要存储的数据是

  • 日期时间
  • ip地址
  • 链接编号
  • 可能是其他字符串相关数据

我以前只处理过关系数据库,因此正在寻找一些关于哪种数据库技术最适合这种类型的数据存储的指导。一种可以扩展并以低成本实现的方法(与分片 SQL Server 相比)

然后我需要根据 linkId 提取这些数据。

此外,我是否能够在对数据库的查询中进行排序,还是最好在应用程序中完成?

编辑:它将基于云。因此,我查看了我广泛使用的 SQL Azure,但随着行数的增加,它才开始引起问题。

最佳答案

由于您正在寻找一般性指导,我觉得提供您过早拒绝的答案是可以的 ;-)。 Microsoft SQL Server 绝对可以处理这种情况(在具有这些字段和数十亿行的表的一般意义上)。我个人曾在一个有 4 个节点的数据仓库上工作,每个节点都有包含 12 到 15 亿行(并且还在增长)的主要事实表,并且能够足够快地响应查询,尽管数据模型和索引的某些方面可能有做得更好。它是一个基于 Web 的应用程序,许多用户整天都在使用它(尽管一天中的某些时段比其他时段更难)。此外,该事实表比您描述的表要宽得多,除非“可能与其他字符串相关的数据”相当大(但也有一些方法可以对其进行正确建模)。诚然,免费的 Express 版可能无法满足您的需求,但 Standard Edition 可能会,而且价格也不贵。 Enterprise 有一个很好的在线索引重建功能,但仅凭这一点可能不足以保证许可费用大幅上涨。

请记住,由于很少或根本没有描述您实际尝试使用这些数据完成的任务,因此我很难说 MS SQL Server 一定会满足您的需求。但是,鉴于您似乎已经完全根据可能获得的大量行排除了它,我至少可以说这种情况:通过良好的数据建模、良好的索引设计和定期的索引维护,MS SQL Server 绝对可以处理数十亿行。现在,它是否是您项目的最佳选择取决于您尝试做什么、客户愿意维护什么等等。

祝你好运:)

编辑:

  • 当我(在上文)说查询返回“足够快”时,我表示 1 到 90 秒之间的任何时间,具体取决于各种因素。请记住,这些不是简单的查询,在我看来,可以对数据建模和索引进行多项改进策略。
  • 我故意遗漏了表分区功能,不仅因为它只有企业版,也因为它更多经常被误解并因此被误用而不是被理解和使用适本地。 SQL Server 中的表/索引分区不是“分片”。
  • 我也没有提到列存储索引,因为它们只是在企业版中可用。但是,对于足够大的项目为了证明成本合理,列存储索引当然值得调查。它们在 SQL Server 2012 中引入并随附Column 一次不能更新表的限制商店索引已创建。您可以在一定程度上解决这个问题,使用表分区,但在 SQL Server 2014 中,该限制将是删除。

关于c# - 存储大量分析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19750068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com