一休.com Developers Blog

一休のエンジニア、デザイナー、ディレクターが情報を発信していきます

データ分析基盤、その後

この記事は一休.comアドベントカレンダー2017の20日目です。

データサイエンス部所属のエンジニア 笹島 id:sisijumi です。

今日はクラウド環境へのデータ分析基盤構築にまつわるお話をさせていただこうと思っています。

データ分析基盤の構築に関して

夏にデータ分析基盤を Azure SQL Data Warehouse を中心にした構成で構築

構築はしましたが、残念ながらこの構成での運用には至りませんでした。

一休では元々社内にデータ分析基盤を構築し運用していましたが、運用負荷の増大に伴いその基盤のクラウド環境への移行を進めました。
下記は今年の8月のあるイベントでの発表資料ですが、イベントではデータ分析基盤は Azure SQL Data Warehouse を中心としたものに と話しさせていただきましたが、現状そうはなっていません。

二度の作り直し

実は上記は二度目のチャレンジでした。
一度目は Redshift(AWS), 二度目が Azure SQL Data Warehouse(Azure) へとそれぞれの環境に構築しました。
その環境を利用して実際に分析業務を行っているメンバーに検証してもらい、その結果を受けてさまざまなディスカッションをした結果、作り直し、という意思決定を行っています。

なぜ作り直しという意思決定に至ったのか

いろいろな理由はありますが、最大の要因は実際に分析業務を行うメンバーとのコミュニケーション不足だと考えています。
他社の事例などを参考に構築に関してはエンジニア側で主導しました。自分たちとしてはこうあるべきという絵図を描き、その形をきちんと実現しました。
もちろん構築の途中で分析業務を行っているメンバーにも、こういう構成で作りますという説明は行っていますが、その時点の相互理解が不足していたと考えています。結果として、運用不可を下げるというエンジニアの課題を解決することがメインになってしまい、分析業務を行っているメンバーの求めている形にはなっていませんでした。

それでも二度の構築に価値がなかったとは思っていません。実際にその基盤上で分析業務用のSQLを試してみてもらい、求めているものはこうじゃない、遅い、等フィードバックを通じて相互理解が深められました。

最終的な構成

AWS上にRDSを利用して構築しました。DBのエンジンはSQLServerを利用しています。

f:id:sisijumi:20171220223443p:plain

ついに完成しました。三度目の正直です。やったー

どうしてこの構成になったのか

分析業務に関わるメンバー全員にとってはこの構成が最適だと判断しました。
データ分析を行っているメンバーは今まで通り分析業務が行えます。社内にあったデータ分析基盤はSQLServerがメインになっているものであり、さまざまな業務がSQLServerに最適化されている為です。既存の資産(分析用のクエリ等)が再利用できたり、データ分析業務を行っているメンバーの道具を変える必要が無かったり(例えばSQLServerManagementStudio 等がそのまま流用可能)、さまざまな利点がありました。
また、マネジードな製品を利用することでエンジニアの運用負荷も下げられます。課題としてパフォーマンスに対する懸念はありましたが、列ストアインデックスなどを利用してさまざまなパフォーマンスチューニングを行った結果、現行と同等の性能は出ています。

運用開始

社内のデータ分析基盤を利用していた業務は徐々にクラウドデータ分析基盤に移行していっています。 また、日々のETLの結果も下記のような形でSlackに投稿されています。 今後は安定的にこの基盤を運用していければ良いと考えています。

f:id:sisijumi:20171221011437p:plain

明日は id:aitam による オフサイト・開発合宿に。プロジェクター+ Wi-Fi環境のある宿3選 です。