なぜETLツールでジョブ定義はExcelなのか?
ExcelTLは、従来のETLツールと一線を画す独自のアプローチを取っています。多くのETLツールでは、ジョブ定義をGUIベースのワークスペースで行いますが、ExcelTLではジョブ定義をExcelという非常に馴染み深いツールで行っています。なぜETLツールでExcelを使うのか、その理由と背景を詳しくお伝えします。
トライアル版を登録 https://www.furucrm.com/exceltl#contact
利用マニュアル https://www.furucrm.com/exceltl/usermanual
ETLツールの進化と、ジョブ定義の課題
9ヶ月前、私は大型案件の支援を始めました。顧客管理やサービス系システムだけでなく、基幹システムとの連携が求められ、数十本のETLバッチジョブやAPIの構築に関わりました。私はソフトウェア業界で18年以上の経験を持ち、これまで連携開発やバッチジョブ構築を中心に行ってきました。その中で、多くのミドルウェアツール(DataSpider、MuleSoft、Talend、自前構築)を導入し、支援してきました。
従来のETLツールの課題
多くのETLツールでは、ジョブ(タスク)の定義はドラッグ&ドロップで行えるGUIベースのワークスペースを提供しています。ユーザーは、連携元・連携先、データ変換の処理部品を視覚的に配置し、ジョブを構築します。この方法は直感的で見やすいものの、複雑なジョブを組み立てる際にはいくつかの問題点が浮き彫りになります。
-
GUIが複雑になりがち:ジョブの部品が多くなると、並べ替えや整理が困難になります。
-
内部ロジックの可視化が難しい:レビューを行う際、内部ロジックの変更が一目でわからないことが多く、文脈をつかみにくくなります。
-
処理方向の分岐が多くなるとGUIが複雑化:多くの分岐を持つフローが複雑になると、GUI自体が逆に理解しづらくなります。
これらの問題から、ETLツールのGUIを使ったジョブ定義には限界があると感じました。
自前でETLツールを作成する決意
10年以上前、私はETLツールの開発を考えたことがありますが、一人で実現するのは無理だと感じ、諦めました。しかし、Vibe Codingの流行や運用支援、構築支援に関わる中で、ジョブ定義が非常に大変だという認識が強まり、再び自前でETLツールを作ろうと決意しました。
GitHub Copilotを活用し、アーキテクチャ設計やモック(デモ版)の作成を1週間連続で行いました。その中で特に悩んだのが、GUIの設計です。従来のETLツールのように、ドラッグ&ドロップ式のGUIを作るかどうかで迷いましたが、これを作成するには膨大な工数がかかり、テストなども困難になることが予想されました。また、生成AIの解釈が難しいため、直感的なジョブ定義GUIを作るのは諦めました。
ExcelTLのアプローチ: Excelをジョブ定義に活用する理由
最終的に、私がたどり着いた結論は、ジョブ定義をExcelを使って行うことです。以下の理由から、Excelが最適だと考えました。
ExcelTL事例: https://youtu.be/YRRF5gN-ix8
1. ツールの普及度と親しみやすさ
Excelはエンジニアに限らず、一般的なユーザーにも非常に馴染みが深いツールです。ほとんどの人が日常的に使っており、誰でも手軽にジョブ定義を行うことができます。
2. 構造体で定義しやすい
ジョブ定義はステップごとに何をするかを定義します。Excelの表形式(縦横の構造)は、人間が自然に理解しやすく、ジョブの内容を明確に記述するのに適しています。直感的に読みやすい構成であり、複雑なジョブを視覚的に整理できます。
3. AIの解釈しやすさ
AIにとっても、Excelの構造は非常に解釈しやすいものです。ExcelTLでは、ユーザーがExcelにジョブの内容を入力することで、AIアシスタントがその内容を解釈し、自動的にジョブを生成します。このアプローチにより、ユーザーがジョブ定義に関する細かな技術的知識を持っていなくても、簡単に操作ができるようになります。
4. 低い構築コスト
Excelを活用することで、ジョブ定義のためのGUIや専用ツールの構築にかかるコストが大幅に削減できます。また、Excelは汎用的なツールであるため、将来的な拡張性や他ツールとの連携が容易です。
ジョブ定義のイメージ
以下の画像(スクリーンショット)を見ていただければ、ExcelTLでのジョブ定義がどのように行われるかイメージできると思います。
まとめ
ExcelTLは、従来のETLツールのGUIに代わり、Excelという誰でも使いこなせるツールを活用してジョブ定義を行うという革新的なアプローチを採用しています。これにより、ユーザーは直感的にジョブを定義でき、AIがその定義をもとに自動でジョブを生成することが可能になります。このアプローチは、特に複雑なジョブを扱う際に非常に有効であり、将来的にはさらに多くの業務プロセスを効率化できる可能性を秘めています。