キャリア

2019/08/30

データエンジニアとは?仕事内容から年収、必要スキル、資格まで徹底解説

データアナリティクスやAI技術の発展により、データサイエンスに取り組む企業が増加しました。それに伴い「データエンジニア」という職業が注目されています。データ処理システムの構築だけでなく、運用や機械学習などにも関わる職種です。要求されるスキルの幅は広いですが、将来的な需要が高く長期的なキャリア形成が可能な職種といえるでしょう。

今回の記事では、そんなデータエンジニアの仕事内容、気になる年収と給料、なるために必要なスキル、取得したい資格などを紹介します。

データエンジニアとは

データエンジニアは、大規模なデータの活用を支える基盤構築と運用の専門職です。インフラ・データベース・開発などITエンジニアとしての基本スキルに加え、ビッグデータを扱うための分散処理やデータマネジメントに関するスキルが要求されます。

活躍する場所として機械学習やデータ分析を行う事業会社のほか、データ基盤構築を受託するIT企業で働くことが多いです。職種の呼び方として「データエンジニア」のほか、「基盤エンジニア」や「データ分析基盤エンジニア」と呼ばれることもあります。

データエンジニアが注目される背景として、データの重要性が高まっていることがあげられます。大量のデータを扱うAI技術やBI・BAなど事業におけるデータ活用に注目が集まっており、クラウドを利用した安価で高速なデータ処理や、リアルタイムにデータを解析する技術なども普及してきました。

データエンジニアの役割

データエンジニアは、データ基盤の設計・構築・運用に関するプロフェッショナルです。データアーキテクチャ、クラウド、分散プラットフォームなどデータエンジニアリングの技術を駆使して、利用者の用途や活用目的に応じた環境を構築し、データパイプラインの維持に努めます。

仕事ではデータアナリストやデータサイエンティストが必要に応じてデータを取り出せる分析基盤としてデータウェアハウス(DWH)を構築したり、データ基盤に最新のデータがストックされるように、データを取り出したり収納したりするためのアプリケーションを開発したりします。

初期のデータ分析基盤は、経営判断を行う意思決定者や統計・分析の手法を学んだデータサイエンティストにむけたものでしたが、最近ではデータレイク、データマートといった様々なレイヤーのユーザーが利用できる基盤も登場しています。

データサイエンティストとの関係性

データサイエンスチームで、データエンジニアと一緒に働く職業としてデータサイエンティストが挙げられます。仕事内容で共通する点も多くありますが、期待される役割が異なります。

データサイエンティストはデータを分析し、それをビジネスなどに活用するのに対し、データエンジニアはデータサイエンティストが仕事をするにあたって必要なデータを提供する側となります。そのため、データサイエンティストの仕事はデータエンジニアがいないと成り立たちません。

データサイエンス関連の仕事としてデータサイエンティストや機械学習エンジニアが目立ってしまいがちですが、データエンジニアはこれらの仕事を支える縁の下の力持ちポジションの仕事と言えるでしょう。

データエンジニアの年収

データエンジニアの年収は500~1,000万円程度と言われています。ビッグデータを活用するデータサイエンス分野の技術者は国内外で需要が高く、実務経験を積み専門技術を身につければどこへ行っても高年収が期待できます。日本国内だと会社員で年収1,000万円を超える場合は少数ですが、海外ではさらに給与が高く、数千万円を稼いでいるエンジニアもいるほどです。

データ処理や分散処理などデータ基盤に関する技術は今後も需要が高くなっていく一方であり、それなりに専門性も高い仕事なのでデータエンジニアが市場に大量供給される可能性は低いでしょう。そのため、今後も長くIT業界で高収入を稼ぎたいならデータエンジニアは狙い目と言えます。

データエンジニアの仕事内容

データエンジニアリングを駆使するデータエンジニアはどのような業務を行うのでしょうか。ここでは、仕事内容について見てみましょう。

データ基盤/分析環境の設計

データ基盤/分析環境を構築するにあたって、無計画に構築を始めてしまうと機能の拡張や扱うデータを追加したい時にシステムに大幅な変更が必要だったり、メンテナンスの負荷が増えたり、必要に応じてデータを取り出すことができなくなったりしてしまいます。そのため、基盤環境の構築に際して全体のアーキテクチャ設計が必要です。事業サイドや分析者の利用目的を把握し、データ構造やデータ処理の流れに配慮する必要があります。

利用する技術要素やOSS、サービスなどの選定もここで行うため設計を行うのはデータエンジニアの中でも経験を積んでいる人が中心となっています。データエンジニアとして働くにあたって、設計ポジションを任されることを目標に仕事に取り組んでいる人も多いです。

データ基盤/分析環境の開発

開発の規模や形態により設計と開発を同じデータエンジニアが担当することもありますが、要件や仕様が固まったあとは実際にデータ基盤を開発します。インフラ環境やデータベースを構築し、データソースからデータを収集して蓄積されるまでの処理を開発したり、蓄積したデータを分析者や他のエンジニアなどが必要に応じてデータを取り出したり収納したりできるようなアプリケーションを開発したりします。

