Amazon DynamoDB

Node.js 雲端服務 - Amazon (1)

基本介紹

教學目標

透過 Node.js 進行 Amazon DynamoDB 傳入和取出 JSON 格式的記錄。

前置作業

  1. 申請 AWS 雲端服務帳號。
  2. 請在 Amazon DynamoDB 服務中建立 Table (建立 id 為主鍵的 Hash 字串),用於傳入和取出 JSON 檔案。
  3. 透過 AWS IAM Management Console 取得 AWS credentials 用於授權存取 AWS 雲端服務,並且新增 config.json。
    1
    { "accessKeyId": "Access Key ID", "secretAccessKey": "Secret Access Key", "region": "us-east-1" }

套件安裝

1
$ npm install aws-sdk --save

使用教學

建立

1
2
3
var AWS = require('aws-sdk');
AWS.config.loadFromPath("./config.json");
var dynamodb = new AWS.DynamoDB();

傳入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var params = {
"TableName": "Table 名稱",
"Item": {
"id":{"S": "1"},
"name":{"S": "leoyeh"}
}
};
dynamodb.putItem(params, function(err, result) {
if (err) {
console.log(err);
} else {
console.log(result);
}
});

取出

1
2
3
4
5
6
7
8
9
10
11
12
13
var params = {
"TableName":"Table 名稱",
"Key":{
"id":{"S": "1"}
}
};
dynamodb.getItem(params, function(err, result) {
if (err) {
console.log(err);
} else {
console.log(result.Item);
}
});

更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var params = {
"TableName": "Table 名稱",
"Key": {
"id": {"S": "1"}
},"AttributeUpdates": {
"gender": {"Value": {"S": "male"}, "Action": "PUT"},
"age": {"Value": {"N": 25}, "Action": "PUT"}
}
};
dynamodb.updateItem(params, function(err, result) {
if (err) {
console.log(err);
} else {
console.log(result);
}
});

掃描

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var params = {
"TableName": "Table 名稱",
"ScanFilter": {
"gender": {
"AttributeValueList": [{"S": "male"}],
"ComparisonOperator": "CONTAIN"
},
},
"Limit": "100"
};
dynamodb.scan(params, function(err, result) {
if (err) {
console.log(err);
} else {
console.log(result);
}
});

相關資源

雲端服務 Amazon Web Service (2)

基本介紹

教學目標

學會如何根據大數據處理階段,選擇最適合的 Amazon 雲端服務。

重點概念

Big Data Portfolio of Services

在大數據處理的階段根據下表,就能在篩選出最適合的 Amazon 雲端服務。

處理階段 雲端服務
收集 AWS Direct Connect、AWS Import/Export、Amazon Kinesis
儲存 Amazon S3、Amazon DynamoDB、Amazon Glacier
處理 & 分析 Amazon Redshift 、Amazon EMR、Amazon EC2

(參考資源: AWS re:Invent 2014 | (BDT303) Construct ETL Pipeline w/ AWS Data Pipeline, Amazon EMR & Redshift )

Batch Processing

Amazon EMR 雲端服務搭配 Apache Mahout 開源專案進行資料分析處理。

Amazon EMR 雲端服務搭配 Apache Spark 開源專案進行資料分析處理。

Real-time Processing

Amazon Kinesis 雲端服務搭配 Amazon Redshift 雲端服務進行資料分析處理。

Amazon Kinesis 雲端服務搭配 Storm 開源專案進行資料分析處理。

相關資源

雲端服務 Amazon Web Service (1)

基本介紹

教學目標

學會如何根據不同的需求選擇 Amazon Web Service 中最適合的資料儲存服務。

重點概念

針對需求根據下表的不同項目進行評估,就能在初期篩選出最適合的資料儲存服務。

DynamoDB RDS Redshift EMR S3 Elasitc Cahche Glacier
平均延遲 毫秒 毫秒、秒 秒、分鐘 秒、分鐘、小時 毫秒、秒、分鐘 毫秒 小時
資料大小 GB ~ TBs GB ~ TB (3TB) TB ~ PB (1.6PB) GB ~ PB GB ~ PB GB GB ~ PB
項目大小 KB (64KB) KB KB (64KB) KB ~ MB KB ~ GB B ~ KB GB
結構
請求率 低 ~ 高
持久性 低 ~ 中
儲存成本

(參考資源: AWS re:Invent 2014 | (BDT310) Big Data Architectural Patterns and Best Practices on AWS )

相關資源