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 主要使用 putItempath 方法来执行加载。
您可以查看以下代码示例来处理文件并加载它-
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("http://localhost: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(); 
   } 
} 
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4