最適な意思決定支援を下支えする、クラウドデータウェアハウスAmazon Redshiftとは

企業活動において、ITシステムや計測機器を使って取得したデータの活用が進んでいます。複数の部門や場所で収集したデータを、個別業務で利用するだけでなく、組織全体で統合・共有して、価値を見出すことを目的とした取り組みが増えてきました。AWSの「Amazon Redshift」は、組織内のデータを集めて分析・加工し、あらたな洞察を得ることを支援するサービスです。本コラムでは、企業のデータマネジメントをサポートするこのサービスについて説明します。

データマネジメントをサポートする集計・分析サービスAmazon Redshift

現在の企業活動では、ITシステムや計測機器を使って取得したデータの活用が大きな役割を担っています。たとえば顧客とのやり取り、物資の仕入れや販売といった取引、計測機器からの情報、従業員の活動や役割など、企業ではさまざまなデータを集めて利用するシステムが使われています。

近年では、集められたデータを、個別の業務で使うだけでなく、組織全体で統合して、そのデータから何かの価値を見出だそうとする取り組みが増えてきました。そこでは、企業内で取り扱うデータを収集・整理し、誰がどのように利用するかといった、包括的な管理のための取り組みの必要性があり、「データマネジメント」を行うためのさまざまなツールや手法が利用されてきました。

データマネジメントではデータを資産としてとらえ、データ資産を統制、保護、向上するための方針や計画を実行していく活動と定義されます。データマネジメントは単なるITを利用した活動ではなく、社会環境の変化に対応するなど、ビジネス上の課題を解決するための継続的な取り組みなのです。

ビジネスにおいてさまざまなデータが活用されはじめると、複数の部門や場所でデータベースが生成されます。そして、これらすべてを分析するためには、それぞれを集める必要があります。データベース(構造化されたデータ群)が集められた環境を「データウェアハウス(DWH)」と呼び、基幹システムや個々のデータ取得場所からは独立したデータベースとして構築されます。

2010年代になると「データレイク」が活用されるようになります。これは、構造化されたデータだけでなく、非構造化データをも格納する場所であり、画像や動画などを含む、多様なデータソースから集められたデータを管理し、活用のための前処理を行うための環境です。ビッグデータと呼ばれる、非常に多くの量のデータを扱うために活用されるようになりました。

こうしたデータマネジメントを推進するなかで、データを可視化・分析することにより意思決定をサポートするのが、「BIツール」です。BIは、Business Intelligence(ビジネスインテリジェンス)の略です。AWSでも、BIサービスを提供しており、本サイトの別コラムでもご案内しています。

AWSで利用できるビジネスインテリジェンスサービス別ウィンドウで開きます

Amazon Redshiftは、AWSが提供するデータウェアハウス/データレイクサービスです。非常に多くのデータを蓄積できることに加え、高速にデータ分析を実行できる環境を構築できます。次の図のように、オンプレミス機器やセンサーなどで生成されるデータをコンバージョン(形式を変換)して「Amazon S3」に蓄積し、Amazon Redshiftが集計・分析を行います。その分析結果をBIサービスである「Amazon QuickSight」で可視化して意思決定に活用したり、分析結果をS3に戻して「AWS SageMaker」で機械学習に応用したりする、といったことにより、Amazon Redshiftはデータ活用を下支えするのです。

集約された大量のデータを高速に集計・分析することがAmazon Redshiftの役割

Amazon Redshiftの構造と、ハイパフォーマンスのための技術

Amazon Redshiftは、オープンソースのデータベース管理システム「PostgreSQL」をベースに、データウェアハウスとして機能するよう拡張したもので、さらにAWSのさまざまなサービスと連携ができます。その構造や、ハイパフォーマンスを裏付ける特徴をいくつか紹介します。

入出力、集計、ストレージの3層アーキテクチャ

Amazon Redshiftは、アプリケーションからの処理を受け付ける「リーダーノード」、データをキャッシュして受け付けた処理を並列実行する「コンピュートノード」、そして、特有の形式で保存されたS3バケットの「マネージドストレージ」の構成になっています。すべてのデータはS3にあり、よく利用されるデータはSSDに格納されます。

なお、コンピュートノードを追加することで、パフォーマンスをリニアに向上させることができます。また、コンピュートを自動拡張できる機能も設定できます。

リーダーノードから処理命令を受け取り、コンピュートノードで必要に応じてストレージからデータを引き出して処理を実行。結果はリーダーノードを介して送信される

ディスクアクセスを効率化する列指向ストレージ

Amazon Redshiftの高速な処理を実現するひとつの要素に「列指向ストレージ」があります。データを列ごとに格納することで、処理に必要な列のみを読み取ることができるようにして、ディスクの読み書き頻度を削減しています。行指向のデータベースでは、特定の列のデータだけ欲しい場合でもすべての行にアクセスする必要があり、無駄な読み書きが発生してしまうのです。

