📝

(ほぼ)未経験エンジニアがData Engineering Zoomcampに参加した話

に公開

Data Engineering Zoomcampとは、初学者向けにデータエンジニアリングの概観を示す無料MOOCコースである。個人的には受けて良かったと感じているので、コースを紹介する。

コースの紹介

コース受講に必要な知識

前提としてコマンドラインやSQLの基礎知識が必要とコース公式ページにある。データエンジニアリングの経験は不要。Pythonの経験があると望ましいが、Pythonを未経験でも他のプログラミング言語の経験があればコースを受けながらPythonを学ぶやり方で問題ないとのこと。

対応言語

英語のみ。

コース進行

GitHub上にアップロードされた教材を学ぶ形でコースを進めていくため、学習者が自分のペースで学習できる。
コースの開催時期は毎年1月から4月までとなっている。が、その時期以外でもコースの内容を同様に学習することは可能。ただしメールアドレスを登録した上で各週ごとの課題を定められた期限に提出すると受講者のスコアボードに自分のハンドルネームと合計点数を載せられる。また最終プロジェクトを提出するとコース受講証がもらえる。

コースで学ぶ内容

6種類のModuleと2種類のWorkshopと最終プロジェクトからなる。Moduleがツールの使い方だけではなく、概念も含めたある程度包括的な内容を扱うのに対し、Workshopはツールの使用方法を主に解説している。最終プロジェクトでは学習者が自分で選んだデータセットをETLし、ダッシュボードを作成する。

コースで学べる内容の一覧

Module 1: コンテナ化とInfrastructure as Code
コース全体像
GCP入門
DockerとDocker-Compose
Dockerを使用してローカルでPostgresサーバーを立ち上げる
Terraformを使用してGCPのインフラを立ち上げる
コース受講用環境の構築

Module 2: ワークフローオーケストレーション
データレイク
ワークフローオーケストレーション
Mageを使用したワークフローオーケストレーション

Workshop 1: DLTを用いたデータの取り込み
APIからの読み取り
スケーラブルなパイプラインの構築
データの正規化
インクリメンタルロード

Module 3: データウェアハウス
データウェアハウス
BigQuery
パーティショニングとクラスタリング
BigQueryのベストプラクティス
BigQueryの内部構造
BigQueryでの機械学習

Module 4: アナリティクスエンジニアリング
アナリティクスエンジニアリングの基本
dbt
BigQueryとdbt
Postgresとdbt
dbtモデル
テストとドキュメント作成
クラウドおよびローカルへのデプロイ
Looker studioとMetabaseを使用したデータの可視化

Module 5: バッチ処理
バッチ処理
Sparkとは何か
Sparkデータフレーム
Spark SQL
Sparkの内部処理:group byとjoinのケース

Module 6: ストリーミング
Kafkaの紹介
スキーマ(avro)
Kafka Streams
Kafka ConnectとKSQL

Workshop 2: SQLによるストリーム処理
RisingWaveなど

最終プロジェクト
第1週および第2週:プロジェクト作業
第3週:仲間のレビュー

コースの長所・短所

以下、主観と偏見によるコースの良い所、逆に癖がある所を述べる。

コースの良いところ

前提知識少な目でデータエンジニアリングの全体像を概観できる

未経験エンジニア初心者でも理解できるほどの易しさで、データエンジニアリングの全体像を薄く広く学べる。

標準的なモダンデータスタックに含まれる技術はカバー

GCP, BigQuery, dbt, spark, kafkaなど現在普及している技術を主に解説している。

ツールの使い方だけではなく概念を学べる

このコースで紹介されている技術が仮に廃れたとしても、技術を通じて解説される概念(ETL、オーケストレーション、データウェアハウス、アナリティクスエンジニアリング、バッチ処理とストリーミング処理などなど)が学べるのでコースを受けて損はしないと考える。

無料

無料なのは良い

コースの癖

英語

教材の言語は英語のみ。とくに講義ビデオの内容を聞き取るのに語学力が要る。

一部(まだ)成熟・普及していない技術を解説している

オーケストレーションツールとしてMage、データ取り込みツールとしてdlt、ストリーミング処理ツールとしてRisingWaveを解説している。これらの技術は新しすぎ、本番環境で使われているケースは2024年7月現在はほとんどないのではないかと思われる。
なぜ普及していない技術を解説しているかと言うと、本コースのスポンサーがこれら技術の開発元であるため。スポンサーのおかげで無料で本コースが作成・運営出来ていることを忘れてはならない。
要らないと思えば、これらツール部分の教材を学習せずスキップすることもできる(課題を提出しない場合)。

教材の内容をなぞるだけではコードが実行できないことがある

講義ビデオで提示されたコードを実行していくと、つまづく部分がある。次に進むには自分でデータ整型のコードを書く必要があり、手間がかかる。捉え方によってはこれもデータ整型の学習になるとも言えるだろう。しかし、個人的には提示されたコードを順番に実行すれば動くようにしてほしかった。

私の学習体験

私は2023年度12月から未経験データエンジニアとして働き始めた。業務における知識不足を実感。したこともあり、本コースを2024年度1月から受講した。結論から言うと、コースを受けて良かったと感じている。特に今まで触れたことのなかったTerraform、dbt、kafkaについては学べることが多かった。プロジェクトでダッシュボードを作成したことで、ポートフォリオが一つ増えたのも嬉しいポイント。(私はGitHubの人気レポジトリランキングを可視化するダッシュボードを作成した。)データエンジニアリングをこれから学びたい方、かつ英語が出来る方には是非受講をおすすめしたい。2024年12月現時点での次の開講は2025年1月13日となっており、いま申込が可能

Discussion