AWSでのビッグデータの活用方法

AWS

はじめに

あくまでも個人の備忘録になります。
勉強したことを思い出しやすいようにまとめています。
色々な方が非常にわかりやすく記載されているので、そちらを見るが吉。

AWSでのストレージサービス

AWSでのストレージサービスはざっくりと以下。

項目内容アクセスタイプ
S3リージョンに設置するオブジェクトストレージ。
大容量のデータを安価に保存
HTTP
EBSAZに設置するブロックストレージ。
EC2インスタンスのディスク領域で利用する。
ブロックアクセス
EFS複数のEC2等で共有可能なファイルストレージファイルアクセス(NFS)

上記以外にもファイルストレージとしては以下がある。

項目内容アクセスタイプ
Amazon FSx For
Windows File Server
Windows File Serverと互換性あり。
ADサーバやWindowsのソフトウェアとの連携が可能
ファイルアクセス
(SMB)
Amazon FSx For
Lustre
Lustreのアーキテクトを使ったAWSのFSサービス。
Lustreはスパコンとかの世界で利用される分散ファイルシステム。
ファイルアクセス

EFSの特徴

特徴

  • フルマネージド型のサービス
  • NFSv4を利用してアクセスが可能
  • 容量に関してはスケーラブル
  • 性能に関してもスループット/IOPS性能は自動的にスケーリング
  • 課金については従量課金

基本性能

  • 基本容量は100MB
  • ファイルあたりの最大容量は48TB

データウェアハウス

構造化データ向けのデータベース。

構造化データ向けであるため、事前にため込むデータ構造(スキーマ)を設計する必要がある。
収集したデータを格納するにあたり、ETLでデータを変換してから保管する。
ETLはデータウェアハウスにおける、Extract(抽出)/Transform(変換)/Load(保管)のことを指す。

データレイク

非構造化データ向けのデータベース。

動画、音声、テキストといったように構造化データである必要はない。
非構造化データ向けなので、事前にスキーマの設計等も不要となる。

Kinesis

Kinesisは以下のコンポーネントで構成される。

項目内容
Amazon Kinesis
Data Streams
ストリームデータを処理する。
LamdaやEC2にデータを送り、処理する。
Amazon Kinesis
Data Firehose
ストリームデータを配信する。
S3やRedshiftにデータを送り、データを処理する。
Amazon Kinesis
Data Analytics
ストリームデータを可視化・分析する。

Redshift

Amazon RedshiftはAWSのデータベースサービス。
列指向型のリレーショナルデータベースであることが特徴。
リレーショナルデータベースであるので、SQLが利用可能であり、PostgreSQL互換となる。

リレーショナルデータベースではあるが、利用用途としては以下がある。

  1. 構造化データをETLで処理をして、保存する。
  2. Redshift Spectrumを利用して、データレイク(S3)から非構造化データを取り込む

取り込むといっても、データの実態はS3上にあり、Redshift上にはデータファイルを参照するだけの外部テーブルが生成される様子?

インスタンスタイプ

項目概要
RA3インスタンス高性能、高コスト
DC2インスタンス低コスト

Redshiftの構成

項目内容
リーダーノードクエリのエンドポイント
コンピュートノードクエリを実際に処理するノード

列指向データモデル

仮に、列2のデータを読み込みたい場合、、、

行指向の場合、5*5の25個のデータをメモリ上に読み込む必要があある。
列指向の場合、列2のみを読み込むため、メモリ上には5個分のデータで済む。

列1列2列3列4列5
1
2
3
4
5

上記の特徴から、読み込み速度も早ければ、メモリ上に展開するデータ量も少なく済む。
列指向データベースではストレージ上に保存する際のデータの持ち方も大きく違う。
列に格納されるデータは似通ったデータが多く、圧縮等も非常に強力に働く。
また、列指向のデータベースは数多く存在し、実装方式はそれぞれ異なる。

列指向の弱点としては、1件のデータを追加する際に、列1、列2、列3、列4、列5に処理が走る。
行指向の場合は、横方向の塊が1データとなるので、1件のデータ追加は1処理で済む。

参考サイト

Redshiftについて

Amazon Redshift - Qiita
1.Amazon Redshift とは データウェアハウスサービスです。 ・データウェアハウスサービスって何よ! データウェアハウスサービスとは、企業経営の中で時系列に蓄積されたデータの中から、各項目にある関連性を分析するた...

lustreについて

新発表されたAmazon FSx for Lustreを構築してEC2からアクセスしてみた #reinvent | Developers.IO
re:Invent 2018のキーノートにてHPCなどの高性能計算環境に最適なファイルシステム Amazon FSx for Lustre が発表されました。 本エントリでは、ECからAmazon FSx for Lustreファイルシステムにアクセスするところまでをやってみたいと思います。
分散並列ファイルシステムAmazon FSx for Lustreの学び方 | Developers.IO
Lustreは世界一のスパコン「富岳」でも使われている高性能な並列ファイルシステムです。 Lustreの初心者向けに、AWSがマネージドサービスとして提供しているAmazon FSx for Lustreの入門的な情報源を集めました。

データウェアハウスとデータレイク

データレイクとデータウェアハウスの違いとは
企業では事業部門ごとに業務最適化のためのシステム化が進められることが多く、取り扱うデータも各事業部門ごとに独立し、データのサイロ化が発生してしまいます。データのサイロ化の解決方法として知っておきたいデータレイクとデータウェアハウスについて解説します。
データウェアハウス(DWH)とは | 定義・データベース(DB)・データマートとの違い - DWH(データウェアハウス) | ボクシルマガジン
データウェアハウスとは、各種データを時系列に保存すデータベースの利用形態の一つです。データウェアハウス(DWH)の意味や定義を詳しく解説し、データベース、データマート、データレイク、RDBなどとの違いについて解説します。ボクシルでは法人向けSaaSを無料で比較・検討し、『資料請求』できます。ホワイトペーパーや特集記事等...

Kinesis

AWS Kinesisと仲良くなれるかもしれないまとめ - Qiita
概要 AWS Kinesisについてまとめています これからKinesis使う人の参考になれば幸いです Kinesisとは Amazon Kinesisによると、 Amazon Kinesis でストリーミングデー...

列指向(わかりやすすぎて感動した)

ビッグデータには、なぜ列指向が有効なのか? | db tech showcase
B16:BigData / Vertica | db tech showcase Sapporo 2015 ビッグデータには、なぜ列指向が有効なのか? ビッグデータを有効に活用するためにデータベースに求められるのは、大量のデータを高速に検索できる性能です。これを実現するための重要な技術が列指向であり、OracleやSQ...

コメント

タイトルとURLをコピーしました