![見出し画像](https://assets.st-note.com/production/uploads/images/144950993/rectangle_large_type_2_68581d9da790289bccaca2d7178b27a9.png?width=1200)
そのETLツール、本当に必要ですか?
Apache AirflowなどのETLツールを使って社内でデータを運用している組織が多いと思います。
でも一度考えてみてください。
そのETLツール、本当に必要ですか?
ETLツールのデメリット
ETLツールのデメリットを3つ挙げてみましょう。
コスト
まずはコストです。
コスト=費用ではありません。
ETLツールを使うときに余計に掛かる時間もコストです。
有償のツールであれば直接費用がかかります。
無償のツールのばあい自分たちでサーバーを構築してその上で運用していると思いますが、人手というコストが必要です。
学習曲線
次に、新しいツールを使いこなすための学習時間がデメリットとしてあります。
どうやって使うかを学ぶための時間は分かりやすいデメリットですが、意外と見落としがちなのが「なぜかツールがうまく動かない」という問題です。
ツール側のバグなのか、仕様上なにか必要な設定を見落としているのか、処理対象のデータに問題があるのか…
ハマると結構な時間と労力と精神力を持っていかれます。
複雑性
最後は複雑性です。
本来データベース一つで良かったところに層がもうひとつ増えるわけですから、当然複雑になります。
ツールで行うことがシンプルならいいですが、そもそも複雑なことをやりたいからETLツールを導入するわけで…
とにかく必要な複雑さだと割り切れるかどうかが大事です。
SQLを使ったETLでは不十分でしょうか?
SQLは多くの人が追加の学習が必要なく使え、比較的シンプルに処理が書け、DBに組み込まれているので新たな層も必要ありません。
まずはSQLだけでどうにかならないか考えてみましょう。
SQLだけだと―
複雑な処理条件を制御するのが難しい
処理失敗時の再実行をじぶんで制御するのがめんどう
いろんなデータソースからデータを持ってこれない
データ品質やデータ処理プロセスの可視化が難しい
データ容量が増えたときの拡張性が乏しい
そんな問題に我慢ならなくなったとき、はじめてETLツールを検討しましょう。
もしETLツールを使うことが決まった場合でも、特定のツールにロックインされてしまわないように注意しましょう。
少なくともデータ処理ロジックをツールに持たせるのはやめてください。
苦労するのは将来のあなたです。
参考
Do You Really Need an ETL Tool? A Deep Dive into Data Transformation with SQL vs. ETL Tools
よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!