- 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://: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();
}
}
廣告