专栏首页程序手艺人[ 后端篇 ] 05 - AWS DynamoDB 入门教程

[ 后端篇 ] 05 - AWS DynamoDB 入门教程

DynamoDB 属于AWS 专有的 NoSQL 数据库服务。其实和Mongod类似。

由于DynamoDB 属于AWS的,需要下载专有的工具操作。

在 DynamoDB 中,表、项目和属性是您使用的核心组件。表 是项目 的集合,而每个项目是属性 的集合。DynamoDB 使用主键来唯一标识表中的每个项目,并且使用二级索引来提供更大的查询灵活性。您可以使用 DynamoDB 流 捕获 DynamoDB 表中的数据修改事件。

搭建本地DynamoDB开发环境

操作 DynamoDB 需要提前装 AWS Command Line Interface (AWS CLI)之后便可以 命令行管理多个 AWS 服务并通过脚本自动执行这些服务。

  • 下载AWS CLI

安装 AWS CLI 工具 , 提前安装好Python 中的pip,然后执行 pip install awscli ,安装成功之后提示

➜  DynamoDB_install aws --version
aws-cli/1.16.121 Python/2.7.15rc1 Linux/4.15.0-45-generic botocore/1.12.111
  • 配置 AWS CLI
  1. 配置之前必须先获取访问密钥 ID 和秘密访问密钥,然后才能将 AWS CLI 与 DynamoDB 结合使用。请参阅获取 AWS 访问密钥
  2. AWS Configure进行配置
➜  DynamoDB_install aws configure
AWS Access Key ID [****************ZDBQ]: 
AWS Secret Access Key [****************XknV]: 
Default region name [us-west-2]: 
Default output format [json]: 
  • 下载DynamoDB
  1. 可以参考计算机上的 DynamoDB(可下载版本)
  2. 下载 DynamoDB
  3. 下载之后解压压缩包,Ubuntu 启动 DynamoDB,打开终端,导航到您提取 DynamoDBLocal.jar 的目录,并键入以下命令:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
  1. 然后本地同时启动客户端去链接服务端
aws dynamodb list-tables --endpoint-url http://localhost:8000

以上步骤便可以通过命令行操作数据库


Node.js 和 DynamoDB

通过API的方式操作DynamoDB数据库

  1. 安装AWS提供的aws-sdk
npm install aws-sdk
  1. 创建一个名为 Movies 的表。表的主键由以下属性组成。
var AWS = require("aws-sdk");

AWS.config.update({
  region: "us-west-2",
  endpoint: "http://localhost:8000"
});

//新建DynamoDB对象
var dynamodb = new AWS.DynamoDB();

// year – 分区键。AttributeType 为 N,表示数字。
// title – 排序键。AttributeType 为 S,表示字符串。

// 表的内容
var params = {
    TableName : "Movies",
    KeySchema: [       
        { AttributeName: "year", KeyType: "HASH"},  //Partition key
        { AttributeName: "title", KeyType: "RANGE" }  //Sort key
    ],
    AttributeDefinitions: [       
        { AttributeName: "year", AttributeType: "N" },
        { AttributeName: "title", AttributeType: "S" }
    ],
    ProvisionedThroughput: {       
        ReadCapacityUnits: 10, 
        WriteCapacityUnits: 10
    }
};
// DynamoDB 中创建表
dynamodb.createTable(params, function(err, data) {
    if (err) {
        console.error("Unable to create table. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        console.log("Created table. Table description JSON:", JSON.stringify(data, null, 2));
    }
});
  1. 运行该程序
node MoviesCreateTable.js

以上只是学习DynamoDB过程中的笔记,更加详细可以参考官网更详细的教程

AWS API Amazon DynamoDB

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • FFMPEG 参数详细说明

    用法:ffmpeg [options] [[infile options] -i infile] … {[outfile options] outfile} …

    程序手艺人
  • [ 物联网篇 ] 03 - Yocto Project (YP)构建 Alexa SDK

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z2066411585/article/details...

    程序手艺人
  • [ 后端篇 ] 04 - 一次完整的HTTP连接

    为了了解HTTP 具体的传输协议,花时间阅读了MDN 上的的HTTP协议说明,写的很详细,中英文版本都有。 这里把看完的一些知识点重点记录

    程序手艺人
  • LeetCode 1488. 避免洪水泛滥(第194周赛)

    你的国家有无数个湖泊,所有湖泊一开始都是空的。当第 n 个湖泊下雨的时候,如果第 n 个湖泊是空的,那么它就会装满水,否则这个湖泊会发生洪水。你的目标是避免任意...

    freesan44
  • 很多程序员都不知道的事,把GitHub放简历上可以加分!

    社区光环,众所众知,GitHub 是开发者的“同性交友社区”。Google、Facebook、Alibaba 都在通过它来贡献自己的开源项目。如果你留心关注,公...

    一墨编程学习
  • OpenFlow协议中instruction&action概念解读

    阅读任何一个协议都要注意的一点是这个协议中所定义的专有术语,对这些术语的理解不到位的话也会造成对协议的理解偏差。本文想和大家分享几个可能容易混淆的术语。 在Op...

    SDNLAB
  • k8s01_使用kubeadm部署k8s集群

    http://www.chenleilei.net/soft/kubeadm快速部署一个Kubernetes集群yaml.zip

    陈雷雷
  • Html与CSS快速入门02-HTML基础应用

    这部分是html细节知识的学习。 ? 示例代码:https://github.com/wanliwang/Bjork.Demo htmlDemo 最近胡乱删除...

    用户1216676
  • Elasticsearch安装

    在启动或者安装ES之前,需要先下载JDK 1.7以上的版本,对于2.0来说,要求JDK1.8以上。 检查JDK的版本 使用命令: java -versio...

    用户1154259
  • Asp.net+Vue2构建简单记账WebApp之一(设计)

    作为一个asp.net 程序员,当发现Vue.js的存在时就爱上它,但是在asp.net应用中使用Vue一时让我无从上手。直到最近有了点心得。就计划把之前做的一...

    易兒善

扫码关注云+社区

领取腾讯云代金券