初めに
タイトルからお察しの通り、私自身データエンジニアという職種に興味があり学部3年生として就活をしているものの、そもそもデータエンジニアってなんぞや。という壁にぶつかっていました。
この記事では、
- データエンジニアがどのような職種で、
- どんなスキルセットが求められる仕事なのか、
を、IBMの「データエンジニアリングの基礎専門講座」で学んだことを中心に共有できたらと思っています。
背景
筆者は現在学部3年生で、データエンジニアとしてのキャリアを築いていきたいという気持ちがあるのですが、実際に今できることはなんだろうと行動したくなったのがきっかけです。
それでCourseraのIBM専門講義にたどり着きました。
私自身なんとなく、データサイエンティストに対する縁の下の力持ち。的なポジションを想像していたのですが、思ってるよりも奥が深く、それを体系的に学べる講座だと感じたので急いで筆(指?)を走らせている次第です。
講義の形式
まず、この講座自体に無料トライアル期間が1週間あります。
この期間以降は、月に7000円弱お金がかかるのですが、無料でも講義を受けること自体はできるそうです。
無料で受講するデメリットは、
- 講義途中のテストが受けられない
- Hands-On課題ができない
- Certificateがもらえない
だった気がします。
せっかくならLinkedInにCertificate貼りたいし、勉強証明できたほうが英語での説明も楽だと思うので筆者は1週間で終わらせるモチベで頑張っています。
ちなみに、このデータエンジニアリングの基礎コースは全部で4週間分あります。
実際のコースの進め方ですが、
Working knowledge of Data Engineering Ecosystem and Lifecycle. Viewpoints and tips from Data professionals on starting a career in this domain.
とあるように、Dataに関するプロが、データエンジニアとしてのキャリアを紹介してくれてそれについてIBMが補足の説明や講義をする。といった形で進みます。
Week1で学んだこと
まずはWeek1ですが、ここでは一番知りたかった、
- データエンジニアとそれを取り巻く環境
- その中で、データエンジニアはどんな役割なのか
を学びました。
データエンジニアの役割を理解するため、まずはそもそも現在のデータに関するEcosystemを俯瞰するところから行きます。
Data ecosystem
データを取り巻く環境? Ecosystemをうまく翻訳することができないのですが、エコシステムのカタカナがしっくりくるのでこのまま進めます。
データのエコシステム内では、登場するキャラクターがいくつかいます。
- データ:さまざまなフォーマット、構造、ソースで利用可能なデータ。
- 企業データ環境:生データがステージングされ、エンドユーザーが使用できるように整理、クリーニング、最適化される。
- エンドユーザー:ビジネス関係者、アナリスト、プログラマーなど、さまざまな目的でデータを利用する人たち。
- クラウドコンピューティング、機械学習、ビッグデータなどの新しいテクノロジーは、データのエコシステムとその可能性を継続的に変化させている。
これらの役者が、現在のデータエコシステムを形成しています。
Vital role in the ecosystem
このデータを取り巻く環境で、必要となる役割(職種)ですが、一番わかりやすいのはデータサイエンティストですよね。日本では、データに関わる人は全部データサイエンティストが暗黙のうちに担っているような気がしているのですが、、、
実態はもっと広く定義されており、
- データエンジニア
- データアナリスト
- データサイエンティスト
- ビジネスアナリスト
- ビジネスインテリジェンスアナリスト
と、その役割は多岐にわたります。
ここで、全ての職種の根幹となる共通の目標として、
データからインサイトやビジネス成果を引き出す
ことがあります。データを使う理由はいろいろあれど、結局はビジネスで結果を出すことなんですね。まぁそりゃそう。
The goal of the data engineering
上の目標を達成するためには、、
分析および意思決定に利用できる高品質なデータを作成すること。
が最低限必要です。意思決定をするためのInsightも全て、安全なデータがないと始まらんのです。
そのためには、生のソースデータを収集し、使えるようにデータを加工し、データを保存し、高品質なデータを安全に利用できるようしなければなりません。
それがデータエンジニアの仕事です!
ここ! ここが、この記事の抽象的な結論!
じゃあ具体的に何を勉強して経験したらいいんじゃ
って、なりますよね。なります。ならなかったらデータエンジニアにそもそも興味がない読者だと決めつけます。それか既に有識者の方。
そんなことは置いといて、
講義内では、プロの方が実際に持っているべきスキルセットについても語っていました。
一つ一つ説明するには多いので列挙します。
適宜知らないことがあったら調べてみてください。
- OSの知識
- Unix
- Linux
- WindowsOS
- インフラの知識と構築スキル
- 仮想マシン
- ネットワーク
- アプリケーションサービス
- クラウドベースサービス(AWS, GCP, IBM, Microsoftのやつ)
- データ周り
- RDBMS(IBM DB2, MySQL, Oracle Database, PostgreSQL)
- NoSQL(Redis, MongoDB, Cassandra...)
- Datapipelines(Apache Beam, AirFlow, DataFlow)
- ETL Tools(AWS Glue, Improvado, IBMのやつ)
- Languages(Query Language, Python, Java, Shell Script)
- BigData Processing Tools(Hadoop, Hive, Spark)
最後の方面倒だったのでデータまわりとまとめてしまいましたが、大体列挙するとこんな感じです。
OSとインフラの2つは、Computer Scienceの素養というか、求人でよく見る条件の
Computer Scienceの学位かそれに類する資格、経験等を持つ者
が思い浮かびますね。勉強すること多いけど、全部に専門性を持つ必要はなくて、ただ知っている必要がある。プロジェクトによってはインプットして実際に使える必要がある。というのが適切な表現だと思います。
まとめ
図の共通部分がデータエンジニアの役割だとも言えると思います。
この先の講義が進む中で、具体的な部分も学べます!
もし筆者がアウトプット頑張っているようだったらぜひそちらも読んでいただけたら幸いです。
今回受講している講義はこちらになるので、ご興味があれば是非リンクどうぞ!