データレイク解説シリーズ 第 3 回: AWS でデータレイクを作ってみよう

2020-05-11
ビジネスxクラウド

Author : 上原 誠

この連載記事のその他の記事はこちら

こんにちは、AWS 上原です。私を含めた AWS 社員 4 名で執筆準備中のデータレイクの書籍をベースに、全 4 回でそのエッセンスをお伝えする連載の第 3 回をお届けします。今回のテーマは「データレイクを作ってみよう」です。

書籍の後半部分はハンズオンの構成になっています。その中で私が担当した 5 ~ 9 章は、初めての方にも簡単にデータレイクが作れるように、わかりやすさに重点を置きなるべく画面キャプチャをふんだんに載せて執筆しました。どなたでも迷わずデータレイクを初めて行けます。

前回はデータレイクのアーキテクチャーについて説明しました。データレイクは以下図のように「収集」「保存」「変換」「分析」の処理パートがあります。データレイクへの「保存」とデータレイクを中心とした「収集」「変換」「分析」の処理を切り離すことで、ストレージと処理能力を別々に最適化することができ、柔軟なクラウドリソースをうまく活用することができます。

5 ~ 9 章では、用意されたビジネスデータを使うので「収集」の部分は登場しません。用意されたビジネスデータを「保存」「変換」「分析」していきます。そこで活用できるいくつかの AWS サービス (図の赤丸) を、書籍で実践した内容を踏まえて簡単に紹介していきます。

図 1 : データレイクの処理コンポーネント

まずはデータの可視化をしてみる

地味な作業から初めていくよりも、まずは手っ取り早くデータから得られる価値を感じましょう ! と思い最初に可視化を持ってきました。
扱うデータは誰でもイメージしやすい販売履歴のデータです。活用する AWS サービスは、データを可視化するズバリなサービスの Amazon QuickSight

書籍では QuickSight を使い、手元にあるファイルをアップロードしてそれをすぐに可視化しています。豊富な種類のグラフから任意のグラフを選択し、表示の粒度を変えたり範囲を絞り込みダッシュボードを作っていきます。以下の図では色による地域ごとの売上分布や、全体的に堅調に売上が伸びていることがわかりますね。他にもフィルタリング、ドリルダウンなどベーシックな機能を使いデータ分析します。さらには、ある時期にどの商品が売上に大きく貢献したか確認する寄与率分析、年内までにどのくらい売上が伸びるのか機械学習を使った予測分析などを行っています。

あと、大事なことはデータ分析による価値を多くの人が享受できるようにすることです。多くの社員がこのような分析を行うことで、その価値をビジネスに活かすことができます。QuickSight にはそのための機能として、メールによるレポート送付, ダッシュボードの共有, 自社サイトへのダッシュボードの埋め込みなどがあります。また、QuickSight のライセンスモデルも多くの人が使いやすいユニークなものになっています。

今回の QuickSight の使い方はデータレイクと直接関係ない内容になっていますが、Amazon S3 にあるデータや様々なデータストアに接続することでデータレイクの可視化に役立てることができます。

図 2 : QuickSight のグラフ

クリックすると拡大します

サーバーレスで SQL 分析

SQL を使える人は多くいらっしゃいますよね ?
SQL を使って手軽に手間なく分析を初めたい ! と言う声が聞こえてきそうなので、次は "サーバーレスで SQL 分析" です。
扱うデータは先程と同じ販売履歴データです。活用する AWS サービスは、Amazon S3 内のデータを標準 SQL で簡単に分析できるインタラクティブなクエリサービスの Amazon Athena !

書籍では次の流れで Athena を使っていきます。準備として S3 にデータをアップロードし、Glue クローラーを使い S3 内のデータからスキーマなどのメタデータを自動作成します。これで準備は完了 ! あとは Athena で SQL による分析を行うだけです。以下の図では、Athena のクエリエディタに SQL 文を記述し [クエリの実行] をクリックすることで、販売履歴データから "日本での売上の高いプロダクトのトップ 10" を表示しています。他にも、ビューの作成や CTAS による簡単な ETL などの操作を行います。

