📜  aws 本地端点 dynamodb (1)

📅  最后修改于: 2023-12-03 14:39:25.640000             🧑  作者: Mango

AWS本地端点DynamoDB

AWS本地端点DynamoDB是一种完全托管的NoSQL数据库服务,可以在本地或在云中使用。它的特点是高速度、可伸缩性和灵活性。AWS本地端点DynamoDB支持的语言有Java、Python、Ruby、Node.js、.NET、PHP和Go等。

安装

AWS本地端点DynamoDB需要JRE8或更高版本和Java Development Kit (JDK)。安装步骤如下:

  1. 下载AWS本地端点DynamoDB: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html
  2. 解压缩下载的文件。
  3. 使用命令启动数据库:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
使用
创建表

使用AWS本地端点DynamoDB创建表的步骤如下:

import boto3

dynamodb = boto3.resource('dynamodb', endpoint_url='http://localhost:8000')

table = dynamodb.create_table(
    TableName='test_table',
    KeySchema=[
        {
            'AttributeName': 'id',
            'KeyType': 'HASH'
        },
        {
            'AttributeName': 'name',
            'KeyType': 'RANGE'
        }
    ],
    AttributeDefinitions=[
        {
            'AttributeName': 'id',
            'AttributeType': 'S'
        },
        {
            'AttributeName': 'name',
            'AttributeType': 'S'
        },
        {
            'AttributeName': 'age',
            'AttributeType': 'N'
        }
    ],
    ProvisionedThroughput={
        'ReadCapacityUnits': 1,
        'WriteCapacityUnits': 1
    }
)
插入数据

使用AWS本地端点DynamoDB插入数据的步骤如下:

import boto3

dynamodb = boto3.resource('dynamodb', endpoint_url='http://localhost:8000')

table = dynamodb.Table('test_table')
table.put_item(
    Item={
        'id': '001',
        'name': 'John',
        'age': 30,
        'address': {
            'city': 'New York',
            'state': 'NY'
        }
    }
)
查询数据

使用AWS本地端点DynamoDB查询数据的步骤如下:

import boto3

dynamodb = boto3.resource('dynamodb', endpoint_url='http://localhost:8000')

table = dynamodb.Table('test_table')
response = table.get_item(
    Key={
        'id': '001',
        'name': 'John'
    }
)
item = response['Item']
总结

AWS本地端点DynamoDB是一个功能强大的NoSQL数据库服务。它可以在本地或在云中使用,并支持多种编程语言。本文介绍了AWS本地端点DynamoDB的安装、创建表、插入数据和查询数据等方面的内容。