- DynamoDB 教程
- DynamoDB - 首页
- DynamoDB - 概览
- DynamoDB - 基本概念
- DynamoDB - 环境
- DynamoDB - 操作工具
- DynamoDB - 数据类型
- DynamoDB - 创建表格
- DynamoDB - 加载表格
- DynamoDB - 查询表格
- DynamoDB - 删除表格
- DynamoDB - API 接口
- DynamoDB - 创建项目
- DynamoDB - 获取项目
- DynamoDB - 更新项目
- DynamoDB - 删除项目
- DynamoDB - 批量写入
- DynamoDB - 批量检索
- DynamoDB - 查询
- DynamoDB - 扫描
- DynamoDB - 索引
- 全局二级索引
- 本地二级索引
- DynamoDB - 聚合
- DynamoDB - 访问控制
- DynamoDB - 权限 API
- DynamoDB - 条件
- Web 身份联合
- DynamoDB - 数据管道
- DynamoDB - 数据备份
- DynamoDB - 监控
- DynamoDB - CloudTrail
- DynamoDB - MapReduce
- DynamoDB - 表格活动
- DynamoDB - 错误处理
- DynamoDB - 最佳实践
- DynamoDB 有用资源
- DynamoDB - 快速指南
- DynamoDB - 有用资源
- DynamoDB - 讨论
DynamoDB - 加载表格
加载表格通常包括创建源文件、确保源文件符合与 DynamoDB 兼容的语法、将源文件发送到目标位置,然后确认是否成功填充。
利用 GUI 控制台、Java 或其他选项来执行此任务。
使用 GUI 控制台加载表格
使用命令行和控制台的组合加载数据。您可以通过多种方式加载数据,其中一些如下所示 -
- 控制台
- 命令行
- 代码以及
- 数据管道(本教程后面会讨论的功能)
但是,为了提高速度,此示例同时使用了 shell 和控制台。首先,使用以下语法将源数据加载到目标位置 -
aws dynamodb batch-write-item -–request-items file://[filename]
例如 -
aws dynamodb batch-write-item -–request-items file://MyProductData.json
通过访问以下控制台来验证操作是否成功 -
https://console.aws.amazon.com/dynamodb
从导航窗格中选择**表格**,然后从表格列表中选择目标表格。
选择**项目**选项卡以检查用于填充表格的数据。选择**取消**以返回表格列表。
使用 Java 加载表格
首先创建源文件,然后使用 Java。我们的源文件使用 JSON 格式。每个产品有两个主键属性(ID 和 Nomenclature)和一个 JSON 映射(Stat) -
[ { "ID" : ... , "Nomenclature" : ... , "Stat" : { ... } }, { "ID" : ... , "Nomenclature" : ... , "Stat" : { ... } }, ... ]
您可以查看以下示例 -
{ "ID" : 122, "Nomenclature" : "Particle Blaster 5000", "Stat" : { "Manufacturer" : "XYZ Inc.", "sales" : "1M+", "quantity" : 500, "img_src" : "http://www.xyz.com/manuals/particleblaster5000.jpg", "description" : "A laser cutter used in plastic manufacturing." } }
下一步是将文件放置在应用程序使用的目录中。
Java 主要使用**putItem** 和**path 方法**来执行加载操作。
您可以查看以下代码示例,了解如何处理文件并将其加载 -
import java.io.File; import java.util.Iterator; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; import com.amazonaws.services.dynamodbv2.document.DynamoDB; import com.amazonaws.services.dynamodbv2.document.Item; import com.amazonaws.services.dynamodbv2.document.Table; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.node.ObjectNode; public class ProductsLoadData { public static void main(String[] args) throws Exception { AmazonDynamoDBClient client = new AmazonDynamoDBClient() .withEndpoint("https://127.0.0.1:8000"); DynamoDB dynamoDB = new DynamoDB(client); Table table = dynamoDB.getTable("Products"); JsonParser parser = new JsonFactory() .createParser(new File("productinfo.json")); JsonNode rootNode = new ObjectMapper().readTree(parser); Iterator<JsonNode> iter = rootNode.iterator(); ObjectNode currentNode; while (iter.hasNext()) { currentNode = (ObjectNode) iter.next(); int ID = currentNode.path("ID").asInt(); String Nomenclature = currentNode.path("Nomenclature").asText(); try { table.putItem(new Item() .withPrimaryKey("ID", ID, "Nomenclature", Nomenclature) .withJSON("Stat", currentNode.path("Stat").toString())); System.out.println("Successful load: " + ID + " " + Nomenclature); } catch (Exception e) { System.err.println("Cannot add product: " + ID + " " + Nomenclature); System.err.println(e.getMessage()); break; } } parser.close(); } }
广告