全4850文字

DXにはデータの統合が欠かせず、その処理に「統合ジョブ管理ツール」が使われる。クラウドの利用が広がるとともに、この分野にもオープンソースソフトウエアの導入が進む。その代表的なサービスである「Apache Airflow」は大容量データの扱いを得意とする。

 DX(デジタルトランスフォーメーション)を推進するうえで、データを効率良く扱うためのデータ統合は欠かせません。統合のための「統合ジョブ管理ツール」は、これまでプロプライエタリー製品およびそれらをクラウドに対応させた製品が多く利用されてきました。現在この分野でもオープンソースソフトウエア(OSS)が使われるようになっています。今回はタスクの依存関係をベースとしたフロー定義が可能で、主要なクラウドプラットフォームとも連係しやすい「Apache Airflow」について解説します。

統合ジョブ管理ツールの必要性

 全てのデータが単一のシステムに保存されているケースは少なく、その傾向はDXを必要とするような企業ほど顕著です。様々なクラウドサービスやSaaS(ソフトウエア・アズ・ア・サービス)の登場で、従来単一の基盤にのみ保存していたデータが外部と連係するようになりました。オリジナルのデータが外部に保存されている状態も珍しいことではありません。

 データの依存関係が複雑になればなるほど、効率の良いデータの扱いが難しくなります。多くのクラウドサービスではデータにアクセスする際、時間がかかるのはもちろん、データの転送にもコストが発生します。

 データを一元的に参照できる環境を用意することによって、データを使用するユーザーは異なるサービスやインフラストラクチャーからデータを取得する際に発生するコストや時間を意識せずに済みます。複数のシステムを扱うことによる学習コストを削減できるため、新規に参画したユーザーが早い段階から効率的にデータを扱えるようになります。

 データを統合する際にはジョブのスケジューリングやモニタリングだけではなく、データの処理や依存関係など多くの要素を考慮する必要があります。そこで検討したいのが統合ジョブ管理ツールの活用です。

 なかでもApache Airflowは大容量データの扱いを得意としています。加えてクラウドサービスやデータベース、「Apache Spark」や「Kubernetes」といった様々なOSSツールとの連係を前提にデザインされています。

大規模データの扱いが得意

 Apache Airflowはワークフローを統制、スケジューリング、監視するサービスで、2015年に米エアビーアンドビーからリリースされました。2019年にはThe Apache Software Foundation(ASF、Apacheソフトウエア財団)によってトップレベルプロジェクトに認定されたOSSです。従来の統合ジョブ管理ツールと異なり、数百ペタバイトに及ぶビッグデータの扱いを前提としています。大規模なデータの扱いを目的としたユースケースに対応できます。

 Apache AirflowはPythonで作成されており、ワークフロー(DAG、後述)もPythonによって定義されます。ワークフローは依存関係の定義が可能なため、複雑なデータ統合処理をシンプルに単一のプログラミング言語で記述できます。Apache AirflowはAmazon Web Services(AWS)やGoogle Cloudといったクラウドサービス、SFTP(SSH File Transfer Protocol)やJDBC(Java Database Connectivity)を使用したデータベースとの接続など外部システムとの連係を前提としています。この特性によって従来のインフラストラクチャーと、クラウドサービスやSaaSを容易に接続できます。

図 Apache Airflowを用いたシステム統合の概要
図 Apache Airflowを用いたシステム統合の概要
従来システムとクラウドサービスを接続
[画像のクリックで拡大表示]