Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在AWS中存储非常大的字符串数组_Amazon Web Services - Fatal编程技术网

Amazon web services 在AWS中存储非常大的字符串数组

Amazon web services 在AWS中存储非常大的字符串数组,amazon-web-services,Amazon Web Services,我想在AWS中存储大量字符串,以便从应用程序中使用。要求如下: 在正常操作期间,字符串元素将添加到数组中,并且数组大小将继续增长 我需要强制执行唯一性-即同一字符串不能存储两次 我必须周期性地检索整个数组——很可能是将它放在一个文件中并从应用程序中使用它 我需要备份数据(或者至少确信有一个良好的内置备份系统作为功能的一部分) 我看了以下几点: RDS(MySQL)-这可能有些过分,而且对于一个表(数百万条记录)来说可能会变得非常大 DynamoDB-这是针对键/值对的,但我每个记录只有一个值。而

我想在AWS中存储大量字符串,以便从应用程序中使用。要求如下:

  • 在正常操作期间,字符串元素将添加到数组中,并且数组大小将继续增长
  • 我需要强制执行唯一性-即同一字符串不能存储两次
  • 我必须周期性地检索整个数组——很可能是将它放在一个文件中并从应用程序中使用它
  • 我需要备份数据(或者至少确信有一个良好的内置备份系统作为功能的一部分)
  • 我看了以下几点:

  • RDS(MySQL)-这可能有些过分,而且对于一个表(数百万条记录)来说可能会变得非常大
  • DynamoDB-这是针对键/值对的,但我每个记录只有一个值。而且,更重要的是,在DynamoDB中检索大量记录似乎是一个问题,因为扫描操作需要分页,而且在容量单位等方面也可能很昂贵
  • 单个S3文件—这可能是一个实用的解决方案,但我可能需要同时写入文件(追加),而这不是S3中可用的功能。而且,很难强制元素的唯一性
  • DocumentDB-这似乎太昂贵,而且对于这个目的来说太过苛刻
  • ElastiCache-我没有很多这方面的经验,我想知道它是否适合我的要求,以及定期备份是否可行。这也使用键/值对,不建议同时读取数百万条记录(整个数据)
  • 任何见解或建议都会有所帮助

    更新:


    我不知道为什么人们会投票来结束这一切。这绝对是一个与编程相关的问题,我已经得到了非常有用的答案和评论,这些答案和评论将帮助我,希望将来也能帮助其他人。为什么会有这样一种痴迷,固执己见地关闭这么多有用的帖子

    DynamoDB可能很适合

    你的“钥匙”没有任何“价值”并不重要。只需使用字符串作为主键。这也将加强独特性

    你可以得到更多的数据和备份。我没有这些方面的经验,所以我只能向您指出文档


    数据的完整检索可能是最大的麻烦。不建议使用DynamoDB进行全表扫描;它可能会很贵。有一种方法可以使用数据管道(我也没有使用它)。或者,您可以利用DynamoDB自己组装一个系统,例如,您可以将流推到Kinesis,然后推到S3。

    Amazon ElastiCache可能会有所帮助@谢谢!我正在编辑我的问题,并在您回答的同一类型中添加:)定义“大数组”(有多少项)?如果您没有进入字符串的键,您如何访问它们(始终作为数组)?@jarmod它每年将增长约100万项。我将始终访问整个阵列,以便在后端类型的应用程序中使用,每天进行几次计算。我喜欢streams的想法。他可以根据表中的新插入创建S3文件,这将减少对完整表扫描的需要。不断地重新创建文件可能会很昂贵,但这可能会被调整,或者可能会在几个文件之间进行切分。谢谢!那么“值”将是空字符串?或者你能只储存钥匙吗?如果您不介意的话,还有一个简单的问题:数据管道或流解决方案是否适合应用程序按需使用,还是用于定时备份类型?是的,您可以只存储键(这只是一个“键”,因为您在创建表时会告诉DynamoDB这一点)。您认为定时备份和按需备份有什么区别?根据我的理解,在任何情况下,都是数据管道导出的更好用例。流是连续的-每次向表中添加一个新项时,它也会被放入流中,因此您必须不断地对其作出反应(流有一个24小时的窗口,之后它们会将数据放入其中)。