列指向スケールでは、必要な列のブロックのみスキャンできるので、読み書き頻度を減らせる

列の特性に応じた効率的なデータ圧縮

パフォーマンス向上のための要素には圧縮もあります。列を圧縮することで、一度のディスクアクセスで読み込む量を増やして速度を向上するアプローチです。圧縮のアルゴリズムは複数あり、列に対して最適な圧縮をかけて確認することができます。

列ごとの特性に応じた圧縮をすることで高い圧縮率を実現する

ソートによるデータスキャンの効率化

Amazon Redshiftで分析のために使われるデータのメタデータはリーダーノードのインメモリ上に格納されており、処理に不必要なブロックは無視するような効率的なアクセスを実現しています。また、データをどのようにソートしていくかをテーブルごとに指定することで処理を効率化していきます。列に対して処理の優先度から、たとえば日付順やID順などに並べ替えてディスク上に保持しておくことで、必要なブロックにすぐに到達できるようにできます。

日付順にソートしておくことで、必要な情報にすぐに到達できる

データ分散化や結果のキャッシュでさらなる効率向上を

Amazon Redshiftでは、処理内容やデータ量に応じて、全ノード内の論理的な処理単位に分散する際の形式を選んで効率化できます。設定した「KEY」に基づいてノード上に分散する、すべてのデータを全ノードが保持する「ALL」、均等分散する「EVEN」、そして、サイズに応じてALLからEVENに自動変換する「AUTO」があります。

たとえば、1万件の名簿を、「ア行」「カ行」「サ行」……と10のグループに分ける場合はKEY分散を使う

このほか、高いパフォーマンスを実現する機能として「結果のキャッシュ」があります。処理を受け付けたリーダーノードのキャッシュに結果が含まれている場合は、コンピュートノードでの処理を伴わずに結果を返す機能です。頻繁に実行する処理のパターンをあらかじめ設定しておくことでさらに高速化をすることができます。たとえば、店舗情報と商品の売上情報を結合した、店舗ごとの売上情報を用意しておくなどの設定が考えられます。

集計・分析対象をデータレイクに拡張できる、Amazon Redshift Spectrum

Amazon Redshiftでは、S3データを演算するためのサーバレスコンピュートリソースである「Amazon Redshift Spectrum」を提供しています。これを使うことにより、Amazon Redshift専用のデータだけでなく、分析対象をデータレイクのデータ形式にも拡張できます。外部テーブルを作成して集計や分析を行えるので、Redshift内のテーブルにはデータを展開することなく、データレイクのデータに直接アクセスして処理できるのです。

集計などの処理を問い合わせて結果を受け取る外部アプリケーションから見ると、データウェアハウスとデータレイク双方にアクセスできることになります。

Redshift内のデータと、外部のS3にあるデータを結合して分析することもできる

Amazon Redshiftが独自に管理するS3の領域を使用するのに対してAmazon Redshift Spectrumではユーザーが管理するS3領域を使います。前者はAmazon Redshiftからしかアクセスできませんが、後者はほかのAWSサービスからもアクセスできます。分析対象となるすべてのデータがデータレイクにあって、Amazon Redshift以外のサービスからも同じデータにアクセスしたい場合はAmazon Redshift Spectrumを使います。

Amazon Redshiftの料金

多くのAWSサービスと同様に、Amazon Redshiftも初期費用不要で利用したぶんだけの課金となります。ストレージやコンピューティングのリソース、データ転送などさまざまな課金要素がありますので、詳細はAWSの公式サイトをご参照ください。

Amazon Redshift の料金
https://aws.amazon.com/jp/redshift/pricing/別ウィンドウで開きます

まとめ

企業がデータマネジメントを推進するなかで、データを分析・可視化して、迅速かつ最適な意思決定を求めています。データの可視化を行うアプリケーションが「BIツール」と呼ばれるものですが、データウェアハウスとしてデータの集計や分析処理を担うのが、Amazon Redshiftです。

Amazon Redshiftは、コンピュートリソースをリニアに増やせる構造に加え、列指向ストレージ、データ圧縮、ソートキーによるスキャン効率化、処理単位ごとのデータの割り当てなどのアーキテクチャにより、高いパフォーマンスを実現しています。

また、社内のさまざまなサービスが活用するデータレイクとしてS3を利用し、そこにあるデータを分析したい場合はAmazon Redshift Spectrumを利用します。

Amazon Redshiftは、目的に応じてさまざまなカスタマイズをすることでより最適な集計・分析環境の構築ができるのです。

移行準備段階で知っておくべきAmazon Web Servicesの
サービスを学び、具体的にクラウド検討を考える!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る