データ可視化についてTableauなどのBIツールを導入して、KPIのレポートや分析環境を構築するような仕事に取り組むこともあります。データ分析チームの人数が少なく分業されていない職場では、データエンジニアではなくデータサイエンティストが業務の一環としてそれらの開発を行うこともあります。

データ基盤/分析環境の運用

データ分析基盤や機械学習基盤などのデータ基盤は一定の周期でデータ内容が最新に更新されていきます。そのため、データ基盤を正常な状態で稼働させる保守・運用業務もデータエンジニアの担う仕事のひとつです。システムのログを監視しエラーやバグがあった場合に、原因を究明し対策します。また、データ処理の高速化やパフォーマンスのチューニングもデータエンジニアの仕事です。ビッグデータ分野では膨大な量のデータを取り扱うので、それらの技術を身につけたデータエンジニアは希少価値の高い人材とされるでしょう。

利用している人の声を聞いて新しい機能を追加したりといった作業もデータエンジニアの仕事のため、Slackと連携したレポートの送信や専用の管理画面を開発するなどの業務に取り組むこともあり、職場によっては幅広いスキルが要求されます。そのため、運用業務を行うエンジニアをDevOps/MLOpsエンジニア、SREエンジニアとしてデータエンジニアとは区別する会社もあります。

データエンジニアに必要なスキル

それでは、データエンジニアになるためにはどんなスキルが求められるのでしょうか。

データベース(RDB、NoSQL)の設計、運用

データを取り扱う仕事をするにあたってデータベースに関する知識は必須と言えます。RDBではSQL構文を用いて必要なデータを取り出したり、データを格納したりしますが、NoSQLではSQL構文を使わずにデータの操作ができます。また、RDBの場合は基本的に構造化データしか取り扱いませんが、NoSQLでは非構造化データも取り扱います。そのため、RDBとは別にNoSQLに関する知識も必要と言えるでしょう。

RDBの設計・運用は一般的なエンジニア業務で経験することができますが、NoSQLは大量のデータを保存するのに向いています。職場によってはNoSQLの設計・運用経験を積むのが難しい場合もあり、その際は転職して職場を移るか、独学で勉強する必要があります。

インフラ(サーバー・ネットワーク)の設計、運用

データエンジニアの仕事をする場合、ミドルウェアに加えサーバーやストレージの構築を担当することが多く、オンプレミスとクラウドの両方について知識が必要です。また、ネットワークの設計などについても理解しておくべきです。そのため、データエンジニアでもインフラエンジニア並みのインフラの設計・運用スキルが求められるものと思っておくのが良いでしょう。

近年では、機械学習や分析の基盤にAWS、GCP、Azureなどクラウドサービスを導入している企業が増えてきています。そのため、Amazon S3などのクラウドを使用した経験があると有利です。

Hadoop、Sparkなど分散処理フレームワーク

データエンジニアは仕事で膨大な量のデータを取り扱うため、サーバー負荷軽減と処理速度の向上に関するスキルが必要です。そこで用いられるのが分散処理と言う方法です。分散処理は複数のコンピュータで大量のデータを分けて処理することで1台当たりのPCの負荷を軽減し、処理時間を短縮する方法で、ビッグデータ関連の業務ではよく利用されます。

そして、分散処理を行うフレームワークにはHadoop、Sparkなどがあり、データエンジニアが業務を行うにあたってHadoopエコシステムに関する知識は必須です。これらは技術革新のスピードが速いため最新OSSの調査や関連するドキュメントに目を通すなど知識のアップデートも必要です。

Python、Java、Scalaなどでの開発スキル

データエンジニアに限らずITエンジニアに必須なのがプログラミングのスキルです。特に、データエンジニアの場合は、JavaやScala、Pythonなどの言語に精通している必要があるでしょう。Pythonは統計や科学計算などのデータ処理に強いプログラミング言語です。ビッグデータの仕事に取り組むなら、機械学習やデータ分析業務に使用するライブラリの扱い方や環境構築の手法を理解しておく必要があるでしょう。

ただ、データアナリティクスの用途ではPythonやR言語が主流ですが、データ基盤の構築ではJavaやScalaを使用するケースが多いです。先ほど紹介したフレームワークであるSparkを取り扱う場合、Pythonでも不可能ではありませんが、Scalaの方が効率よく使うことができます。そのため、データエンジニアを目指すならScalaに関する知識も必須でしょう。

また、HadoopはJavaで記述されており、MapReduceプログラムを作成する場合もJavaでコードを書くことが一般的です。Javaに関する知識があれば仕事がスムーズに進むことから、Javaに関しても学んでおきましょう。

機械学習やデータ分析業務への理解

