TxKxZxWx's blog

AWS SAA取得に向けて学習

AWS SAA取得に向けて 58日目 「データベースの基礎②」 セクション11:データベース

セクション11:「データベース」

------------------------------------------

 

 

「データベースの基礎」

 

 

 

Performance Efficiency:パフォーマンス効率

システム要件のリソース最適化によるリソース使用量の削減。

 

【設計事項】

  • システム要件を満たすためのコンピューティングリソースを効率化する。
  • システム要件やAWSサービスの進化に応じてAWSインフラの効率化を推進する。
    - 先端技術の一般化
    - グローバル化を即座に達成
    - サーバレスアーキテクチャの利用
    - より頻繁な実験

 

 

 

パフォーマンス効率の主要サービス

  • コンピューティング
    Auto Scaling, Lambda

  • ストレージ
    EBS, S3, Glacier, EFS

  • データベース
    RDS, DynamoDB, Elastic search, Aurora, Redshift

  • 容量と時間のトレードオフ
    Cloud Front, Elasti Cache

 

 

⑥最適なデータベース選択

ワークロードに応じた最適なデータベース技術を利用する。

 

関連する主要サービス
RedShift, RDS, DynamoDB, Aurora, Elastic search

 

 

データベース

データベースはリレーショナルDBかそうでないDBかの大きく2つの種類がある。

 

 

 

リレーショナルDB

データベースの基本はリレーショナルDBシステム(RDBS)

関係性が定義されている。ER図で表現されるようなもの。

会計データや顧客データなど。

 

概要

  • データ間の関係性が定義されたデータを取り扱う一般的なDBシステム。
  • 列と行がいくつかのテーブルで定義されていて、テーブル間のリレーションが設計される。
  • データ操作にSQLを利用

利用データ

  • 会計データ/顧客データといった構造化データ。

 

 

 

NoSQL

IoTと同様にビッグデータ解析にはNoSQL DBを利用する。

 

概要

  • リレーショナルデータ構造を持たずSQLを利用しないDBの総称。
    音声や動画などの非構造データや、XMLJSONなどの半構造化データなど。

  • ただし、現在はSQLSQLに似た適用したモデルもある。

利用データ

  • 構造化されていないKeyとValueのみ(ID番号に一列に全データを格納)のKVSデータ。
  • 動画/画像/ドキュメントなどの非構造化データ。
  • XML/JSONなどの半構造化データ。

 

データが軽いので大量のデータを処理するのに向いている。

 

 

NoSQL

キーに対するデータ形式の格納方式の違いで様々なタイプのNoSQLが存在する。

 

キーバリューストア

  • キーに対してバリュー(値)を入れる単純な構造。
  • 高速なパフォーマンスと分散型拡張に優れている。
  • データ読み込みが高速。

ドキュメントデータベース

  • キーに対してバリューではなく、JSONXMLなどのデータを格納。
  • 複雑なデータ構造を扱うアプリで生産性高く柔軟に開発する。

 

ワイドカラムストア

  • 列指向とも呼ばれ、キーを利用するがデータはレコード(行)で管理する。
  • 非構造データを大規模に格納することを目的にしている。
  • 行ごとに任意の名前のカラムを無数に格納できる。

    キーバリューストアよりデータの形式や格納方式を柔軟にできる。

 

グラフデータベース

  • グラフ理論に基づき、データ同士の関係をグラフで総合に結びついた要素で構成される。
  • RDBと比較して高速横断検索が可能。

 

 

ビッグデータの活用

データの特徴に応じて利用するデータベースを選択する。


ビッグデータは様々なデータタイプを色々蓄積して解析する仕組み。

データの形式によって蓄積場所のデータベースを変える必要がある。

 

  • DWH(構造化データ)
    →売上分析/財務分析など目的にそった業務データ分析。

  • アーカイブ(構造化アーカイブデータ)
    →データウェアハウスだけでは不可能だった長期過去データを活用した業務データ分析。

  • 半構造化DB(半構造化データ)
    →IoTデータなどの膨大なビッグデータを活用し た分析/人工知能構築。

  • 非構造化DB(非構造化データ)
    →非構造化データを利用したデータ分析/人工知能構築。

 

 

「データベースの種類」

 

リレーショナルDB(RDB

業務システム向けのDBの基本はリレーショナルデータベース。

 

オンプレではMySQLORACLEなど。

AWSサービスではRDS

 

 

 

データウェアハウス(DWH)

構造化データを利用した経営分析向けのデータベース。

 

BIツールなどと連動して経営分析などを構造化データを使って行うのがデータウェアハウス。

会計データや販売データで経営分析などを行う時に使う。

データの抽出・集約に特化したBIデータ分析用のデータベース。

オンプレではTERADATAやORACLE Exadataなど。

AWSサービスではRedshift

 

 

 

分散型DB/データレイク

ビッグデータやIoTデータを蓄積して高速処理を可能にするDBとストレージの組合せ。

 

データの抽出、蓄積に特化。

オンプレではHDFSなど。

AWSサービスではS3

 

 

KVS :キーバリュー型

シンプルなデータ構造にすることで高速処理を可能にしたDB。

リレーショナルなしにバリュー一行にデータをまとめることで、高速処理を可能にする

キーに応じてデータを分散して処理することができる。

 

分散して、シンプルなオペレーションを高速に実施できるDB。

強い整合性を犠牲にして、結果的な整合性を採用。

オンプレではredisやriakなど。

AWSサービスではElastiCach, DynamoDB。

 

 

ワイドカラム型

キーに対してカラムを大規模に登録できるのがワイドカラム型。

キーとカラムが入れ子構造となったデータモデルを利用。

 

分散して、シンプルなオペレーションを高速に実施できるDB。

オンプレではcasssandraやAPACHE HBASEなど。

AWSサービスではDynamoDB

 

 

ドキュメントDB

キーに対してドキュメント指向でXMLなどのデータを格納する。

様々な形式のドキュメント構造を一緒に保存できる。

 

ドキュメント指向データベースでは、さまざまなデータ構造のドキュメントを混在して保存することができる。

オンプレではmongoDBやMarkLogicなど。

AWSサービスではAmazon DocumentDB, mongoDB。

 

 

インメモリデータグリッド

KVSの仕組みをメモリを利用してより高性能にしたDB。

 

大量のデータを多数のサーバのメモリ上で分散して管理する技術。

ミリ秒単位の高速の応答処理が可能。

オンプレではAPACHE GEODEなど。

AWSサービスではRedis ElastiCache, Memcached ElastiCache

 

 

 

全検索型エンジン×分散DB

データの全検索エンジンであるElasticsearchは分散データベースと連携してデータ全検索処理が可能。

 

全検索型のデータ検索エンジンで、分散データベースと連携して検索データベー スを構築。

検索条件との関係性/関連性が高いデータを抽出して返す。
オンプレではelasticserchなど。

AWSサービスではElasticsearch Servise

 

 

グラフDB

グラフ構造でデータ間のつながりを検索・可視化するDB。

グラフ構造はマインドマップのようにデータ関連をグラフ表示するデータ構造。

 

グラフ演算に特化したDBで、データ間のつながり方を検索・可視化に利用。

オンプレではneo4jなど。

AWSサービスではAmazon Neptune

 

 

分散OLTP(RDB

オンライントランザクション処理(Online TransactionProcessing)を分散化する次世代DB。

 

グローバルに分散され、強整合性を備えたデータベース。

大規模な業務データ処理に使用。

高い可用性、高性能のトランザクションと強整合性が実現。

AWSサービスではAmazon Aurora

 

 

それぞれのデータベースの種類によってAWSのサービスを選択していく。