DynamoDB的基础知识和总结
DynamoDBを大雑把にさくっと日本語で理解したい方向けの説明。
(まだ書き途中)
本文是根据 API 版本 2012-08-10 进行编写的。
对此的印象和感受
-
- 管理が楽!
容量の増加を気にしなくていい!
スループットやパフォーマンスの監視、管理が楽!
ソーシャルゲームでは、一部のデータではすごく良さそう
検索や集計は弱いから、MySQLと併用
レイテンシが低いと書いてあるが、memcache の方が当然早い
テーブル設計の理解と指定方法がちょっと面倒
料金体系の理解がちょっと面倒
DynamoDB是什么?
概括来说
-
- NoSQL, スキーマレスなAWS上のデータベースサービス
- スケールに関して何も気にしなくていい
首先,阅读官方网站可以了解概况。
Amazon DynamoDB是一种完全托管的无SQL数据库服务,由亚马逊网络服务(AWS)提供。
什么东西?
这份针对初学者的幻灯片非常易懂,技术内容也解释得非常清楚!
亚马逊DynamoDB(面向初学者的超速度主题)JAWSUG大阪
需要理解的基本单词
-
- KVS, NoSQL, スキーマレス
-
- プライマリキー (PK, Primary Key)
-
- インデックス (index)
ハッシュ(HASH) と レンジ(RANGE)
型 (type), 属性の型 (Attribute Type)
スカラーデータ型 (Scalar data types)
N,S,B (Number, String, Binary)
マルチバリュー型 (Multi-valued types)
Number Set, String Set, Binary Set
ローカルセカンダリーインデックス (Local Secondary Indexes)
投影された (projected)
データ内容がインデックスに反映された的な意味で使われていると思う
設定では、次の3つから選ぶ KEYS_ONLY, INCLUDE, ALL
プロビジョニングされた (Provisioned)
「リソースが事前に用意されている」という意味
プロビジョニングは、「必要なリソースをすぐに使える体制」という意味
プロビジョンドスループット (Provisioned Throughtput)
Read Capacity Units, Write Capacity Units
DynamoDB Local
DynamoDBのローカル環境
整体的概述
-
- 何にどのように使うのか?の方針決めや設計 (お試しの場合不要)
-
- テーブルの設計をする
プライマリキーの決定 (HASH か HASH + RANGE)
インデックスの決定
DynamoDB環境の構築
ローカル環境 (DynamoDB Local)をインストールするか
AWS Managemment Console で DynamoDBをセットアップするか
テーブルを作る
主键
可以从哈希或哈希&范围的两种方法中选择。
哈希类型的主键
将哈希存储在一个列中。
仅通过此密钥能够唯一确定并进行搜索。
哈希和范围类型的主键
使用HASH和RANGE两个键
使用HASH和RANGE两个键以唯一确定记录
可以使用RANGE进行范围搜索
本地次要索引
现在可以通过选项为查询添加索引。
该特征是从以下网站引用的。
おちラボ:教育システム研究開発BLOG: DynamoDB: ローカルセカンダリインデックスを使ってみた(DynamoDBMapper利用編)
テーブル毎に最大5つのローカルセカンダリインデックスを作成可能
あくまでも従来のレンジキーに対する代替
複数のローカルセカンダリインデックスを組み合わせた検索は不可
従来のレンジキーとの組み合わせも不可
紐付けるAttributeによってコストが増える?
どうやら、3つ以上の条件(Key Conditions)では検索できないようです。
HASHだけか、HASH & RANGE の2つの条件しかできないようです。
LSI的优点和缺点
-
- メリット:
クエリーが早くなる
多く取ってきてフィルターしなくて良い
デメリット
インデックス用の容量が増える
書き込み時のインデックスの更新コストがかかる
桌子的设计
数据库的整体结构
テーブルがあって、アイテムがある。
アイテムを探すのにプライマリキーがある。
创建表
目前的情况下,无法后续添加索引。
以以下方式指定并通过API来创建表格。
-
- テーブル名 (TableName)
属性の設定 (AttributeDefinitions)
属性名(AttributeName)と属性の型(AttributeType)
キースキーマ (KeySchema)
属性名とキーの型 (KeyType: HASH か RANGE)
ローカルセカンダリーインデックス (LocalSecondaryIndexes)
インデックス名
顺便提一下
-
- SSD で色々なリージョン、サーバに分散して保存
-
- phpLiteAdmin で DynamoDB のデータ操作ができる
-
- ハッシュキーで別々のサーバに保存するっぽいので、一つのハッシュキーに処理が集中すると遅くなる。ので、分散するように設計しよう
-
- 既存のLSI でない DynamoDB テーブルを LSI のテーブルにしたい時は、 Elastic Map Reduce を使って既存のデータをエクスポートしてから、新しいLSIなテーブルへインポートするといい (by Amazon CTO, Werner Vogels)
-
- SQL系DBのトランザクションのようなものはない
-
- → キューに突っ込む? AWSのSQSなど
-
- query の応答一つあたりのサイズ上限は1MB
- Item 64KBまで
请提供一个中文的URL。
Formula
亚马逊 DynamoDB 常见问题解答 | AWS(亚马逊网络服务)日本)
我去参加了关于Redshift的研讨会,主题是”熟练使用AWS的大数据服务!” – #garagekidztweetz
公式なローカルセカンダリーインデックスの説明
Amazon Web Services ブログ: 【AWS発表】 Amazon DynamoDB でローカルセカンダリインデックスを作成可能に
使用实例
在社交游戏中的应用案例。保证一致性的SQS队列事例
使用DynamoDB实施社交游戏的方法
印象
使用体验
DynamoDB的笔记+试用感受 – 阿尔帕卡日记
DynamoDB和Redshift——「ようへいの日々精進」上的介绍。
すぐに理解
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
搜索用途
亚马逊云服务(AWS),DynamoDB,主键(PK),主键,本地次要索引,预配置吞吐量。