
近年は多くのシステムに大量のデータが蓄積され、これらを効率よく活用することが求められています。そして、これを実現するための技術としてデータエンジニアリングが生まれました。みなさんも、耳にしたことがあるキーワードでしょう。
しかし、データエンジニアリングとは耳にしても、具体的な作業内容をイメージできないのではないでしょうか。今回はデータ活用に興味を持つエンジニアに向けて、データエンジニアリングの基礎から実践方法まで解説します。
データエンジニアリングとは
データエンジニアリングとは、分析を前提としてデータを収集し、その内容を分析したり検証したりする一連の作業です。大量のデータを分析するビッグデータ解析や機械学習を用いた分析などに付随する作業として求められます。データサイエンスを実現するために、必須の作業となりつつあるのです。
具体的な業務内容は幅広く、データ基盤の設計や導入から、実際のデータ収集や加工、分析ツールへの連携などが挙げられます。また、単純にデータを処理するだけではなく「データのプロ」として、データガバナンスの徹底なども含まれることが特徴です。
なお、場合によってはデータの連携先であるAIや機械学習モデルの運用も担当します。この場合、データエンジニアリングとは表現しつつも、実態としてはデータサイエンスを含むことになるのです。
データサイエンスとの違い
解説したとおり、データエンジニアリングは、データの収集や保存、処理に関するインフラの構築や分析ツールの運用などに焦点をあてた概念です。それに対して、データサイエンスはデータの分析やモデリングによって、ビジネス上の問題を解決することを目指しています。データパイプラインやデータベースなどの技術を活用して機械学習・データ分析などを実現して、必要なアウトプットを得るのです。これらは相互に補い合うような役割であり、データエンジニアリングによって環境が整えられることで、データサイエンスが成立すると考えられます。
データエンジニアリングの必要性
データエンジニアリングの必要性についてまずは解説します。
データドリブンな判断を下す
データドリブンな経営を実現するためには、大量のデータを分析しなければなりません。分析に失敗してしまうと、求めている情報が得られず、結果的にデータドリブンな経営に繋がらないのです。必要な情報を得るための基盤となる技術として、データエンジニアリングが必要と考えられます。
例えば、販売データを分析することで、最も売れ筋の商品やサービスを特定できれば、その情報を元にマーケティング戦略を立てられます。また、顧客の行動パターンを分析すれば、その結果から顧客満足度の向上やリテンション率の向上に向けた施策を検討できるでしょう。これらは一例ですが、データに基づいた判断を下すために、データエンジニアリングは必要不可欠です。
DXの促進を加速させる
デジタルトランスフォーメーション(DX)は、デジタル技術を活用してビジネスモデルや業務プロセスを革新することです。データエンジニアリングは、このDXを加速させる重要な役割を果たします。
具体的には、データエンジニアリングによってデータの収集や整理、分析を実現できれば、DXにおいて解決すべき課題を明らかにできます。例えば、売上が減少しているという課題について関連するデータを分析することで、革新すべき業務フローが明確になるのです。DXを推進しようとしても「何すれば良いか分からない」というケースは多々ありますが、データエンジニアリングを活用することでDXの方針を明らかにできます。
新しいビジネスの創造につなげる
データエンジニアリングは、新しいビジネスチャンスの発見や創造につなげられる可能性があります。例えば、データを活用して顧客のニーズや市場のトレンドを把握できれば、新しい商品やサービスの開発に役立つはずです。ソーシャルメディアデータの分析結果を基にアイデアを練り、新サービスを開発する、などが該当します。
担当者の発想だけでは論理的なビジネスは生み出せない可能性が高いでしょう。しかし、データエンジニアリングで多角的に分析することでデータドリブンかつ経験に頼る以外の新しいアイデアが生み出されるかもしれません。
データエンジニアリングに必要なスキル
データエンジニアリングに必要なスキルについて、テクニカルスキルからソフトスキルまで解説します。
プログラミング言語やデータベース
データを収集したり分析したりするために、プログラミング言語やデータベースのスキルが必要です。例えば、Python、SQL、Javaなどのスキルを習得して、MySQL、PostgreSQL、MongoDBなどのデータベースに格納されたレコードの抽出や連携などのプロセスを効率化しなければなりません。具体的には、Pythonを利用してWebからデータを収集しデータベースへ格納、SQLを活用して抽出や加工を実施するなどです。プログラムミングを活用することで、人間では正確さや素早さに欠ける作業でも確実に実施できるようになります。
ETLやELTの知識
データの連携作業が必要となるため、ETLやELTのスキルが必須であり、データエンジニアリングの要ともいえる部分です。「E」「T」「L」は、それぞれ「Extract(抽出)」「Transform(変案)」「Load(書き出し)」を意味しています。ETLは、データを収集し、変換してからデータウェアハウスなどにロードする方法で、ELTはデータをそのままロードしてから変換します。どちらの場合でも、事前に定められたプロセスを経ることで、データ活用をスムーズに進められるようにするのです。
なお、これらの作業にはTalendやInformaticaなどのツールを利用することが一般的です。そのため、上記で触れたとおりプログラミング言語で実装の基本や手法を理解するだけでなく、実際に利用するツールのスキルも習得しなければなりません。
機械学習やAIの運用スキル
近年はデータエンジニアリングにAIや機械学習を組み合わせることが増えてきました。そのため、これらについてのスキルも追加で求められるようになっています。AIモデルを使いこなすことはもちろん、トレーニングやデプロイするスキルも必要です。例えば、予測モデルを構築して売上の予測や製品製造時の異常検知をおこなうなどが考えられます。なお、モデルのパフォーマンスを継続的にモニタリングし、必要に応じて改善する作業も担わなければなりません。
データガバナンスの知識
大量のデータを扱うためデータガバナンスの基本知識も習得すべきです。データガバナンスとは各種データの収集や利用に関するルールやポリシーの制定やそれらの遂行を指します。例えば、個人情報の保護に向けたルールの制定と実行はデータガバナンスの一環です。
データエンジニアリングにおいては大量のデータを扱い、中には秘密情報や個人情報などが含まれます。これらを適切に管理しなければ、情報漏えいなどの問題が発生しかねません。問題の発生を防ぐために、ルールを制定したり運用したりするためのスキルが必要です。
コミュニケーションスキル
データエンジニアリングを成功させるためには、コミュニケーションスキルも必要です。他のメンバーやステークホルダーと意思疎通を図れなければ、必要なデータを収集できなかったり、アウトプットに認識齟齬が生じたりします。業務効率が下がってしまうため、テクニカルなスキル以外にもコミュニケーションスキルは必須です。
企業のビジネスモデルや業界の知識
適切なインプットとアウトプットを判断するために、ビジネスモデルや業界の常識なども習得しておくべきです。例えば、企業がどのように売り上げを増やし利益を確保しているのかや、業界では一般的にどのようなマーケティング手法が採用されているかなどを押さえておきます。習得すべきスキルは状況に応じて変化するため、臨機応変に把握しなければなりません。
また、知識の習得方法はWebや書籍で把握できることもあれば、先輩や顧客など人から教えてもらう・学ぶこともあります。古くから変わらない知識もあれば流動的な知識もあるため、身に付ける知識を取捨選択することも重要です。
ダッシュボードやレポーティングのスキル
分析結果を可視化するために、ダッシュボードやレポーティングのスキルも必要です。例えば、TableauやPower BIなどのツールを利用して分析からダッシュボードでの可視化までを実現します。また、これらのツールからPDFや画像形式でファイルを出力して、別のドキュメントにレポートとしてまとめるスキルも必要です。
多くの場合、データを閲覧する経営層や管理職などは業務に追われているため時間に余裕がありません。そのため、直感的に理解しやすい状況でデータを示すことが求められます。
データエンジニアリングの実践方法
続いては、データエンジニアリングの実践方法を具体的に解説します。
必要なデータの生成・抽出
データ収集は、データエンジニアリングにおける最初のステップです。得たいアウトプットを踏まえて、さまざまなソースからデータを効率的に必要なデータの生成・抽出をしなければなりません。基本的に、データは複数の場所に分散する「サイロ化」が発生しているため、これらを収集・統合して利用することが求められます。例えば、以下からデータの生成・抽出を実行します。
- 社内向けサービスの内部データベース(例:勤怠登録ツールなど)
- 日常業務で利用するサービスの外部データベース(例:チャットツール・各種クラウドサービスなど)
- データ提供を目的とした外部サービス(例:Google Analyticsなど)
- 個人が管理しているデータ(例:業務の過程で作成したExcelファイルなど)
- Web上に公開されているデータ(例:Webスクレイピングの結果など)
- 特定のアプリケーションが収集ように提供しているデータ(例:API経由で収集できるものなど)
なお、ここで収集されたデータは、以下で解説するデータ活用の基盤となるものです。ここで適切なデータを収集しないと、データエンジニアリングが失敗する可能性が高まってしまいます。

