データエンジニア
データエンジニアとは
データ活用のための基盤を作るエンジニアのこと。データの収集や調整、データ管理を担い、データ管理のための情報基盤を構築・運用することが主な業務です。また機械学習やAIの分野において、学習データを作成することもあります。スマートフォンの普及やWebマーケティングの取り組みが進み、企業のデータ量が膨大になった。また経済産業省の推し進める「DX」もあり、データエンジニアをはじめとするIT人材への需要は、今後ますます高まる見込み。
データサイエンティストとデータアナリストとの違い
データエンジニアは、データを整理するのが役割でそのためのインフラやシステムを構築する。データサイエンティストは、データを分析しどう活用するのかを導き出したり、意思決定をサポートしたりする。データアナリストもデータ分析に関する職種。便宜的に、データサイエンティストはデータ分析の専門家、データアナリストは企業の意思決定支援を行う者と使い分けがなされることもある。
データエンジニアが整理したデータを分析し活用方法を見出すのがデータサイエンティストやデータアナリストが利用すると言える。
データエンジニアの仕事内容
データ活用の基盤作り
データの加工や整理
AIや機械学習のマネジメント
データ活用の基盤作り
データ活用の基盤とは、データの収集や保管、加工や分析をするためのシステムのこと。基盤を作るためのインフラ(データベースやネットワークなど)の構築も、データエンジニアが担当することもある。基盤構築後も運用時にエラーが起きないかの監視や、機能を改善を行う。
まずデータベースやクラウドサービスを選定し、インフラを構築。その上で、データサイエンティストが問題なくデータを取り出し分析に使えるよう、データを格納する。その後、情報基盤がエラーなく稼働しているかどうか監視し、エラーが起こった際には対処を実施する。
データの加工や整理
データはそのままでは活用できず、「加工」しなければただ乱雑にデータベースに放り込まれて入るような状態なので、分析に必要なデータの抽出に時間がかかる。それを防ぐために「データの加工や整理」をする。
データの内容を確認し、重複するものを削除する(データの統合)
データを形式ごとに整理したり、形式をできる限り統一したりする
データの修正や更新、いらないものを削除する など
AIや機械学習のマネジメント
機械学習やAI開発においては、AIに学習をさせるためのデータである「教師データ」の作成が実施される。質の良い教師データを取り込むことでAIの性能が向上するため、データを適切に整えながらの作成が必要。
機械学習は「システムを作って終わり」のものではなく、システム内のデータを増やし、より高精度な分類や分析ができるようにしなければない。例えば、「路面のひび割れを検知し、補修が必要な箇所を抽出するためのシステム」なら、より多くの「ひび割れた路面の画像」を入れ、「どの程度のひび割れだと、補修しなければならないのか」を学習させることが必要。学習には膨大な画像(データ)が必要でありデータを増やしていくことでシステムは精度を高めていく。
データエンジニアに必要なスキルや知識
基本的なプログラミングスキル
データベースに関するスキル
インフラやクラウド、フレームワークに関する知識
データ分析の知識
基本的なプログラミングスキル
データエンジニアが学ぶべき言語の例
Python
Java
Scala など
データベース関するスキル
構造化データ(CSVファイルのような規則性のあるもの)のみを格納するRDB、それを扱うためのSQL、非構造化データ(文書や画像、動画など)を格納するNoSQLなど、データベースを設計したり運用したりするための知識が必要。
インフラやクラウド、フレームワークに関する知識
データ活用の基盤となる、サーバーやネットワークの知識とともに、分散処理に関する知識も必要となる。分析に使うデータは大量であり、1台のサーバーで現実的な時間(数分~数時間)を処理するには限界がある。そこで膨大なデータを複数のサーバーに分散して処理する技術が使われる。
分散処理に関する2つのフレームワーク、「Hadoop」と「Spark」がある。どちらも大量のデータを複数のコンピュータで、並列して処理させるためのフレームワークで、Hadoopは大量のデータをコストを抑えて、安定して処理でき、SparkはHadoopよりもリアルタイム処理に適している。HadoopとSparkはそれぞれ共存して使われているフレームワークで、「どちらか一方を選ぶ」のではなく、「両者の得意分野を把握し、適切に使い分けられる」ことが求められる。
分散処理の技術を使った、クラウドのプラットフォームの知識も必要。「Amazon EMR」「Google BigQuery」など大手のパブリッククラウドサービスのほか、「Snowflake」「Vertica」といった海外の企業が開発したサービスがある。また機械学習においても、「Amazon SageMaker Studio」などのクラウドサービスもある。
データ分析の知識
データ分析のための基礎知識として、微分積分をはじめとする数学、統計学の知識も必要になる。
情報収集能力も必要。データサイエンスは、技術の進歩のスピードが速い業界で、必要な資料がない、日本語に翻訳されていないといったことも多々あるため、外国語の公式ドキュメントも熟読する、ベンダーに問い合わせる、また自分で試行錯誤することなど、情報収集は能動的に行うことが必要。
データエンジニアに役立つ資格
基本情報技術者試験:ITエンジニアの登竜門といわれる国家資格で、ITに関する基本的な知識とスキルがあることを示す
ORACLE MASTER 〇〇 DBA:データベースの操作や管理ができることを示す資格であり、「Gold」や「Silver」などのランクに分かれている
統計検定:統計に関する知識があることを示す資格で、データ分析のスキルを学ぶのにも役立つ
https://www.computerfutures.com/ja-jp/knowledge-hub/data-science-analytics/data-engineer/