AWSのDWHツール Amazon Redshift、同Spectrum、Athena
目次
データウェアハウス(DWH)とは?
データウェアハウス(Data Ware house、DWH)とは、直訳すれば『データの倉庫』を意味します。データの利活用のために、膨大なデータを保存しておくためのシステムです。近年におけるDX(デジタルトランスフォーメーション)の風潮の中で、データ分析の重要性が強調されるにつれて、DWHの重要性も増してきています。
本記事では、DWHの機能やAWS(Amazon Web Services)におけるDWHのサービスについて紹介していきます。
データベースとの違いとは?
DWHもデータベースも、企業においてデータを蓄積するためのシステムであることには変わりありません。しかし、大きな違いとして以下の2点が挙げられます。
- 目的の違い
データベースはITシステムにおいてデータを正確に保存し、ITシステムを正常稼働に導くためのツールです。ITシステムにおいて不要なデータがあれば、データは更新・削除されます。一方で、DWHは、データを分析し、新たな観点や洞察を得るために存在しています。そのため、一度格納されたデータは滅多に消されることはありません。 - 処理速度の違い
データベースはデータの一貫性を維持するために、データを1行ずつ正確に処理していきます。一方でDWHは、膨大なデータを高速に処理する為に、大量のデータを分割して処理し、処理後に結果をマージするという仕組みや、データを1列ずつ処理する「カラム志向」の仕組みが備わっています。
DWHの特徴、メリットとは?
DWH の最大のメリットは、データ収集および処理を効率化・高速化できることです。企業が保有する様々なデータを集積し、列と行が整理された状態(構造化データの状態)で一か所に保管することができます。構造化データで格納されるため、SQLなどのデータベース操作で用いる言語で分析が可能であることはもちろん、機械学習などの分析機能も付加されており、DWHだけでデータ分析業務の大半を担うことが可能です。
DWHの機能とは?
DWHの基本的な機能について記載していきます。
- セキュリティ機能
まず、DWHはデータを格納するシステムであるため、場合によっては個人情報などのデータも格納されることがあります。そのような場合でもセキュリティを担保できるように、データの暗号化機能や閲覧権限の管理機能などが備わっています。 - 分析機能と連携機能
SQLやその他のクエリー言語で分析できるようなインターフェースを備えている場合が多いです。また、分析済みのデータをダッシュボード等で表示したり、他のシステムへ連携する、といった機能が備わっています。 - スケーラビリティ
DWHには、分析のためのあらゆる種類のデータが格納されています。また、保管するデータは時間の経過とともに増加していき、場合によってはペタバイト級(テラの1000倍)やエクサバイト級(テラの100万倍)まで容量が増えていく可能性があります。このような変化に対して柔軟に対応できる拡張性が求められます。
AWSのDWHの代表的ツール Amazon Redshiftとは?
Amazon Redshiftとは、AWSが提供するデータウェアハウスサービスです。データを1列ずつ処理する「カラム志向」のデータベースであり、並列コンピューティング機能(同時に複数の演算装置で分析を行う機能)をサポートしており、大容量のデータを高速で分析することが可能です。
また、構造化データだけでなくJSONやParquet(効率的なデータの保存と検索のために設計された、オープンソースの列指向データファイル形式)といった、データ分析で高頻度で利用されるデータの形式にも対応しています。
高速、低コストで実現するスタイルズのAWSによるBI・DWH・データレイク構築サービスはこちら→
Amazon Redshiftのメリット
Amazon Redshiftは他のオンプレミスで構築するDWHにくらべて、下記のメリットがあります。
- 高速な分析
- AWSの他サービスとの連携
- オンプレミスよりも低コスト
それぞれの機能について、具体的に見ていきましょう。
高速な分析
Amazon Redshiftは、先述したカラム志向の仕組みや並列コンピューティングに加え、AQUA (Advanced Query Accelerator) と呼ばれる高速分析機能を使用することができます。この機能は、Redshiftのストレージに記憶される高速キャッシュであり、データブロックの利用頻度、ワークロードパターンなどを記憶しておくことで要件に応じた高速分析を可能にします。これにより、他のデータウェアハウスよりも最大10倍高速なクエリパフォーマンスを提供する、とされています。
AWSの他サービスとの連携
AWSのサービスであるため、他のサービスとの連携がシームレスに可能です。例えば、セキュリティ面であればAWS Key Management Service(KMS)などの暗号化機能や、IAMによる権限管理、CloudTrailによる監査ログの取得といったことが可能です。
また、バックアップを安価なS3に保存しておく、またはS3からデータをロードするといったことも可能です。
オンプレミスよりも低コスト
ペタバイト級のオンプレミスDWH製品と比較すると、約1/2~1/10のコストで利用することが可能となっています。加えて、リザーブドインスタンス(1年または3年間の利用を前払いするプラン)を利用することでさらに安価に利用することが可能です。
Amazon Redshiftのノードタイプ
Amazon Redshiftには、「ノードタイプ」という概念があり、以下3種類のいずれかになります。
- DC2インスタンス
DC2インスタンスは、各コンピューティングノードが個別のSSDストレージを持つタイプで、データ処理の独立性が高まりパフォーマンス向上につながります。
- DS2インスタンス
DS2インスタンスは、各コンピューティングノードが個別のHDDストレージを持つタイプで、速度面ではSSDを採用しているDC2インスタンスに及ばないものの、より大容量で構築することが可能です。ただ、RA3インスタンスの登場により、利用するケースはあまり考えられません。 - RA3インスタンス
最近登場したタイプであるRA3インスタンスは、データ処理とストレージを独立させています。各ノードは個別のストレージを持たない代わりに、RMS(Redshift Managed Storage)を共有利用します。RMSは、Amazon S3のデータ領域を内部的に利用しており、ノードが軽量なため拡張性に優れ、必要な処理能力に応じたスケールアウトが容易です。また、アクセス頻度が高いデータは「AQUA」と呼ばれるキャッシュ領域で高速処理されます。
サーバーレスオプションも登場
2022年7月には、サーバーレスオプションがリリースされています。これまでは複数のインスタンスをクラスターとして構築し、分析を実施していましたが、サーバーレスオプションはクラスターの構築が必要なく、すぐに分析基盤として利用が可能です。
Amazon Redshiftの料金
Redshiftは他のAWSサービスと同様、従量課金制の料金体系です。具体的には、下記の項目により課金が実施されます。
- インスタンスタイプによる課金
こちらは、EC2と同様です。インスタンスタイプに応じて、1時間当たりの起動時間に課金がされます。 - RA3インスタンスにおけるRMS
RA3ノード付属のRedshift Managed Strage(RMS)のストレージ容量合計に対して課金がされます。 - サーバーレスオプションの場合
実行した処理の分析時間を秒単位で支払います。ただし、60秒の最低料金があります。
高速、低コストで実現するスタイルズのAWSによるBI・DWH・データレイク構築サービスはこちら→
S3を直接参照するAmazon Redshift SpectrumとAthena
AWSには、S3に格納されたデータを直接SOLで分析することができるサービスがあります。Amazon Redshift SpectrumとAthenaです。違いを列挙すると、下記の通りです。
分析エンジンの自由度
Redshift Spectrumでは分析で利用するリソースを利用者側でコントロールすることができます。一方で、Athenaの場合はAWSが自動的にリソースを割り当てます。したがって、Redshift Spectrumはパフォーマンス面ではAthenaより安定しており、高速で分析を行うことができます。一方でAthenaは割り当てられたされたリソース上で実行されるため、ピーク時には遅くなることがあります。
サーバーレス
Redshift Spectrumはクラスタ管理を必要としますが、Athenaはサーバレスアーキテクチャとして実行でき、運用負荷が非常に少なく利用できます。
よりデータベースのように扱えるAmazon Redshift Spectrum
S3に対してクエリを行うために、S3に格納されているデータをテーブルとして定義する必要があります。その際の難易度は若干Athenaのほうが高いです。Athenaは「Presto」という技術を使っており、テーブル定義の記載がAmazon Redshift Spectrumよりも数行多く必要になります。
したがって、分析を行う対象のデータ容量が非常に大きい場合や高速に分析を行いたい場合、または複雑なクエリを実行する場合はAmazon Redshift Spectrum、シンプルな分析を行いたい場合はAthenaが向いていると考えるといいでしょう。
まとめ
DWHの重要性や、AWS上でDWHを構築したい場合に利用されるRedshift、同Spectrum、Athenaについて記載しました。DWHはデータ分析のためのサービスであり、それ自体価値を生むことは少ないため、安価かつ高速にデータ分析が可能な状況を構築すること何よりも重要です。どのように使っていくかについては、専業のベンダーに相談してみてもいいでしょう。