我有一个巨大的 DynamoDB 表,我想对其进行分析以聚合存储在其属性中的数据。然后应由 Java 应用程序处理聚合数据。 虽然我了解 MapReduce 背后的真正基本概念,但我以前从未使用过它。
在我的例子中,假设我有一个 customerId
和 orderNumbers
每个 DynamoDB 项目中的属性,并且我可以为同一客户提供多个项目。喜欢:
customerId: 1, orderNumbers: 2
customerId: 1, orderNumbers: 6
customerId: 2, orderNumbers: -1
基本上我想对每个 customerId 的 orderNumbers 求和,然后使用聚合在 Java 中执行一些操作。
AWS Elastic MapReduce 可能会帮助我,但我不明白如何将自定义 JAR 与 DynamoDB 连接。我的自定义 JAR 可能需要同时公开 map
和 reduce
功能,我在哪里可以找到合适的接口(interface)来实现?
另外,我对文档有点困惑,似乎我应该先将数据导出到 S3,然后再运行我的自定义 JAR。这是正确的吗?
谢谢
请您参考如下方法:
注意:我还没有构建有效的 EMR,只是阅读一下。
首先,Prerequisites for Integrating Amazon EMR with Amazon DynamoDB
您可以直接在 DynamoDB 上工作:Hive Command Examples for Exporting, Importing, and Querying Data in Amazon DynamoDB , 如您所见,您可以通过这种方式执行“类似 SQL”的查询。
如果您对 Hadoop 的了解为零,您应该阅读一些介绍 Material ,例如:What is Hadoop
本教程是另一本好书 Using Amazon Elastic MapReduce with DynamoDB
关于您的自定义 JAR 应用程序,您需要将其上传到 S3。使用本指南:How to Create a Job Flow Using a Custom JAR
我希望这能帮助您入门。