データ変換
データ変換は、上記で収集したデータを分析可能な形式に整える作業です。例えば、データのクリーニングや正規化、フォーマット変換などが該当します。具体的には、テキストデータを数値データに変換したり、欠損値を補完するなどの作業です。
一般的に、収集したデータは、データ連携を前提として作られていないため、それぞれが異なるフォーマットや構造になっています。これではスムーズにデータを処理できないため、事前に必要な変換を施しておきます。
なお、データ変換は以下で解説する「データ活用」の内容を踏まえて実施すべきです。例えば「数値データ」として活用するならば、可能な限りデータを数値に変換しておきます。
データレイク・DWHへの収集と加工
データを繰り返し利用できるように、生成・抽出したデータはデータレイクやDWH(データウェアハウス)へ格納します。専用のツールで保存すれば、スムーズに再利用できるのです。
- データレイク:データを任意の形式(非構造化)で格納する
- DWH:データを指定した形式(構造化)で格納する
- データ提供を目的とした外部サービス(例:Google Analyticsなど)
データエンジニアリングでは、DWHを利用するケースが多いと考えましょう。事前にデータの用途をある程度決めておき、それに沿ってデータを格納するのです。例えば「数値分析を前提として、数字はすべて半角に変換する」「日付は日本時間でyyyy/mm/ddの形式で保存する」などと定めてデータ収集に加えて加工まで施します。
なお、データレイクとDWHの差は「より素早くデータを活用できるか」という部分です。データレイクは非構造化であるため、活用の際に加工が求められます。しかし、DWHならばその手間が発生せず、スムーズに活用できます。
また、大量のデータを何度も利用することが考えられるため、ストレージの容量や読み書きの速度などを考慮することが重要です。加えて、データが保存されているストレージが攻撃されると情報漏洩の危険があるため、セキュリティを確保する作業も重要といえます。
データ管理
データを保存するだけではなく、継続的に管理する作業も重要です。例えば、一定のルールに従ってデータの整合性を担保したり、保存しているデータへアクセスできる従業員を制限するなどが考えられます。
上記でも解説しましたが、データエンジニアリングでは「データガバナンスの徹底」が非常に重要です。これはデータ品質を担保し、情報漏洩を防ぐためのルールであると捉えましょう。大量のデータを扱う作業であるため、責任者・担当者を定めて管理しなければ、甚大な問題が発生してしまう可能性があります。
関連システムへのデータ連携
データの収集と加工が完了したならば、続いては分析するシステムへの連携が必要です。例えば「Tableau」などの製品に連携して、分析アルゴリズムを適用します。また、機械学習のツールへと連携して、データに潜む傾向を算出するなどの活用もあるでしょう。
一般的に、データレイクやDWHはデータ分析機能を有していないため、データエンジニアリングにおいては連携が必須です。ただ、データ連携の方法は関連システムの仕様によって変化します。例えば、ファイルに出力して連携することもあれば、相互に通信して送信することもあるのです。連携の方法については、事前の確認が求められます。
分析や可視化によるデータ活用
データ連携が完了したならば、連携された先のシステムやツールで分析や可視化などの活用が進められます。蓄積されたデータから新しい価値を生み出し、ビジネスに役立てる作業です。目的に応じて、さまざまなアルゴリズムを適用して分析を進め、可視化します。例えば、顧客について分析したいならば「クラスター分析」を採用し「散布図」で可視化するなどの方法があります。
データエンジニアリングのゴールはデータの分析や可視化の環境を整えることです。ただ、可視化されたデータを活用することまで考慮しなければなりません。経営層が求めるアウトプットを提供するなど、「データドリブン経営」を実現する手助けを意識することが重要です。

