アナリストに月次の差異レポート作成に時間がかかる理由を尋ねると、ほとんどの人が同じ原因を挙げます。それは、チーム内にコーディングができる人がいないことです。解決策は明白に思えます。Pythonを学ぶか、SQLを習得するか、あるいはデータエンジニアの手が空くのを待つことになります。しかし、こうした解決策では根本的な問題は解決できません。レポート作成に数日かかるのは、総勘定元帳からエクスポートしたデータを完成した差異レポートに仕上げるまでの手順が、あるアナリストの記憶やスプレッドシートのフォルダー、そしてサイクルごとに一から作り直される一連のVLOOKUP関数の中にしか存在しないためです。機械が繰り返し実行できる形でプロセスが記録されていないのです。そして、これはコーディングとは関係ありません。
これが、多くのシニアアナリストが直面している課題です。必要なデータを取得するのに十分なSQLの知識は、すでに身に付いています。データを加工するのに十分なExcelのスキルも、すでに身に付いています。不足しているのは、その作業を一度きりのタスクではなく、繰り返し実行できるプロセスとして保存する方法です。そのため毎月、決算のたびにレポート作成サイクルのたびに同じ作業を一からやり直すことになり、コストは積み重なっていきます。
コードがパイプラインを定義するわけではありません
データパイプラインとは、繰り返し実行できる一連のステップのことです。データを取り込み、クレンジングし、加工して、必要な場所へ出力します。パイプラインと呼べるのは、誰かが各ステップを毎回手作業でやり直すことなく、同じ手順を毎回同じように実行できるからです。コードはそのロジックを記録する方法の一つです。ビジュアルなノーコードキャンバスも、もう一つの方法です。スクリプトを使用しているかどうかは関係ありません。重要なのは、チームが再実行、監査、引き継ぎを行える形で、ロジックが一度定義されているかどうかです。Excelで3日かけて作業をやり直す場合でも、2分間で自動実行する場合でも、まったく同じデータにまったく同じ変換処理を適用できます。唯一の違いは、そのロジックがどこにあるかです。
手法:スクリプトを書かずにパイプラインを構築する
以下では、特定のツールに依存しないプロセスの一例をご紹介します。パイプラインをスクリプトで構築する場合でも、ビジュアルキャンバス上で構築する場合でも、実行するのは同じ5つのステップです。
ステップ1:データが保存されている場所に直接接続する
経理担当者に総勘定元帳をCSVにエクスポートしてメールで送ってもらう代わりに、データソース(データベース、共有ドライブ、クラウドストレージなど)に直接接続します。これにより、人が介在することなく、毎回同じ接続を使用できます。例えば、データ入力ツールを使用すると、ファイル形式、データベース、または「今月の命名規則で始まるすべてのファイル」に一致するワイルドカードパターンを一度指定するだけで、その接続を継続的に再利用できます。
ステップ2:クレンジングのロジックを一度定義する
アナリストは、勘定科目コードの余分な空白の削除、通貨形式の標準化、空白セルと実際のゼロ値をどう扱うかの判断などに、多くの時間を費やしています。しかも、これらはすべて手作業です。データクレンジングのステップを使用すれば、Null値の処理や大文字・小文字の統一など、こうした判断を一度設定するだけで済みます。そのため、決算のたびに記憶を頼りに同じ手順を繰り返す必要がなくなります。
ステップ3:後続の処理に進む前にデータ構造を標準化する
ソースシステムでは、予告なくフィールド名が変更されたり、列が追加されたり、データ型が変わったりすることがあります。入力ファイルが常に同じ形式であると想定するのではなく、列の選択やデータ型を明示的に管理し、データに合わせてフィールドサイズを調整するステップを設けることで、数か月後にパイプラインが機能しなくなるのを防ぐことができます。
ステップ4:誰かが実行を覚えておく必要がないようにスケジュールを設定する
毎月誰かがパイプラインを開いて「実行」をクリックする必要があるのであれば、それは整理されているだけで、自動化されているとは言えません。スケジュール設定をすることで、指定した周期に従ってプロセスが自動的に実行されるようになります。
ステップ5:個人ファイルとしてではなく、インフラストラクチャとしてバージョン管理と監視を行う
パイプラインが自動的に実行されるようになったら、特定の個人だけが管理するファイルのままにしておくべきではありません。つまり、チームの誰もが見つけられる場所に保存し、変更履歴を確認できるようにし、作成者以外のメンバーでも開いて各ステップの処理内容を理解できる状態にする必要があります。これにより、個人のワークフローが、誰が不在でもチームが安心して利用できる資産になります。
運用開始後によくある障害ポイント
最もよくある失敗は、「ノーコード」なら「考える必要もない」と思い込んでしまうことです。例えば、スキーマドリフトがあります。上流工程で誰かが列名を変更すると、古い列名を前提に構築されたパイプラインが機能しなくなったり、そのフィールドが処理から除外されたりすることがあります。2か月分のエクスポートファイルで同じ命名パターンが使用されている場合、ワイルドカードによるファイル照合で誤ったファイルが選択される可能性があります。また、一度構築したまま見直されないパイプラインは、誤ったロジックのままでも実行され続ける可能性があります。手作業のプロセスであれば作業中に誰かが異常に気付く機会がありますが、自動化されたパイプラインには組み込まない限りそのきっかけがないためです。
もう一つ見落としやすい障害が、「正常終了」に見える問題です。スケジュールどおりに実行されたパイプラインが空のファイルや不完全なファイルを処理した場合でも、エラーが発生せず、ジョブが正常に完了したと報告されることがあります。緑色のチェックマークが表示されれば、その結果を改めて確認する人はいないでしょう。パイプライン自体に基本的な行数チェックやNull値チェックのステップを組み込み、何事もなく処理を終了するのではなく、出力件数が異常に少ない場合に警告を出すようにすることは、低コストで有効な対策です。手作業であれば作業者が完了前にファイルの異常に気付くことが多いため、こうしたチェックは自然に行われています。
これは業界アナリストが注目してきた、より大きな変化とも一致しています。パイプラインアーキテクチャが静的で単発のETLジョブに取って代わるにつれて、データ品質は一度きりのクレンジングではなく、継続的かつ柔軟に維持するものへと変化しています。ソースデータ自体が変化し続けても、パイプラインは機能し続けます。
完成したパイプラインと毎月作り直すプロセス
前述の差異レポートを例に考えてみましょう。手作業で毎回作り直す場合、共有サービス部門では報告先の地域オフィスとの時差により、会社間取引の消去仕訳が常に1日遅れて計上されることを、特定のアナリストが覚えておく必要があります。この対処方法は、そのアナリストの頭の中にしかありません。これをパイプラインとして定義すれば、その調整は文書化されたステップとなり、チームの誰もが確認し、検討し、改善できるようになります。これまで作り直すのに数日かかっていたレポートを、今では数分で実行できます。さらに長期的なメリットは、ビジネスロジックがそれを作成した個人を超えて引き継がれることです。これにより、経理責任者も、自動化を一部利用して算出された数値を安心して承認できるようになります。
両者を並べて比較すると、その違いはスピードだけではありません。重要なのは誰かが病欠したり、担当が変わったり、数サイクル後に手順を忘れたりしても、そのプロセスを継続できるかどうかです。
| ディメンション | 毎月再構築 | パイプラインとして定義 |
|---|---|---|
| 1サイクルあたりの所要時間 | 数時間から数日。毎回ゼロからやり直し | 数分。スケジュールに従って実行 |
| 一貫性 | 誰が作り直すか、またその人が何を含めるべきか覚えているかによって異なる | 実行するたびに、同じ手順を同じ順序で処理 |
| 監査 | ロジックは特定の担当者の頭の中と一連の数式に存在 | ロジックは可視化・文書化された一連の手順として、誰でも確認可能 |
| 引き継ぎ | 引き継ぎが困難。新しいアナリストは白紙の状態からやり直す必要がある | 引き継ぎが容易。チームの誰もが手順を確認可能 |
特定のケースでは、依然としてコードが優位
だからといって、コードベースのパイプラインが間違った選択肢というわけではありません。どのアプローチが適しているかは、パイプラインで何を行う必要があるかによって決まります。ビジュアルなノーコードアプローチは、結合、フィルター、クレンジング、集計、管理可能な数のデータソースを対象としたスケジュール実行など、多くのアナリストが日常的に扱うプロセスに適しています。ロジックに複雑な再帰計算や非常に大規模な分散処理が含まれる場合、あるいはチームがエンジニアリング組織全体で採用されているものと同じGitベースのバージョン管理やコードレビューの手法を必要とする場合は、Pythonやdbt、またはデータエンジニアが管理するパイプラインの方が適しています。実際に検討すべきなのは、どちらか一方のアプローチにこだわることではなく、変換処理がどの程度複雑なのか、そしてチーム内の誰がその保守を担当する必要があるのかという点です。
ガバナンスの効いたパイプライン導入に向けた社内提案の構築
IT部門に必要となる投資の規模や想定される懸念事項をあらかじめ把握し、それに備えてください。市民開発に関する調査では、ビジネスユーザーが、IT部門によるガバナンスや統合の監督が追いつかないほどの速さで独自のワークフローを構築・拡張していること、そして、それらのワークフローを拡張したり他のシステムと連携したりする段階になると、放置することで現実的なリスクが生じることが指摘されています。パイプラインが個人の作業を効率化する手段からビジネスに不可欠なものへと発展するにつれて、第5ステップのバージョン管理とアクセス権に関する検討が極めて重要になるのは、まさにこのためです。
パイプラインの承認を得るには、複数のステークホルダーを納得させる必要があります。IT部門が確認したいのは、接続用の認証情報に誰がアクセスできるのか、バージョン履歴があるのか、そしてワークフローが本番データにアクセスする前にどのようなレビューを受けるのかという点です。これは、スケジュールに従って本番システムからデータを読み取るあらゆるプロセスについて、IT部門が確認するのと同じ内容です。財務部門やオペレーション部門のリーダーは、一貫性をより重視します。このパイプラインが毎月同じ方法で同じ結果を出せるのか、また、作成者以外の担当者でもその仕組みを説明できるのかを確認したいと考えています。双方を納得させるには、単なる時間短縮ではなく、監査可能性と一貫性を軸に提案を組み立てます。自動化によって算出された数値を承認する経理責任者は、何時間短縮できたかよりも先に、そのプロセスが信頼できるかどうかを確認したいと考えます。
大規模な取り組みではなく、まずは1つのパイプラインから始める
チームが陥りがちな間違いは、すべてを一度に自動化しようとすることです。その結果、何も実現しないまま計画が頓挫してしまうことがよくあります。サイクルごとに手作業で作り直すのに最も時間がかかる定期レポートを1つ選んでください。まずは安定して実行できるようにし、何が変わったのかをチームに示します。その最初の成果自体が、次の自動化を進める根拠になります。1つのレポートを確実に処理できるパイプラインは、10個のレポートを自動化するためのロードマップよりも価値があります。
自社の定期レポートでこのアプローチを試してみたい場合は、Alteryx Oneの無料トライアルを開始し、実際のデータを使って構築できます。
