Study

【Udacity】データエンジニア勉強中 -DWH-【5】

UdacityのData Engineering Nanodegree Programの経過報告になります。

前回はこちら

Udacity Data Engineering 進捗状況

全行程6の内の4番目、「3. Cloud Data Warehouses」が完了しました。

前回のDWHの基本理論以降は、Clooud周り、AWSの基本関連で、既に知っていることばかりでしたので、学習自体はサクサク進みました。

AWSの基本をやったあと、Redshiftのテーブルデザインの座学などがあって、この辺りははじめて知った概念でしたので勉強になりました。

学習内容まとめ

Udacity-DataEngineering3-2

プロジェクトは苦戦した

今回の章の最後のプロジェクトはけっこう苦戦しました。提出後の修正は発生しなかったので、一回の提出で終わったのですが、提出するまで色々エラーが出て動かなかったりで大変でした。

プロジェクトの内容は、Redshiftの一連のETLを構築するPythonコードの作成です。やることは、Redshiftクラスタを構築、Redshift上にステージングテーブルを作成してS3にあるJSONファイルをcopy、Redshift上にファクトテーブルとディメンションテーブルを作成して、ステージングテーブルからロードです。

Udacityで用意されたAWSアカウントを使うのですが、使用可能なのは$25までという制限があるので、作業前に毎回Redshiftクラスタを構築して、作業後は削除するというのが面倒くさかったです。

RedshiftのCOPYコマンドがエラーで動かなくてその調査で時間を結構使いました。やっていて、もうこれ仕事じゃんと思いました。なんで自分は逆にお金を払ってこんなことしてるんだと思ってしましました。

また、S3のJSONファイルはpathやスキーマは与えられますが、ファイルを直接参照できるわけではありません。このあたりも実仕事のような条件がありました。

また、ステージングテーブルからファクトテーブルやディメンションテーブルにloadするときのSQLは、ウィンドウ関数でデータ整形したりなどのデータエンジニア的な作業も求められました。まあ、データエンジニアになるためのプログラムなので当然かもしれませんが・・・

今回のプロジェクトは、実践に近くいろいろなスキルを要求された気がします。疲れました。

次は「Spark and Data Lakes」

Sparkはずっと興味があったのですが、これまでまとも触ったことがことないので、楽しみだったりします。

Sparkの次はAirFlowで、この辺りはビジネスよりの気がするので、個人的にはこの辺りの興味はあんまりだったりします。このUdacityのData Engineeringのプログラムでは、次の章が一番面白そうです。