如何填充 DynamoDB 表

How to populate DynamoDB tables

首先,我对 DynamoDB 和一般的 AWS 服务还很陌生 - 所以当我被所有细节轰炸时,我发现很难。

我的问题是我有一个 excel 文件,其中包含 CSV 格式的数据,我希望将所述数据添加到 DynamoDB table,以便于访问 Alexa 功能我正在寻找建立。 table的格式如下:

ID, Name, Email, Number, Room

1534234,    Dr Neesh Patel, Patel.Neesh@work.com,   +44 (0)3424 111111, HW101

有些行有空字段。

但是我在网上到处查看,似乎没有一种简单的方法可以真正实现这一点 - 而且我也找不到任何官方方法。因此,由于我对该领域的了解有限 - 我怀疑我是否正在以完全错误的方式处理这件事。所以首先,我是不是想错了?我应该为后端数据库寻找一个完全不同的解决方案吗?我原以为这将是一项常见任务,但缺乏支持或简单的解决方案 - 我错了吗?

其次,如果我要做这一切都很好 - 怎么办?我知道 DynamoDB 需要特定的 JSON 格式 - 而且似乎没有直接的方法将我的 CSV 转换为所述格式。

谢谢大家。

DynamoDb 很酷。但是,在使用它之前,您必须了解您的数据使用模式。对于您的情况,如果您只是每次都按 ID 查询 DynamoDb table,那就太好了。如果您需要按任何一列或多列组合进行查询,那么有解决方案:

  • Elastisearch 结合 DynamoDb(可能很昂贵),二级索引 DynamoDb table(了解每个二级索引正在创建一个 包含您选择存储的列的 DynamoDb table 的完整副本 在索引中),
  • Elasticache 结合 DynamoDb(用于将搜索绑定回 ID 列),
  • RDS 而不是 DynamoDb('因为 sql-ish 数据库更好 你不知道你的数据使用模式,你只是不想 想想看),
  • 等等

这实际上取决于您拥有多少数据以及您将如何查询应该定义您的体系结构的数据。对我来说,这将归结为权衡每个可用选项的成本和性能。

关于将数据导入 DynamoDb 或 RDS table:

  • AWS Glue 或许可以为您工作
  • AWS Lambda 以编程方式将数据导入您的数据存储
  • 也许还有其他人

我在开始使用 DynamoDB 时遇到了同样的问题。当你来到分布式大数据系统时,你真的需要设计如何跨系统移动数据。这是您开始的地方。

这里有清楚的记录,

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SampleData.LoadData.html

添加更多详细信息以了解流程。

第 1 步:将您的 csv 转换为 json 文件。

如果你的数据量不大,可以使用在线工具。

http://www.convertcsv.com/csv-to-json.htm

 {
   "ID": 1534234,
   "Name": "Dr Neesh Patel",
   "Email": "Patel.Neesh@work.com",
   "Number": "+44 (0)3424 111111",
   "Room": "HW101"
 }

您可以看到它的格式化效果如何,删除空格等,选择正确的选项并执行转换。

如果您的数据量很大,那么您需要使用大数据工具并行处理这些数据以进行转换。

第 2 步:使用 CLI 进行小型一次性上传

aws dynamodb batch-write-item --request-items file://data.json

如果要定期上传文件,需要创建数据管道或不同的进程。

希望对您有所帮助。