【问题标题】:AWS S3 w/ tags, DynamoDB, Redshift?带标签的 AWS S3、DynamoDB、Redshift?
【发布时间】:2018-01-08 20:30:17
【问题描述】:

我正在比较具有某些“属性”要查询的大量文件的云存储。现在它大约有 2.5TB 的文件并且增长很快。我需要高吞吐量的写入和查询。我将首先编写要存储的文件和属性,然后查询汇总属性(计数等),另外查询属性以提取一小组文件(按日期、名称等)。

我已将 Google Cloud Datastore 作为 noSQL 选项进行了探索,但试图将其与 AWS 服务进行比较。

一种选择是使用“标签”将文件存储在 S3 中。我相信您可以使用 REST API 查询这些,但要考虑性能。我也看到了连接 Athena 的建议,但不确定这是否会引入标签和正确的用例。

另一种选择是使用 Dynamo 之类的东西,或者可能是大型 RDS? Redshift 说它是针对 PB 规模的,而我们还没有做到这一点......

对最佳 AWS 存储解决方案的想法?定价是一个考虑因素,但更关注未来的最佳解决方案。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-dynamodb amazon-redshift


    【解决方案1】:

    您不想将文件本身存储在 RDS 或 Redshift 等数据库中。您绝对应该将文件存储在 S3 中,但您可能应该将元数据存储或复制到更可索引和可​​搜索的位置。

    我建议在 S3 中设置一个新的对象触发器,每当有新文件上传到 S3 时,它就会触发一个 Lambda 函数。 Lambda 函数可以获取文件位置、大小、任何标签等,并将该元数据插入 Redshift、DynamoDB、Elastic Search 或 Aurora 等 RDS 数据库,然后您可以在其中针对该元数据执行查询。除非您在谈论数百万个文件,否则元数据将相当小,您可能不需要 Redshift 的规模。您选择用于存储元数据的确切数据库将取决于您的用例,例如您要执行的特定查询。

    【讨论】:

    • 谢谢@mark-b。我在当前使用文件系统和带有索引的 mysql 的解决方案中考虑了这种 ETL 方法。我想这就是我喜欢 Google 的一站式云数据存储的原因 :) 我猜 AWS 不匹配 Google 的存储与搜索层?
    • 您具体指的是什么 Google 服务?这? cloud.google.com/datastore 我相信这可以直接与 DynamoDB 相媲美。您也不想将原始文件存储在该 Google 服务中。在 google 上,您可能希望使用它来存储实际文件:cloud.google.com/storage,这将与 Amazon 的 S3 进行比较。
    猜你喜欢
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2020-06-19
    • 1970-01-01
    • 2014-01-25
    相关资源
    最近更新 更多