はじめに
これまで、法人向け業務アプリ開発の要件定義から実装、テスト、保守サポートまで、一貫して提供してきました。
- 開発業務は、販売管理、メンテサービス、会計、人事給与、購買管理、など幅広く担当。
- 独立後、データ分析基盤構築の導入構築から拡張、データ活用までサポート。
- 個人事業主として2年で6社のデータ分析現場で支援。
その中で、
- 「ETLツールっていつから必要?」
- 「どんなツールを利用すれば良い?」
といったご相談を受けるケースが増えてきました。
この記事では、
- ETLツールの概要
- dbtとDataFormの特徴や機能性
- データ基盤におけるアーキテクチャやデータ整備フェーズ、事業状況からETL製品を選定するためのポイント
がわかるよう記事を整理しております。
これと併せて、DataForm導入現場の経験をもとにETLツールの重要性について共有し、現場での導入選定基準となれば幸いです。
ETLツールとは?
ETL(Extract, Transform, Load)ツールは、データの抽出、変換、およびロードのプロセスを効率化するために設計されたソフトウェアツールです。
まず、"Extract"フェーズでは、異なるソースからデータを抽出します。これらのソースは、データベース、フラットファイル、APIなど多岐にわたります。
次に"Transform"フェーズでは、抽出されたデータをビジネスルールや要件に基づいて変換・クレンジングします。変換の例としては、データの形式の変更、値の計算、エラーデータの除去などがあります。
最後に"Load"フェーズでは、変換されたデータをターゲットのデータウェアハウスやデータベースにロードします。
これにより、分析やレポート作成のためにデータが利用可能になります。ETLツールは、このプロセスを自動化し、エラーハンドリング、スケジューリング、監視などの機能を提供することで、データの一貫性と信頼性を確保し、データ管理作業を効率化します。
dbtとDataFormの特徴
ここでは、ETLツールにおける特にT「Transform」に注目したツールdbtとDataFormの特徴を整理します。
共通的な特徴
- データ変換
- dbtとDataformはどちらもデータ変換のT(Transform)部分をサポートし、データウェアハウス内でデータを効率的に管理し、変換する能力を提供します。
- SQLベースのワークフロー
- 両ツールはSQLを主要なインターフェースとして利用し、ユーザーはSQLを使用してデータ変換ロジックを定義します。
- データ品質の保証:
- 両ツールはデータ品質テストやアサーションの定義をサポートし、データのエラーや不整合を早期に検出し、対処する機能を提供します。
- 依存関係の管理:
- dbtとDataformは、データ変換タスク間の依存関係を管理し、正しい順序でタスクを実行する機能を提供します。
- ドキュメント作成:
- 両ツールはプロジェクトのドキュメント作成と管理をサポートし、データモデルや変換ロジックのドキュメントを効率的に作成、共有する機能を提供します。
- オープンソースとクラウドベースのバリエーション:
- dbtとDataformは、オープンソースのコアバージョンと、クラウドベースのプラットフォームまたはウェブアプリケーションを提供し、ユーザーに柔軟な選択肢を提供します。
dbtの特徴
dbt(data build tool)は、データ変換のワークフローを支援するツールであり、高品質の結果を得ながらより多くの作業を効率的に進めることを目的としています。以下に、dbtの主な特徴と機能について整理します。
- ワークフローの最適化
- コードの再利用とモジュラリゼーション
- dbtを使用すると、ビジネスロジックをSQL selectステートメントまたはPython DataFrameで記述し、dbtがマテリアライゼーション(物理的なテーブルやビューの生成)を管理します。これにより、モジュラーなデータモデルを構築し、それらを後続の作業で参照することができます。
- クエリの実行時間の短縮
- メタデータを利用して長時間実行されるモデルを見つけ、dbtのインクリメンタルモデルを利用してクエリの実行時間を大幅に削減できます。
- DRY(Don't Repeat Yourself)なコードの作成
- マクロ、フック、およびパッケージ管理を利用してコードを効果的に再利用し、重複を避けます。
- コードの再利用とモジュラリゼーション
- 信頼性の高い分析
- 再利用可能なデータモデルの構築
- SQLのコピー&ペーストを避け、再利用可能なデータモデルを構築して、それらを後続のモデルと分析に利用します。モデルを一度変更すると、その変更はすべての依存関係に伝播します。
- データ品質テストの作成
- データのエッジケースが多くの分析エラーの原因となるため、データ品質テストを簡単かつ迅速に作成し、これらのエッジケースを見つけて処理します。
- 再利用可能なデータモデルの構築
- 製品バリエーション
- dbt Coreとdbt Cloud
- dbt Coreはオープンソースツールであり、コマンドラインで利用できます。
- dbt Cloudはdbt CoreをベースにしたWebベースのUIを提供し、dbtプロジェクトの開発、テスト、バージョン管理、および実行を行うためのCLI(コマンドラインインターフェース)を提供します。
- dbtの力
-
- モデル作成の焦点
- dbtユーザーは、コアビジネスロジックを反映するモデル(選択クエリ)を作成することに焦点を当て、テーブルやビューの作成、またはモデルの実行順序を定義するための定型コードを書く必要はありません。dbtはこれらのモデルをデータウェアハウス内のオブジェクトに変換します。
-
- dbt Coreとdbt Cloud
- その他の機能
- コードコンパイラ
- SQLファイルにはJinja(軽量テンプレーティング言語)を含めることができ、クエリ内で制御構造を使用できます。
- モデル実行の順序の決定
- dbtは、データ変換を段階的に実行するメカニズムを提供し、既存のテーブルやビューから選択するのではなく、別のモデルから選択できます。
- プロジェクトの文書化
- dbtは、dbtモデルの文書化を書き、バージョン管理し、共有するメカニズムを提供します。
- コードコンパイラ
これらの特徴と機能を通じて、dbtはデータチームが分析コードをモジュラーかつ集中的に管理し、より高品質で効率的なデータ変換ワークフローを実現することを支援します。
DataFormの特徴
Dataformは、BigQuery、Snowflake、Redshiftなどのデータウェアハウスでデータを管理するプラットフォームであり、データチームが生データを新しいテーブルやビューに変換し、分析に使用するデータパイプラインを構築するのに役立ちます。
主な特徴と機能は以下のとおりです。
- データウェアハウスの操作
- 新しいテーブルやビューを作成するためのSQLコマンドを実行し、テーブルとビューに対してドキュメントを追加することができます。
- データの品質をテストするためのアサーションを定義し、複数のスクリプト間でコードを再利用することができます。
- データのスナップショットを取る、任意のSQL操作を実行する、およびデータモデリングを支援するための準備ができたSQLパッケージを使用することができます。
- 依存関係の管理
- データウェアハウス内で構築する新しいテーブルやビューを定義し、開発する際に、Dataformはすべてのアクションの依存関係ツリーを構築します。この依存関係ツリーはアクションの実行順序を決定し、テーブルが正しい順序で作成および更新されることを保証します。
- プロダクティビティの向上
- Dataformを使用すると、データチームはより生産的になり、全社で使用するためによく定義され、テストされ、文書化された新しいデータテーブルを構築することができます。
- 使用方法
- Dataformは、統合開発環境(IDE)を備えたDataform Webアプリケーションを使用するか、コマンドラインインターフェース(CLI)を使用してローカルで使用することができます。
- Dataformのコアはオープンソースであり、CLIとともに使用することができます。
- ターゲットユーザー
- Dataformは、クラウドデータウェアハウスと対話するデータ専門家向けに構築されています。これには、SQLクエリを書く方法を知っているデータアナリスト、データエンジニア、およびデータサイエンティストが含まれます。
これらの特徴と機能を通じて、Dataformは、生データをビジネスを代表するデータテーブルのセットに変換し、全体の分析を強化するよく定義され、テストされ、文書化されたテーブルを構築するのに役立ちます。
各ツールの認知度
Googleトレンドから、各ツールを比較しました。
直近5年でETLのトレンドが一定なのに対し、dbtが徐々に認知が拡大している状況です。
ただし、認知度でしかなく市場シェア率とは異なりますが、dbtの検討/比較されている方が多いことがわかります。
dbtおよびDataFormにおける導入の選定方針
導入基準
そもそも導入が必要でないケースも多いので、一定のデータ基盤フェーズ以降に検討することを推奨します。
- データ量が一定量存在
十分なデータ量が既にDWH上に存在していない場合、ViewやTableの直接クエリでも十分パフォーマンスが発揮できるケースが多く、ETLツールの導入は検討が必要です。
- データ構造が複雑
複数テーブル、viewの結合が不要で直接クエリで問題なければ、導入は推奨しません。
一定量データがあり、結合が増えた際に検討することを推奨します。
- リソースの制約
導入するための人材やインフラコストのための予算が限られ、他に優先投資先がある場合は、推奨できません。というのも、ある程度導入後にも維持、改修するための作業工数が発生し、インフラのサービス利用料が発生するケースもあるためです。
- アドホック分析のみで良く中長期的な監視が不要
データ分析が一時的または短期的なプロジェクトである場合、このひょうなツールは不要となります。
まとめ
この記事では、法人向け業務アプリの開発からデータ分析支援まで行ってきた経験をもとに、ETLツールおよびdbt、DataFormの選定について解説しました。
データ活用の目的や既存の業務利用システムの整理を行い、課題解決の可否を考慮しながらETLツールを選定することを推奨しています。
さいごに
上記のように初回からデータ分析の現場経験がない状態での導入には時間がかかります。
「外注する場合でも、どのような人に依頼すれば良いか分からない」
「業務に追われ、実際に手を動かせない」
というケースもあるかと思います。
無料でご相談可能ですので、お気軽にご相談くださいませ!
お待ちしております。