見出し画像

バリバリのエンジニアがビッグデータ(AI/機械学習など)に参画する場合のデータエンジニアと言うロール

こんにちはYUKIです。

ビッグデータなプロジェクトに関わりたいのですが、何からやったら良いでしょうか?

という質問を幾つか頂いたので、回答も兼ねて考えてみることにします。

結論としては、エンジニアはエンジニアが活躍できるデータエンジニアを目指してみましょう。

ということになります。

ちょうどレバテックLABでもデータエンジニアについて言及されていますね。

データプロフェッショナルズ

データプロフェッショナルは大きく分けて3種類のタイプの職種があります。

データエンジニア

データアナリスト

データサイエンティスト

の3つです。

世の中的にはこれらの3つはかなり曖昧に分かれていて、兼務したり重複する業務があったりするのが事実です(細かく分けるとまだまだたくさんあります)。

データエンジニア

データを集めて、統合して、分析をサポートするような付加価値をつけることを職責としています。  ゴールとしてはデータから「パターン」と「関係」といった知識を抽出するためのデータ基盤の整備や、データを取り込むためのデータパイプラインを整備することにあります。

データサイエンティスト

今や花形?のような職種ですよね。

データサイエンティストは、コンピューターサイエンスや数学のバックグラウンドがあることが多く、機械学習やディープラーニングの知見を持っておりPythonやJavaを使いこなす人たちです。データレイクやデータウェアハウスからデータラングリングなどのデータ変換を駆使しながらデータを調査し、データから「パターン」と「関係」を元に知識や知恵をの抽出・創出することにあります。

データアナリスト

データアナリストは、社内におけるビジネスプロセスや手続きに詳しいプロフェッショナルです。ビジネスに対する答えを持っている人でもあります。完全に分析モデルやアルゴリズムを理解しているわけではありませんが、ビジネス側の人とコミュニケーションを取りながら答えを導き出せる人材です。

バリバリのエンジニアの場合、自身の技術力を活かしてまず目指すべきはデータエンジニアになると思います。

もちろんご自身の興味があるものを選択することが大切です。

データエンジニアとデータサイエンティスト

この2つはよく比較されることがあります。

現に似通ったようなことをすることもありますし、全く違うことをやったりもします。

データエンジニアは知恵創出などのシステムや仕組みの最適化にコミットするのに対して

データサイエンティストは(大量の手作業などを駆使しながら)モデル作成や知恵の創出にコミットします

ゴールは同じで、素早く知恵を創出することにあったりします(ちなみに知恵というのはDIKWモデルでの文脈です)。

ビッグデータエンジニアリングを勉強することの難しさ

データエンジニアとして活動する場合は技術要素だけでなく、アーキテクト的な観点も持ち合わせて活動していきたいところです。

特にデータエンジニアと呼ばれる職種は企業の規模やデータのが大きくないとその真価を発揮しづらい面があります。

逆にデータ大きいということはそれを扱える技術力もそうですが管理・運用するという要望がより大きくなってきます。

そのため、扱えるだけでは不十分でデータを同適切に管理すべきかという体系的な知識を自身の頭の中で整理しておく必要があります。

1. ビッグデータを扱えるようになろう

2. ビッグデータを管理できるようになろう

この2つがデータエンジニアとして一歩を踏み出すための、第一歩になると思います。

ビッグデータを扱えるようになろう

ビッグデータには大きく分けで、ストリーミングと、バッチの2種類が存在します。

ストリーミング

ストリーミングであればKafkaなどのメッセージキューを知ると良いと思います。

現在ではクラウドで提供されているメッセージキュー(Google Pub/SubやAWS kinessis)があるのですが、根本となる仕組みはKafkaと同じなのでマネージドでなんとなく使っている場合は体系定期に学ぶには良い本だと思います。

後は組み合わせて使われることが多いSparkでしょうか。

後は、どんなシステムでも組み合わせの問題で、KafkaがFluentdになっていたりSplunkになっていたりとするだけです。

いずれも言わんとしている文脈は同じなので、技術に惑わされるのではなく基礎としてまずはKafkaとSparkを勉強してみるのはストリーミングの勉強をしたい人にとっては良い一歩だと思います。

バッチ

バッチであれば、Sparkが一番おすすめです。

Sparkはストリーミングもバッチ処理もこなせるのでコスパが良い言語と言えると思います。

本に合わせて実際のコードを動かしながら学ぶとより知識の定着ができると思います

ビッグデータを管理できるようになろう

あまりコチラに関する体系的な本は日本ではありません。

英語圏であれば、以下の本がデータマネジメントや基盤の作り方のヒントがのっているのでおすすめです。

データエンジニアはこれから面白い(はず)!

今までデータと言うと、「ウェブ系のログ」だったり「リレーショナルデータベース」のデータだったりが大部分でした。

しかし「データ」という言葉は広く、手書きや、監視カメラのデータなど無限の世界が広がっています。

このようなデータをどのように扱っていくのか、これからますます楽しみが広がりそうですね!


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?