このように Athena は、データレイクとなる S3 上のデータに対して直接 SQL クエリを実行できるサービスです。様々なデータ活用が想定されるデータレイクで、すぐに手軽に SQL によるデータ操作が行えるため、データレイクらしいサービスと言えます。

図 3 : Athena のクエリエディタ

クリックすると拡大します

サーバーレスでデータ変換処理

図 4 : ETL 処理

クリックすると拡大します

データ分析をする際、元となるデータが分析に適した状態とは限りません。というか多くの場合分析に適した状態にはなっていません。例えばデータに欠落があったり、秘匿性の高い情報が含まれていたり、データ容量が膨大であったりします。データをそのままの形で分析すると、データに欠落があり正しい分析結果が得られない、秘匿性の高い情報が見られてしまう、データ容量が膨大なため分析処理に長時間かかりイライラしてしまう、などが起こります。このため、多くの場合事前にデータを分析に適した形に変換する処理を行います。ここでは "サーバーレスでデータ変換処理" を紹介します。
扱うデータは Amazon.com マーケットプレイスのレビューデータセットです。活用す るAWS サービスは、サーバーレスで Spark や Python を実行でき主に ETL の役割を担うサービスの AWS Glue !

Glue は ETL 処理のアプリケーションコードを自動生成することができますが、独自の処理を自由に記述するこもができます。細い内容はここでは書きませんが、書籍では Glue により秘匿性の高い情報の伏せ字処理 (マスキング処理)、データの圧縮、パーティション化、フォーマット変換などの変換処理を行います。これにより秘匿性を守りパフォーマンスのよい分析を実現しています。

Glue は図のように多くのデータストアに対応しています。任意のデータストアを入力とし、任意の変換処理をし、任意のデータストアに出力することができます。データレイクにおいて、要件に適した分析ツールごとの必要なデータ変換処理に Glue を役立てていくことができます。

クラウドでのデータウェアハウス

より大容量のデータを分析するにはデータウェアハウスが役立ちます。データウェアハウスというとセットアップや運用に手間がかかるイメージがあるかもしれません。次は "クラウドでのデータウェアハウス" です。
扱うデータは今までより容量が大きめな発注履歴データです。活用する AWS サービスは、AWS のデータウェアハウスである Amazon Redshift !

書籍では、初めにノンチューニングで Redshift を使って発注履歴データを分析します。次に、Amazon 独自の AZ64 による圧縮, ソートキーによるゾーンマップの活用などのチューニングを行いパフォーマンス効果を確認しています。

後半では、Redshift から S3 にデータをエクスポートし、Redshift と変わらないインタフェースを提供する Redshift Spectrum を使って S3 上のデータにクエリします。また、エクスポートしたデータは、Athena や S3 Select など他のサービスからも活用できることを確認しています。

従来、データウェアハウスへのデータの流れは一方的でデータの終着点になっていました。Redshift はデータレイクである S3 にデータを出し入れができます。あまり参照されなくなったデータをデータレイクにエクスポートすることで、必要に応じて Redshift からデータレイクに直接クエリしたり、他の分析サービスから参照することもできます。この考え方はレイクハウスアプローチと呼ばれ、データレイクを力強いものにします。

図 5 : レイクハウス

クリックすると拡大します

まとめ

第 3 回では、「データレイクを作ってみよう」と題してハンズオンシナリオを元にいくつかの AWS サービスを紹介しました。データレイクの処理コンポーネントに対して、AWS の各サービスを組み合わせていく考え方は AWS らしくもあり、クラウドの柔軟性を大いにいかすことができます。また、データレイクを彩る AWS サービスは今回登場したもの以外にも数多くあります。やりたい分析に応じて適したツールを使っていきましょう。

では第 4 回をお楽しみに!

この連載記事のその他の記事はこちら


builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

プロフィール

上原 誠
アマゾン ウェブ サービス ジャパン合同会社
シニアソリューションアーキテクト

主に ISV / SaaS のお客様に対する技術支援を担当。技術的な得意 / 興味領域としては、アナリティクス系テクノロジー、広告系ソリューション、Aerospike など。最近 Netflix であだち充のクロスゲームを見て感動しました。

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する