【问题标题】:What technology would you suggest to manage hundreds of millions of strings您建议使用什么技术来管理数亿个字符串
【发布时间】:2013-02-04 05:43:13
【问题描述】:

我正在研究一个涉及管理数亿个字符串 (varchar(100)) 和一些相关数据(一些整数、一些浮点数等)的项目。项目所有者已要求在 Amazon 云中执行此操作。

这些字符串将通过批处理作业不断更新(每天大约 1%)。每天都会针对这些数据生成几份关键报告。

作为 SQL Server DBA,我的第一反应是将其放入运行 SQL Server 的 EC2 实例中,但我希望能够提供其他选项(RDS、MySQL、非 RDBMS 等)

有什么建议吗?过去对你有用的是什么?

【问题讨论】:

  • 您需要提供有关访问模式、数据如何存储/检索(即键值、数据树等)以及吞吐量要求的更多信息,以便更好地了解什么可能是最合适的解决方案。

标签: sql-server amazon-web-services amazon-ec2 rds


【解决方案1】:

在 Amazon Cloud 中,您有以下选项:

  • DynamoDB - KeyValue NoSQL 高度可扩展的数据库。您可以使用它存储几乎无限数量的密钥。它的两个用例是进行键查找和键+范围扫描。对它不推荐的报告进行更复杂的查询。

  • Redshift - 针对标准 SQL 客户端(PostgreSQL 驱动程序)的大规模数据仓库。它还可以支持几乎无限数量的列式结构中的行。您可以在其上运行所有您喜欢的报告。

  • CloudSearch - 非常可扩展的搜索索引器,能够使用属性创建构面(每个范围中有多少项)。取决于您的数据结构和查询类型,它可能很有用。

  • RDS - 关系数据库服务,支持 MySQL、Oracle 和 MS-SQL 引擎。这类似于在标准 EC2 实例上运行这些数据库,但更容易完成一些 DBA 任务(备份、恢复、扩展......)。

  • EC2 - 将您最喜欢的 NoSQL(MongoDB、Redis、Couchbase...)或 RDBMS(PostgreSQL、MySQL...)放在任何实例类型上,包括拥有大量内存和磁盘的强大机器。

【讨论】:

  • 谢谢你。自从我发布了这个问题,我继续我的研究。我们将混合使用 EC2、DynamoDB 和 CloudSearch。
【解决方案2】:

这可能归结为您想用它做什么。 RDS 只不过是托管的 SQL Server、Oracle 或 Mysql。但是,对于支持哪些功能存在一些限制。

您可能会从 NoSQL 系统中获得一些好处,与其说是主存储位置,不如说是您可以存储准备好的报告数据的地方。

您可能会发现 EMR 可用于处理用于报告的数据。

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 1970-01-01
    • 2010-09-13
    • 2011-01-03
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多