見出し画像

データエンジニアのお仕事

本記事は、Japan Digital Design Advent Calendar 2023 の9日目の記事になります。


三菱UFJフィナンシャル・グループ(以下MUFG)の戦略子会社であるJapan Digital Design(以下JDD)でデータエンジニアをしている佐川と申します。
本記事では、データエンジニアについてご紹介させていただきます。

データエンジニアとは

「データエンジニア」という言葉に耳慣れない方も多いと思います。
それもそのはず、データエンジニアとは、ここ10年くらいでジャンルが確立されてきた、とても新しい職種です。
DataOps、(会社によっては)MLOpsなどと呼ばれたりもします。
新しい分、業界でもその役割について共通認識が曖昧なので、会社によって担当する範囲が大きく違う場合があるのも特徴かなと思います。
そういうゆらぎは、やはり新しめの職種である「SRE(Site Reliability Engineer )」と一緒ですね。
そういった事情のため、データエンジニアと一概にいってもバックグラウンドは様々です。
インフラエンジニアご出身の方もいれば、セキュリティエンジニア、我々が作ったデータを使う側であるデータサイエンティストが転身するようなケースもあります。
私はといえば、Webアプリケーション開発をメインとするサーバサイドエンジニア出身です。
なぜこのような多彩な背景からデータエンジニアが生まれるかは後で説明するとして、職業として求められる共通のコアバリューは当然あります。
我々の主な仕事は、ETLパイプラインの開発と運用。こちらです。

データエンジニアリングとは

ETLパイプラインとはなんでしょうか。
そのまえに、まずデータエンジニアリングとはなにかを説明しないといけません。
簡単に言えば、「機械学習、統計などの処理で利用できるようにデータを変換して保存する」ということです。
たとえば、あるシステムのデータベースからユーザーデータを取得してきて、それを統計的に分析することでなんらかのビジネス的な気付きを得たいとします。そのまま分析可能であれば、特にデータエンジニアリングの余地はありません。
ですが、ほとんどの場合において、システムのデータはそれ自身に最適化されています。
仮に、ユーザー名が全く同一でIDが複数ある場合を考えてみます。このユーザーは同一人物なのか、それとも別人か、システム上、同じ人物が複数登録可能なのか、システムはそれぞれの要求と仕様に基づいてつくられています。
これらの要素をすべて無視して、統計処理を行った場合、当然ですが結果は偏ったものとなります。偏った結果は間違った意思決定を招きます。それでは分析の意味がありません。
分析を行う当事者であるデータアナリストやデータサイエンティストが確認した仕様に基づいて、データをあるべき形とするのがデータエンジニアリングとなります。
そのためのツールがETLパイプラインです。

ETLパイプラインとは

ETLパイプラインとはExtract, Transform, Loadの略で、簡単にいえば(データの)収集、変換、読み込みを一連のワークフローとして処理することです。
このワークフローはデータの入力から出力までを連続した処理で行うことから、水道管になぞらえて、パイプラインと呼ばれています。
このパイプラインの構築と管理が、データエンジニアの主たるタスクです。
また、データエンジニアが多彩なバックグラウンドから生まれうる素地でもあります。
たとえば、Extract(収集)は、社内外のシステムへの繋ぎ込み、それらの受け入れインフラの準備が必要となりますので、インフラエンジニアに強みがあります。
Transform(データ変換)では、バッチなどの実際のプログラミングの変換処理が大きく関係しますので、私のようなアプリケーションの開発をやってきた人間に強みがあります。
Load(読み込み)は単にロードするだけでしたら、特に誰に強みがあるという話でもないですが、データを入れた後、機械学習や統計的に利用するように最適な形を考えないといけない場合など、データサイエンティストに強みがある領域です。
これらに加えて、いわゆるデータガバナンス(データの履歴管理、ユーザー権限管理、セキュリティ、監査)や、BIツールの管理が、データエンジニアと呼ばれる人の一般的な職責となります。
データエンジニアが、何をする人間かは概ねお分かりいただけたかと思います。

データエンジニアリングのトレンド

最後に最近のデータエンジニアリングのトレンドをご紹介して終わりとしたいと思います。
いわゆる「Modern Data Stack」です。
Modern Data Stackを簡単に説明すると、クラウド型データウェアハウスを中心として、ETLパイプラインの各パートをフルマネージドのSaaSのサービスでつないで構築しましょうという考え方です。
これによりどのようなメリットがあるかというと、それぞれ独立したサービスであり、外部接続を前提で作られているので、基盤構築が非常に簡単になります。
さらにフルマネージドであるため、運用に関するコストが大きく下がります。
逆にデメリットとして考えうるのは、当然、SaaSに払う金銭的負担が増え、サービスをまたがるため、請求総額は見えづらくなります。また、様々なSaaSを組み合わせるため、セキュリティリスクがあるなどでしょうか。
このようなSaaSサービス同士を利用するというトレンドも相まって、データエンジアリングのSaaSサービスの競争は非常に活況で、日々新しいサービスが立ち上がり、さながら戦国時代を呈しています。面白い流れではありますが、私もついていくのに精一杯です。

ちなみに、JDDでは、インターネットから閉鎖された環境で、データを取り扱っていることから、厳密なModern Data Stackの導入はなかなか厳しそうですが、運用負荷を下げるため、各種OSS導入の検討をはじめております。

以上、佐川でした。

最後までご覧いただきありがとうございました。


Japan Digital Design株式会社では、一緒に働いてくださる仲間を募集中です。カジュアル面談も実施しておりますので下記リンク先からお気軽にお問合せください。

この記事に関するお問い合わせはこちらにお願いします。

Technology & Development Division
Shinichi Sagawa