Study

【Udacity】データエンジニア勉強中 -データモデリング-【2】

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

前回はこちら

Udacity Data Engineering 進捗状況

  • 2 Data Modeling
    • Lesson1 Indroduction Data Modeling
    • Lesson2 Relational Data Models

が終わりました。簡単なハンズオン含めて、Lesson1は全21セクション、Lesson2は全26セクションでした。

この後、RDBのプロジェクト、NoSQL Data Model、NoSQL Data Modelのプロジェクトをやって、ようやく全体の1/5相当の「2 Data Modeling」が終わります。かなり遅れていますね。ペースを上げていかないとまずそうです。

学習内容まとめ

Lesson1 Data Modelingとは

Data Modelingについての概論です。モデリングという単語は、日本人には馴染みない感じがしますが、要はデータをどうやって持つかを設計する的なニュアンスでしょうか。

ここのLessonでは、RDBとNoSQLの違いを勉強する感じです。

まとめると、RDBはACIDという利点があるけど、拡張性やパフォーマンスはいまいち、NoSQLは大容量が可能でパフォーマンスがいいけど、ACIDじゃないよって内容です。

以下、まとめノートです。
Udacity-DataEngineering2-2-lesson1

Lesson2 RDB

RDBなので楽勝だろうと思って、まったりやっていました。実際、ほとんど知っていることばかりだったのですが、ところどころ知らないものがあったりしました。RDBといってもインフラの観点や開発の観点で、見るべきものが違ってきますが、そのどちらとも少し違っていて、ああ、データエンジニアっぽいなと思いました。

以下はまとめノートです。
Udacity-DataEngineering2-2-lesson2

正規化と非正規化

この辺はRDBの基本中の基本ですね。

非正規化は正規化の後の工程と紹介され、そういえばそうだったなと思いました。非正規化はデータのintegrity(唯一性?)を犠牲にして、読み込み性能を上げるための工程です。

実際はindexを張ることで事足りることが多く、ほとんど使ったことがないのですが、データ分析の分野では、使うのでしょうか? この辺りも、今後わかってくるといいなと思いました。

OLTPとOLAP

これも、そういえばあったなーって感覚でした。普段はOLAPを使うことはないので、この辺は意識すること無くやってますね。

FactテーブルとDimensionテーブル、スタースキーマと

これは知らない概念でした。RDBを普通に設計していたら結果として、できてはいることですが、理論としてあったんだなと思いました。

DBぐらい余裕だと思っていたのですが、いろいろと不勉強でした。DBやデータ周りは、一度、専門書で勉強しなおしておいた方が良いかもと思いました。

ハンズオンについて

lesson1もlesson2も内容的にはたいしたボリュームじゃないのですが、ハンズオンがあってそれなりに時間がかかります。

ハンズオンは、Jupyterで提供されています。ブラウザ上で入力しないといけなかったり、何回も上下にスクロールしたりなどで疲れます。モニターが2、3枚あったほうがいいなと思いました。

あとブラウザ上での入力は辛すぎるので、結局はローカルのエディタやIDEを併用したほうが良いと思います。

私は全部やりましたが、ハンズオンは飛ばしてもいいかも思いました。Jupyterでの操作が辛いですし、この後、プロジェクトでがっつりとやる見たいですし。