LoginSignup
24
9

More than 1 year has passed since last update.

データ分析基盤の調査及び検証_part.1

Last updated at Posted at 2022-07-14

データ分析基盤の調査及びまとめ

データ分析基盤を構築するのに紆余曲折あったので、まとめていく
Part.1ではOSSツール用いて開発したが、途中で開発を中断した事について書く
Part.2では構築した際に用いたツールについて記載予定

背景

分析基盤が存在していなく、データ分析やAIの開発はローカル環境で実施しており、作業が非効率となっていた

目的

データ分析基盤を作る事で作業のスピードを上げ、DX推進を図る

構成図

ざっくりとした構成図は以下の図の通り
データレイク・DWH・データマートの3層構造でデータ活用を予定

image.png

データ分析基盤を構築する上で、以下3点を調査・検討する必要がある

①:クラウド(DWH)の選定
②:ETLツールの選定
③:ワークフローの選定

調査

DWHの選定 (AWS or GCP どっちなのか?)

分析の要となるDWHを決める必要がある
様々な記事を見る限りどうやらRedShiftとBigQueryが2強らしい(snowflakeは記事が少なかった...)

BigQuery RedShift
環境設定有無
スケーリング オート マニュアル
料金 分析量&ストレージ量に応じた従量課金 コンピューティングリソースに応じた従量課金
データ加工 加工前・後のデータを永続的に保持可能 複雑なパイプラインをサービス上で定義可能
データ連携 サービス内でデータを保存 サービス外でデータを保存

BigQueryのシンプルなUI/UXに惹かれて、BigQueryを採用

ETLツールの選定

DWHは決まったが、データを移送するに何を使えば良いのか決まっていなかったので、洗い出した

提供形態 ツール名 コネクタの機能性 デバックのし易さ
オープンソース Embulk,flutend,Apache Sqoop
有償製品 DataSpider,ASTERIA,Talend
クラウド AWS Glue,AWS DMS,GCP CDF,DCP DMS

有償ツールはどれも定額かつ高額で、作業に対して効果を出せないと感じていたのでOSSを選定
OSSの中でも多くの企業で採用されている? Embulkを採用

ワークフローの選定

Embulk単体だけでは定期的データを持って来れないので、Embulkを動かすワークフローが必要

 ツール名 概要 言語
Apache Airflow (OSS) 定期的(日次)に動かすデータパイプラインの記述に特化 Python
Luigi (OSS) Pythonで書かれたデータフロー制御フレームワーク Python
Digdag (OSS) yamlでシンプルにワークフローを定義 yaml
Prefect(OSS) Luigiの上位互換 Python
Argo (OSS) ジョブをk8s上で動かすよう汎用的に記述 yaml
Kubeflow (OSS) パイプラインを定義しそれらを管理、統合するためのツール Python
Cloud Composer (GCP) Apache Airflowと同様 yaml

Embulkを軸して、参考記事を漁っていたら、記事が多いDigdagを採用

結果

実施したこととしては3つ
①:Embulk単体でデータ移送 (ローカル検証)
→検証成功
 DBデータの移送は非常に簡単! 
 しかし、他アプリケーションに対応しているケースが少なかったので別途でフルスクラッチ開発が必要

②:DigDagとEmbulkを組み合わせてデータ移送 (ローカル検証)
→検証成功
 DigDagとEmbulkはDockerを用いて検証
 DigDagの書き方に慣れる必要があり、保守・運用をするのは現状のメンバーだと厳しい

③:GCP上で②を実装
→検証失敗
 GCEで検証出来たが、費用とセキュリティ面で課題
 Cloud run は仕様理解が足りていなく、検証まで至らなかった

総括

OSSのEmbulkとDiddagを用いて分析基盤を作ろうとしたが、課題が想定以上に多く出たため開発を断念

[課題]
1.費用面
2.セキュリティ面
3.学習コスト面

今後は課題をある程度クリアするために調査を継続していく(Part.2に続きます)

参考

検証するに辺り各サイトを参考にさせていただきました

[選定部分]
https://boxil.jp/mag/a2392/
https://qiita.com/elyunim26/items/15db924e4c9833e5050a

[実装部分]
https://www.m3tech.blog/entry/2020/12/19/110000
https://engineer.blog.lancers.jp/sre/replace-digdag/
https://www.datacurrent.co.jp/column/embulk-on-docker20210519/
https://qiita.com/hoto17296/items/a7d69172050fa9aab045

[公式ドキュメント]
・Embulk
https://qiita.com/hoto17296/items/a7d69172050fa9aab045
・Digdag
https://docs.digdag.io/

[書籍]
実践的データ基盤への処方箋〜 ビジネス価値創出のためのデータ・システム・ヒトのノウハウ
https://amzn.to/3O1DRNW

24
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
9