SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

DataOps 第6回「DataOpsを実践するための7つのステップ」(後編)

データ活用
    2020.09.24

    はじめに

    みなさん、こんにちは。SB C&Sの加藤です。
    本連載記事ではデータを活用するためのノウハウについてご紹介させていただきます。

    ==========================================================
    DataOps 第1回 「The DataOps 18の原則」 
    DataOps 第2回 「2019年のDataOpsサーベイから見た課題」
    DataOps 第3回 「データ分析の8つのチャレンジ」(前編) 
    DataOps 第4回 「データ分析の8つのチャレンジ」(後編) 
    DataOps 第5回 「 DataOpsを実践するための7つのステップ」(前編) 
    ■DataOps 第6回 「DataOpsを実践するための7つのステップ」(後編) ※本記事です!
    ==========================================================

    前編の第5回に引き続き、DataOpsを実践するための7つのステップについてご紹介していきます。

    Step5. 再利用、コンテナ化する

    チームの生産性を高める方法として、コードの再利用とコンテナ化も重要です。データ分析パイプラインの各ステップは、前のステージからの出力を受け取り、次のステージへの入力を提供する事です。データ分析パイプライン全体を一つのモノリスとして扱うのは面倒なので、小さなコンポーネントに分解するのが一般的です。ですので、小さなコンポーネントをセグメント化したり、Dockerなどを使ってコンテナ化したりすることができれば、他のチームメンバーが小さなコンポーネントを再利用しやすくなります。

    データ分析パイプラインは一般的に面倒で複雑なステップを踏みます。例えば、1つの操作でカスタムツールを呼び出したり、Pythonスクリプトを実行したり、FTPやその他の特殊なロジックを使用したりすることがあります。このような操作は、特定のツールセットやスキルセットが必要になるため、コンテナとしてパッケージしてしまうのも良い方法だと思います。いったんコードをコンテナに入れてしまえば、コンテナ内のカスタムツールには慣れていなくても、コンテナの外部インターフェースの使い方を知っている他のプログラマーが使用する方がはるかに簡単になります。また、そのコードを各環境にデプロイすることも容易になります。

    Step6. 処理をパラメータ化する

    データ分析パイプラインには、異なる実行条件を取り入れる柔軟性が必要な場合があります。生データのどのバージョンを使用すべきか?、データは本番用なのか、テスト用なのか?、レコードを何らかの基準(民間医療データなど)に従ってフィルタリングすべきか?、ワークフローに特定の処理ステップを含めるべきか、含まないべきか?等、開発速度を上げるためには、これらのオプションをパイプラインに組み込む必要があります。堅牢なパイプライン設計により、エンジニアやアナリストは、パラメータを使用してこれらのオプションを呼び出したり、指定したりすることができます。ソフトウェア開発におけるパラメータとは、プログラムの実行方法に影響を与える情報(名前、数値、オプションなど)のことです。データ分析パイプラインが適切な柔軟性を持って設計されていれば、パラメータを切り替えることで、新バージョンと旧バージョンの両方へアクセス可能になったり、さまざまな状況に並列で対応できるようになります。

    Step7.恐れや英雄主義といった感情なしに業務を行う

    多くのデータアナリティクスの専門家は恐怖の中で生きています。データ分析では、専門的に恥をかく(または解雇される)2つの一般的な方法があります。

    - 質の低いデータが顧客に届く

    - 本番システムを壊すような変更を加える

    データエンジニア、科学者、アナリストは、これらの悲惨なシナリオを回避するために、過剰な時間とエネルギーを費やしていますが、今までお話したステップを活用し、システムを自動化、データを監視することで、データの品質向上やプロセスの改善が行われるはずです。邪念を取り払うことで、データから価値を抽出したり、分析的洞察をもたらす新しいアイデアを思いつくサイクルを早める事、つまりは本来やるべきことに集中できるはずです。

    さいごに

    今回は、DataOpsを実践するための7つのステップというお話をさせて頂きました。同じようなキーワードでDevOpsがあります。アプリケーション開発のサイクルタイムを早くするという概念ですが、DevOpsは、CI (Continuous Integration)などのテストの自動化や、CD (Continuous Deployment / Delivery)といったインストールの自動化などが重要なポイントです。

    今回の7つのステップを見て頂いた通り、DataOpsに関しても同じような事が言えると思います。対象がアプリケーションなのか、データなのかという違いだけでそこから生み出される価値は同じだと私は考えています。

    データやアプリケーションをビジネスに活用することは、ITそのものと言えると思います。今回の記事執筆にあたり、ITそのものが今後どのような価値を提供するか?について再考させられました。

    著者紹介

    SB C&S株式会社
    テクニカルマーケティングセンター

    加藤 学

    エンタープライズ領域での開発から運用監視までの幅広い業務経験を活かし、事業開発やマーケティングチームと一緒になってビジネスの立ち上げを行っている。日本とアメリカ、特にシリコンバレーへ滞在し、新規プロダクトの発掘調査や国内外の新規パートナーリクルーティング、技術戦略、ポートフォリオの策定など、技術をバックグラウンドにしたさまざまな活動を行っている。最近では、DevOpsを始めとした開発者向けビジネスの立ち上げを行い、プロジェクトの責任者として慌ただしい日々を送っている。