データエンジニアになるには
データエンジニアリングに対応するエンジニアを「データエンジニア」と呼びます。最後に、データエンジニアになるために必要な準備を解説します。
プログラミングやデータベースの習得
データエンジニアになるためには、プログラミング言語やデータベース技術の習得が不可欠です。必要なスキルで解説したとおり、これらのスキルを利用してデータを加工したり分析したりします。また、データを連携する仕組みを構築する際にもプログラミングのスキルが必要です。
ビックデータ解析の理解
ビックデータ解析は、大量かつ多様なデータを分析して、新しい価値を生み出す技術です。データエンジニアは、大量のデータからビジネスに役立つ情報を得る作業を任されるため、基本的な概念を理解しなければなりません。
例えば、HadoopやSparkなどの技術はビックデータ解析や活用に必須だと考えられています。これらは一例ですが、新しく登場する技術や進化を遂げる技術を随時学習し、理解することが重要です。
データ処理やETLの実践
データ処理やETLの実践は、データエンジニアを目指すにあたって経験すべきものです。経験することで効率的なデータ処理の基礎を築くことができます。特に、データの抽出や変換、関連システムへの連携などを実践的に学ぶと良いでしょう。
可能であれば、実際に利用されているシステムを利用して習得すべきですが、必ずしも経験を積めるとは限りません。そのため、TalendやQlikなどの体験版を活用して、まずは基本的なスキルの習得を目指すことも選択肢です。
分析を予定している業界・業種の基礎知識の調査
データエンジニアは、分析対象となる業界や業種の基礎知識を持つことが重要です。知識を持つことで、ビジネスに必要なデータの収集や分析を実現でき、活用方法の提案もできるようになります。
例えば、医療業界ならば、医薬品で副作用の疑いが生じた際に、医師や薬剤師から情報を収集し、その内容を細かく分析、その結果を国に報告するという業務をほぼ人間がこなさなければなりません。しかし、データエンジニアリングで効率化できる部分があると予想されます。このような業務を理解していれば「患者データや診療データなど人間が処理しているデータを対象とし、業務効率を高めることを目的とした分析」を提案できるようになるのです。データを活用する側から分析対象のデータやアウトプットを指定されることもありますが、これは稀であり、データエンジニア側が理解して提案しなければなりません。
まとめ
データエンジニアリングは、データを活用する基盤を構築したり、実際に収集や加工、分析を実施したりする作業です。現在はデータサイエンスが重要視され、これを実現する前段階や関連する技術としてデータエンジニアリングが求められつつあります。
業務としてはテクニカルな部分が多く、データエンジニアリングを実践するにはデータへの理解やプログラミングスキル・データベーススキルが必要です。また、どのようなデータを収集するか判断するために、企業や業界についての理解も求められます。プログラミングやデータベースのスキルだけでは、実践的なデータエンジニアにはなりません。
インディゴデータは、初心者でもプログラミングスキルを実践的に学びながら、データ活用の基礎から応用まで習得できる環境を提供しています。インディゴデータで働くプログラマーは技術の習得だけではなく、顧客のプロジェクトや事業全体に関わることで幅広い知見を得ることができます。そのため、単に指示をこなすだけの技術者ではなく、自ら提案し、「価値を創出できる技術者」として成長し続けることができます。
価値を創出できる技術者へ成長を続ける、プログラミング未経験で入社した新入社員のインタビュー記事も掲載しています。ぜひご覧ください。