それではデータベースサービスについて続きをまとめていきます。
##DynamoDBとは
マネージド型のNoSQLデータベースサービス
読み込み書き込みが早いが、API経由での操作になる。
SQLともデータの扱い方、構造が違ってきています。
読み込み書き込みが多いシステムや、テーブル結合が不要なシステムがおすすめ!
※RDSは更新が頻繁なシステム、テーブル結合が必要なテーブル設計のシステム
RDSとの違いがあるのでその点に関して注意。
サーバーワークスさんのブログ記事でまとめられているので参照ください。
#####キーバリュー型データモデル
DynamoDBはキーバリュー型のデータベース。
データ書き込み時は1つのデータとしてキーとバリューがセットで保存される。
データを呼び出すときはキーを指定して、バリューを取り出す。
格納できるデータの種類は
RDB=「数値」「文字列」や、JSONのような半構造データもバリューとして格納することができる。
#####マルチAZ
自動的に3箇所のAZにデータが保存される。(可用性を保つために!)
#####結果整合性モデル
書き込んだデータは時間が経てば正しく反映される(結果的には整合性が保証される)
※データ読み取りのタイミングによっては書き込んだデータが反映されてない場合がある。
>マルチAZの3箇所にデータが分散・保存されることからデータの書き込み完了に時間差が生じてしまう
タイミングによっては反映されてないAZからデータを取得してしまう場合がある。
>>対策として[Consistent Read(読み取り一貫性)]というオプションが提供され、
書き込み反映されたデータを読み取ることができる。
##Redshiftとは
主にBIツールなどを利用した大量のデータを使用する分析・集計に向いてる、
ペタバイトクラスのデータもあ使うことができるマネージド型のデータウェアハウスサービス。
※データウェアハウスとは・・・企業活動の中で蓄積したデータをある特定の内容を分析するためのもの。
Redshiftは「ノード」と呼ばれているコンピューティングリソースの集まりで構成され、
Redshiftに対して処理を行う場合は「リーダーノード」
そこから「リーダーノード」は「コンピューターノード」に対してそれぞれ依頼をする。
ノードの集まりをクラスターという。
公式引用
Amazon Redshift は、クラスターの状態のモニタリングやバックアップの取得、パッチの適用、アップグレードにいたるまで、データウェアハウスの管理、モニタリング、スケーリングに必要なすべての作業を制御します。パフォーマンスや容量に対するニーズの変化に合わせ、クラスターのサイズを簡単に変更できます。こうした多大な時間と労力を要する作業を自動化することで、お客様はデータの解析とビジネスに専念できます。
#####スナップショット
スナップショットを作成することでバックアップできる。
スナップショットはクラスターのポイントインタイムバックアップ。
自動と手動の2つがあり、自動の設定を有効にしている場合は8時間ごと、
もしくはノードあたり5GBのデータ変更があった場合に自動で取得する。
保存期間が過ぎるとRedshiftによって削除されるため、永続的にバックアップを保存したい場合は
手動でスナップショットを取得する必要がある。
スナップショットの格納先はRedshiftのクラスターが配置されているリージョンになるが
クロスリージョンスナップショットといい別のリージョンにもコピーするように設定できる。
以上個人的備忘録