AWS DynamoDB中的扫描与并行扫描?

时间:2016-12-21 17:37:28

标签: amazon-web-services amazon-dynamodb

在云存储系统中,AWS需求量很大。扫描过程需要更快。那么在哪种情况下扫描过程如何工作以及哪一个(扫描/并行扫描)更好?

  1. 如何在AWS DynamoDB中进行扫描?
  2. 并行扫描如何在AWS DynamoDB中运行?
  3. AWS DyanmoDB中的扫描与并行扫描?
  4. 何时首选并行扫描?
  5. 是否在扫描前应用过滤器表达式?

1 个答案:

答案 0 :(得分:5)

  

<强> 1。扫描如何在AWS DynamoDB中运行?

<强>答:

i)扫描操作返回一个或多个项目。

ii)默认情况下,扫描操作按顺序进行。

iii)默认情况下,扫描在访问表格中的数据时最终使用一致的读取。

iv)如果扫描的项目总数超过最大数据集大小限制1 MB,扫描将停止,结果将作为LastEvaluatedKey值返回给用户,以便在后续操作中继续扫描。

v)默认情况下,扫描操作最终执行一致的读取,并且最多可以返回1 MB(一页)的数据。因此,单个扫描请求可以使用

(1 MB page size / 4 KB item size) / 2 (eventually consistent reads) = 128 read operations.
  

<强> 2。并行扫描如何在AWS DynamoDB中运行?

<强>答:

i)为了在大型表或二级索引上实现更快的性能,应用程序可以请求并行扫描操作。

ii)您可以并行运行多个工作线程或进程。每个工作人员将能够与其他工作人员一致地扫描表格的单独部分。 DynamoDB的扫描功能现在接受另外两个参数:

  • TotalSegments 表示将同时访问该表的工作人员数。
  • 表示调用工作人员要访问的表的段。

iii)这两个参数在一起使用时,会将扫描限制在表格中的特定项目块中。您还可以使用现有的Limit参数来控制单个扫描请求返回的数据量。

  

第3。 AWS DyanmoDB中的扫描与并行扫描?

<强>答:

i)扫描操作一次只能读取一个分区。因此,需要进行并行扫描,以便一次更快地读取多个分区。

ii)顺序扫描可能无法始终充分利用预配置的读取吞吐量容量。因此需要进行并行扫描。

iii)并行扫描,对于某些类型的查询和扫描,您的成本最多可降低4倍。

  

<强> 4。什么时候首选并行扫描?

<强>答:

如果满足以下条件,则可以选择并行扫描:

  • 表格大小为20 GB或更大。

  • 表中提供的读取吞吐量未得到充分利用。

  • 顺序扫描操作太慢。

  

<强> 5。是否在扫描前应用过滤器表达式?

答案:否,在读取了项目后应用了FilterExpression;过滤过程不会消耗任何额外的读取容量单位。

资源链接:

  1. Scan

  2. Parallel Scan

  3. Example - Parallel Scan Using Java

  4. Amazon DynamoDB – Parallel Scans, 4x Cheaper Reads, Other Good News

  5. Avoid Sudden Bursts of Read Activity