你会建议用什么技术来管理数以亿计的字符串

时间:2013-02-19 13:55:45

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

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

这些字符串将通过批处理作业连续更新(每天约1%)。每天都会针对这些数据运行几个关键报告。

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

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

2 个答案:

答案 0 :(得分:1)

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

您可能会从NoSQL系统中获得一些好处,而不是主存储位置,但您可以在某处存储准备好的报告数据。

您可能会发现EMR用于操纵数据以用于报告。

答案 1 :(得分: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 ......)放在任何实例类型上,包括具有大量内存和磁盘的强大机器。