先ほど解説した通り、データエンジニアは機械学習エンジニアやデータサイエンティストの業務を裏でサポートする仕事です。したがって、データエンジニアを目指すなら機械学習やデータ分析の現場でどんな仕事が行われているのかを理解しておく必要があります。機械学習のアルゴリズムや統計モデル作成など詳細の知識は必要ありませんが、業務のワークフローを理解し、レポーティングやKPIなど事業やマーケティングに関する知識もある程度は持っていないと、利用者のニーズに応じた開発を行うことができません。

また、機械学習エンジニアやデータサイエンティストとしての業務経験があれば転職活動が有利になる可能性が高いです。

データエンジニアに役立つ資格

データエンジニアとしての実力を証明する資格や試験にはどのようなものがあるのでしょうか。ここでは、データエンジニアを目指すにあたって取得しておきたい資格を紹介します。

Professional Data Engineer(Google認定 プロフェッショナルデータエンジニア)

Google Cloud 認定資格プログラムのひとつである「Professional Data Engineer」はGoogleが運営しているデータエンジニア関連の資格です。データを収集、蓄積して分析などに活用する能力を評価します。Google Cloud Platform(GCP)を利用している企業が増えてきており、Google Cloudのスキル認定は自分の実力を示すのに良い手段と言えます。

試験では、データ処理システムの設計やデータベースの構築・保守、ビジネスプロセスのモデル化やセキュリティなどインフラに関する内容のほか、機械学習やデータ可視化などについても問われます。試験時間は120分間で、日本語で受験が可能です。問題は50問出題されます。試験対策にオンラインで資格取得のための模擬試験を受講することができます。

かなり難易度が高く、データエンジニアとしての実務経験がある人でも合格するのが難しいと言われている資格ですが、この資格を持っていれば日本国内はもちろん世界でも通用するでしょう。資格の有効期限は受験から2年間です。

CCP データエンジニア認定試験

CCP データエンジニア認定試験はClouderaが運営している資格であり、Professional Data Engineer同様世界で通用します。こちらも難易度がかなり高く、しかも出題形式が英語のみなので英語のスキルも求められるので注意が必要です。出題内容はデータエンジニアとして業務を行うにあたって必要なデータの変換や格納などが中心となっています。

統計検定

データ分析の業務に携わるにあたって必須なのが統計に関する知識です。そこで自分の統計に関する知識を深めるために統計検定を取得しておくのも良いでしょう。統計検定は4級から1級までがあり、自分のレベルに合わせて受験することができます。データエンジニアを目指すなら2級合格レベルを目指しましょう。統計が苦手でも4級から徐々にレベルを上げていけば良いので、Professional Data Engineerなどと比べると気軽に受験できる資格でしょう。

データエンジニアにおすすめの本

データエンジニアを目指すにあたって良い知識を得られる本にはどんなものがあるのでしょうか。データに関わる仕事をするなら読んでおきたい書籍もチェックしておきましょう。

スケーラブルデータサイエンス

スケーラブルデータサイエンスは数少ないデータエンジニアに焦点を当てた書籍です。Google Cloud Platformの使い方や基本的なデータサイエンスに関する知識を習得することができ、データエンジニアに限らずこれからデータサイエンスに関わる仕事を目指す人は読んでおきたいでしょう。

ビッグデータ分析・活用のためのSQLレシピ

ビッグデータ分析・活用のためのSQLレシピは500ページとかなりボリューミーではありますが、これを読み込めばデータエンジニアとしてかなりの実力をつけられるでしょう。データエンジニアを目指すにあたって身につけておきたい基本中の基本だけでなく、実務にも活用できる実践的な内容も書かれているので、データサイエンスに携わる職に付いている人にも愛読者が多い書籍です。

Hadoop クラスター構築実践ガイド

Hadoopの使い方はわかっていても、実際にHadoopを使ったデータ分析基盤を構築するのは実務経験が無いと難しいです。そこでHadoop クラスター構築実践ガイドにはHadoopを用いたデータ分析基盤の構築例が多数掲載されています。この書籍はある程度データエンジニアとして必要な知識が身についている人向けであり、基礎ができたら実際に書かれている内容を実践し、Hadoopに慣れましょう。

データエンジニアの将来性

裏方の面が強いデータエンジニアは、IT業界のなかでもあまり知られていない職業です。そのため、未経験からエンジニア・プログラマーを目指す立場の方は少しマニアックな仕事と思ってしまうかもしれません。ただ、機械学習エンジニアやデータサイエンティストを志望する人はかなり増えてきているのに対して、データエンジニアを目指す人はまだまだ少ないです。しかも、これからAIやIoTなどの利用が進むにつれ、それらのデータ基盤を整備するエンジニアはさらに求人の需要が高くなっていく仕事です。

また、インフラエンジニアやWeb系の開発エンジニアからデータサイエンス業界に転職するような場合では、これまでの経験やスキルをいかせる点もメリットです。年収を下げて機械学習エンジニアやデータサイエンティストになるよりも、データエンジニアとして転職すれば高年収を得るキャリアプランを描ける可能性も高いです。そのためジョブチェンジでデータ分析や機械学習に携わるエンジニア業務に就きたい方にもおすすめします。

関連記事Related Posts