2013-02-19 49 views
0

我正在看一个涉及管理数以亿计的字符串(varchar(100))和一些相关数据(几个整数,一些浮点数等)的项目。 。项目所有者已经强制要求在亚马逊云中执行此操作。你会建议什么技术来管理数以亿计的字符串

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

为SQL Server DBA我的第一直觉就是把它变成一个EC2实例运行SQL Server,但是我希望能够提出其他选项(RDS,MySQL和非RDBMS等)

有什么建议吗?过去为你工作的是什么?

+1

凉亭? http://en.wikipedia.org/wiki/Biggest_ball_of_twine :) – 2013-02-19 14:12:36

+0

您需要提供更多关于访问模式的信息,如何存储/检索数据(即键值,数据树等)和吞吐量要求更好地了解什么可能是最合适的解决方案。 – 2013-02-19 18:59:13

回答

1

在亚马逊的云,你有以下几种选择:

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

  • Redshift - 针对标准SQL客户端(PostgreSQL驱动程序)的大规模数据仓库。它也可以支持柱状结构中几乎无限数量的行。你可以在上面运行你最喜欢的报告。

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

  • RDS - 关系数据库服务,支持MySQL,Oracle和MS-SQL引擎。这与在标准EC2实例上运行这些数据库类似,但使用一些DBA任务(备份,恢复,缩放...)更容易。在任何实例类型(包括具有大量内存和磁盘的健壮计算机)上放置您最喜欢的NoSQL(MongoDB,Redis,Couchbase ...)或RDBMS(PostgreSQL,MySQL ...)。

+0

谢谢盖伊。自从我发布这个问题以来,我一直在继续研究。我们将使用EC2,DynamoDB和CloudSearch的混合。 – datagod 2013-02-22 02:37:02

1

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

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

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

相关问题