データオーケストレーションという言葉を聞いたことがあるでしょうか?
本記事では、データオーケストレーションという言葉にあまり馴染みがない人に向けて、データオーケストレーションとは何か、その意義、よく課題となることについて説明し、そして実践するためのツールやサービスとその導入事例を紹介できればと思います。
データオーケストレーションとは?
オーケストレーションという単語はあまり日常では耳馴染みがないかもしれません。楽団を指すオーケストラという言葉の派生語であり、さまざまな要素を組織化、編成することを意味します。
このオーケストレーションを含むデータオーケストレーションという言葉について、たとえば、データとAIの企業DatabricksやMonte Carloではこのように説明しています。
Databricksデータオーケストレーションとは、複数のストレージからサイロ化したデータを取り出し、組み合わせて整理し、分析に利用できるようにするための自動化されたプロセスです。このプロセスでは、レガシーシステム、クラウドベースのツール、データレイクといったあらゆるデータセンターが接続されます。データは標準形式に変換されるため、理解しやすく、容易に意思決定に利用できます。
Monte Carlo:
これらの定義の共通点を抽出すると、
データオーケストレーションの源流は、ジョブ管理ツールにあります。昔から大企業では、ツールを用いてサーバー上で行われる処理をうまく連携させて業務を管理していました
しかし、当時はツールが高価だったこともあり、共通化された方法が広く普及することはありませんでした。2010年代になると、Apache OozieがOSSで登場しました。コスト面での障壁が下がりましたが、OozieはHadoop上で動作するソフトウェアだったため限られた環境でしか利用できませんでした。
その後、大量のデータを扱う技術が発展し普及することで需要が増え、さまざま汎用的に扱えるジョブ管理のためのソフトウェアが生まれました。2014年にAirbnbが開発したApache Airflowは、さまざまな企業に利用され、現在は複数のクラウドベンダーによってサービス化されています。
そして現在においても、データ活用の環境の変化とともに、さまざまなタスクの中でもデータにまつわる処理をサポートするようなジョブ管理をするソフトウェアやサービスが生まれ、その結果データオーケストレーションという概念が使われるようになってきたという状況になります。
Apache Airflowなどは、汎用的にジョブの管理ができるものであるため、
データマネジメントにおけるデータオーケストレーションの役割と意義
次に、データマネジメントとの関係性を考えてみます。データマネジメントとは、データのライフサイクル全体を管理し、データを活用できるように維持・
たとえば、
- データの収集・
保存 - データの統合
- データの加工
(前処理・ 加工) - データの活用
(分析・ 配布)
などのプロセスがあります。
その他にも、信頼できるデータとその利用環境を維持し続けるには
- データ品質管理
- メタデータ管理
- データセキュリティ管理
などのプロセスも必要になるでしょう。
さらに、これらのプロセスはすべてが独立してばらばらに実行されるものではなく、それぞれ相互に依存関係を持ちます。
たとえば、毎日更新されるデータがあったときに、そのデータを日々の分析に利用するにはその更新が終わったタイミングでデータ統合プロセスを行わないといけません。そして、毎日の集計プロセスは必ずその日のその統合プロセスが終わった後に実行されなければなりません。また、品質を管理するためのプロセスもデータが更新されたあとに実行されなければ正しい品質評価のレポートが出せません。
そのため、包括的にこれらのプロセスを自動化するときには、それらの依存関係を正しく把握し、きちんと計画する必要があります。
データオーケストレーションの役割は、データを処理するプロセスの依存関係を正しくシステムの上で表現しながら、それらを自動化し、効率よくデータを管理することでデータの活用を促進することと言えるでしょう。
このようなプロセスをすべて手動で人が作業・
逆に言えば、データオーケストレーションが上手く実現できていないということは、サイロ化したデータにより非効率なデータの管理がなされ、信頼できないデータにより間違った意思決定が行われたりそもそもデータを業務に活用できないなどの状況が発生しているということです。
また、DXという言葉が使われるようになってから久しいですが、オンライン上の顧客接点の重要性は増しています。オンラインの接点が増えることで、登録情報とユーザの行動ログをデータとして企業内に保持し、さらに取得コンテンツの推薦などデータの活用場面が増えるため、プロセスを自動化したいニーズも増しています。
つまり、データ活用のプロセスを効率化し、組織全体で正しいデータに基づいた意思決定を実施し、顧客体験を向上させるためには、データオーケストレーションは不可欠といえます。
データオーケストレーションにまつわる課題と解決策
以下では、データオーケストレーションを実践していくなかで、よく課題になることとその解決策について、技術、運用、組織の3つの観点から考えてみます。
技術面
一企業内においても、データの種類や活用場面はさまざまあります。そのような多様な要件を取りまとめて適切なツールやサービスを選択するには、技術やツールの理解が要求されるでしょう。現代にはデータ処理・
こうした課題をお持ちの方に向けて、この後の章でツールやサービスも具体的にご紹介したいと思います。また、弊社メンバーによって定期的に更新しているニュースレターのData Engineering Newsや、オンライン勉強会のData Engineering Studyなどで提供される情報でキャッチアップいただくのは1つの解決策になるかもしれません。
運用面
データ活用のためには、さまざまなデータ関連ツール・
また、定常的なデータ処理がエラーになると業務や経営に重大な影響を持つこともあります。そのため、データパイプラインの継続的なモニタリングが必要になったり、障害発生時の迅速な対応が求められたりすることもあり、そのための体制作りも必要になってきます。
運用面の苦労を軽減させるには、まずSaaSのようなマネージドなサービスを使って仕組みを整えると良いでしょう。また、ツール選定の際に、運用をサポートする機能が充実しているツールやサービスを選択すると良いでしょう。
たとえば、APIが提供されているかもしくはコードによる管理が可能か、問題が発生したときのアラート機能や通知機能があるか、問題のリカバーをする際の手動実行やバックフィルなどの機能が充実しているか、などを確認しながらツール選定をすると良いでしょう。また、サポート面の観点でも日本語のサポートが可能か、ドキュメントが充実しているかなども確認が必要なポイントになると思います。
組織面
業務のさまざまな場面でデータ活用を進めるには、組織全体におけるビジョンや戦略が必要になります。
それを推進するリーダーが不在で、いわゆるIT基盤のようなものはコストセンターと捉えられてしまい投資が進まない、という話はよくあるものかと思います。また、現場レベルでも適切にツール選定、システムを設計できる人材は市場にも多くはないため、長期的に採用・
組織面の課題は現場の人たちの対応では解決しないことも多いかもしれません。まずは、データマネジメントに投資をしてデータ活用することが組織に価値を提供する活動であることを認められることが重要です。スモールスタートで少しずつ成果を積み上げて社内での適用範囲を広げていきながら、組織の中でプレゼンスを上げていくような地道な努力を続けていくことが大事になるでしょう。
一方、トップダウンで始まるようなプロジェクトに携わる場合は、期待される成果と長期的な方針について早いタイミングで意思決定者に提供し、合意を得ることで期待値コントロールをするような動きが重要になります。
データオーケストレーションを実現するためのサービス紹介
次に、データオーケストレーションを実現するためのツールやサービスについて紹介します。
それらが満たすべき基礎的な要件としては、
- 定期的にデータを処理するためのタスクを実行できること
- それらの依存関係を記述でき正しい順序で実行できること
が挙げられます。
たとえばLinuxのcronはタスクの定期実行の機能を備えていますが、タスク間の依存関係の記述は行えないため、それ単体ではデータオーケストレーションを行うことはできません。
また、ツールやサービスはそれぞれに異なる特徴を持っており、強みが異なっています。そのため、ツールの導入の際にはユーザの要件や環境によって適切なツールを選ぶ必要があります。
下記では、データオーケストレーションの実践に使われるツールやサービスをいくつか簡単に紹介をします。
Apache Airflow
Apache Airflowは、データパイプラインのスケジューリングとモニタリングを行うためのOSSです。Pythonを使ってワークフローを定義し、複雑なETL処理を管理することができます。また、AWSではAmazon Managed Workflows for Apache Airflow、Google CloudからはCloud Composerなど、クラウドベンダーによりマネージドサービスとしての提供もされています。
強み
- スケーラビリティ:Kubernetesでの処理の実行サポートなど実行基盤のスケールに対応可能で、多数のタスクを効率的に管理できる
- 拡張性:プラグインシステムを用いて、さまざまな定型処理をサポート
- 情報が豊富:活発なオープンソースコミュニティに支えられており、多くの情報がある
Dagster
Dagsterはデータパイプラインの開発、テスト、デプロイメントを支援するフレームワークを持つOSSです。
強み
- アセット中心のオーケストレーション:タスクの実行だけでなく、テーブル、ファイル、ML モデルなどのデータアセットの管理を重視しており、デバッグがより楽にできる
- 堅牢な構成管理:実行時にパラメータの受け渡しをサポートする構成システムを提供し、環境に応じたデータパイプラインの管理が容易になる
- 高い可観測性:包括的な運用の可観測性を提供しパフォーマンスとデータ品質の可視性を高められる
dbt Cloud
dbt Cloudは、SQLを使用してデータモデルを構築し管理するdbtというOSSをサービス化した、データ変換のための開発・
強み
- SQLを中心とした管理:データアナリストやエンジニアが容易に使用でき、またjinjaテンプレートを使うことでSQLを動的に生成し柔軟なデータモデルの構築ができる
- CI/
CD :テスト、ドキュメント化、バージョン管理が組み込まれており、CI/CDパイプラインとの統合が容易 - ビジュアルインターフェース:データリネージや依存関係の可視化が簡単に行える
Metaflow
MetaflowはNetflixによって開発された、複雑な機械学習パイプラインの管理のための OSS です。
強み
- 簡単な操作性:データサイエンティストがPythonコードの中でワークフローを簡単に定義・
実行可能 - スケーラビリティ:AWSとネイティブに統合されており、クラウドリソースを活用してスケール可能
- 堅牢なトラッキング:各実行のデータと結果を自動的に記録し、再現性を確保できる
TROCCO
TROCCOは、筆者の所属する株式会社primeNumberが提供している、さまざまなデータソースとの連携に強みをもつ日本発のデータ基盤の総合支援SaaSです。
強み
- 多様なデータソースとの連携:データベース、クラウドストレージ、SaaSなど、さまざまなデータソースとの接続が簡単
- ノーコード
(ローコード) :コーディング不要でデータパイプラインを構築・インターフェース 管理できる直感的なUIを提供している (一部SQLが必要) - 日本企業でのさまざまな利用要件をサポート:日本国内のビジネス環境やニーズに最適化された機能とサポートを提供
データオーケストレーションの実践例
最後に、上記に紹介したツールを使用してデータオーケストレーションを実践している事例のうち、TROCCOを使用したものについて紹介いたします。
TROCCO:MonotaROの事例
EC企業であるMonotaRO社は、TROCCO導入時、インハウスでWeb広告運用とデータ分析を行っていましたが、以下の課題を抱えていました。
- 広告媒体からのデータ収集・
分析のためのパイプライン構築・ 維持にデータエンジニアのリソースが必要だった。 - 広告媒体のAPIバージョンアップへの対応が必要で、エンジニアの負担となっていた。
- データパイプラインの構築に時間がかかり、1件のレポートパイプライン構築に数週間を要していた
TROCCOを導入したことで、以下の成果が得られ、データパイプラインの効率化に成功し、データの透明性とアクセシビリティを高めたことで、データを基盤とした意思決定がさらにスムーズになり、マーケティング戦略の精度が飛躍的に向上しました。
- 非エンジニアのマーケターでもデータ収集・
移行が可能になった。 - データパイプラインの構築時間が従来の1/
3に短縮された。 - 広告媒体のAPIバージョンアップへの対応が不要になり、エンジニアリソースを他の重要プロジェクトに振り向けられるようになった。
- データインフラのエラーによる停止がなくなり、安定性が向上した。
- ワークフロー機能とSlack通知を活用し、効率的なデータ転送と問題対応が可能になった。
補足にはなりますが、株式会社primeNumberでは最近
まとめ
本記事では、データオーケストレーションとは何か、その意義、よく課題となることについて、そしてデータオーケストレーションを実践するためのツールやサービスと事例を紹介しました。生成AIの勃興などもあり、今後もデータ活用を取り巻く世の中の流れは変化し続けるでしょう。データオーケストレーションは、まだまだ日本では浸透していない用語ですが、データの活用場面が増大するなかでますますその役割は重要になるはずです。
本記事が、少しでも皆様のデータ活用の実践にお役に立てれば幸いに思います。