【问题标题】:Move SQL Server project to big data?将 SQL Server 项目迁移到大数据?
【发布时间】:2013-06-28 14:38:23
【问题描述】:

我不确定 StackExchange 板发布此问题是否正确,但我会试一试。

我们的 ASP.NET 应用程序中有一个相当广泛的 SQL Server 后端。它包括复杂的表结构、多个视图、存储过程和函数。目前我们在内部 SQL Server 2005/2008 机器上运行它。它已经投入生产多年并且运行良好。

但最近我们有大量数据添加到系统中,而庞大的数据量开始拖慢系统速度。存储过程需要更多的时间来处理数据(我们尽可能优化它们,向表中添加所有必要的索引等)

一个建议是将项目转移到“大数据”服务。可行吗?这可以用现有的 SQL Server 项目完成吗?涉及什么?现有的代码/结构会起作用还是需要进行重大的重新设计?谁将是此类举措的最佳供应商——谷歌、微软、亚马逊?

谢谢!

【问题讨论】:

  • 迁移到大数据平台并不像将 SQL Server 项目迁移到另一个平台那么容易。如果您想横向扩展 SQL Server,那么 Amazon、MS 或其他公司可以提供帮助。您使用的是什么类型的数据?
  • 数据多种多样,有数字、文本、blob。最大的表有少量的列,混合 INT 和 NVARCHAR 数据,但有数百万行
  • 在我看来,这将是一次重大的重新设计。您正在研究不同的结构和不同的数据存储方式。这是什么类型的应用程序?
  • 这是一个 ASP.NET 应用程序。以网格、仪表板、图表等形式呈现给用户的数据。在幕后 SQL Server 运行 SP,使用视图等。

标签: sql-server bigdata


【解决方案1】:

我认为您在尝试从 SQL Server 迁移到大数据服务时将面临的第一个区别是数据的结构。

诸如图形数据库 (Neo4j)、批处理 (Hadoop)、文档数据库 (Mongo) 之类的东西……它们都有非常不同的数据模型。

大的转变通常是从规范化数据到非规范化数据。这可能会非常痛苦并且需要大量工作。例如,您必须想办法将 4-5 个表格合并到一个文档中。

如果您想真正向前迁移整个数据库,我会执行以下操作:

  1. 研究要移动到的数据模型。也许像 MySQL 这样的东西会以比 SQL Server 更便宜的方式横向扩展?也许文档数据库会使开发更容易?

  2. 一旦您了解了新模型,就可以在该领域尝试不同的技术。这么多大数据数据库都很年轻,我建议找一个有良好社区的数据库(比如 Mongo)。

  3. 逐表检查并决定如何在新系统/数据库中对其建模。

  4. 找到一种方法,在新数据库中用等效的想法替换存储过程、视图、函数。这可能非常困难,因为这些东西在很多大数据数据库中都不存在。您最终会将很多功能推送到应用程序层。 (除非你使用 MySQL)。

我可能会推荐的是坚持使用 SQL Server。一些有助于减轻 SQL Server 负担的想法:

  1. 找到导致最痛苦的数据子集。将其移至大数据系统。

  2. 在应用层引入缓存(如果您还没有)。帮助缓解阅读压力。

  3. 碎片。您始终可以对 SQL Server 进行分片,这将有助于缓解读取问题/性能。

  4. 编写作业以归档未使用的旧数据。将该数据移动到另一个“离线”的 SQL Server 实例。

【讨论】:

    猜你喜欢
    • 2013-02-08
    • 2010-12-28
    • 2011-07-02
    • 1970-01-01
    • 2013-09-25
    • 2012-05-14
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多