【CompTIA】Data+ を勉強してみた

# はじめに

所属している会社でCompTIAを受験する必要があり、CompTIA Data+を受験しました。情報系学部と統計学部を修了し、システム開発やデータ分析の仕事をしているので良いレビューになりました。この記事では、公式の書籍を読みながら私が勉強したノートのまとめています。メモ程度ですが、試験範囲や問題の難易度を知りたい方に読んで頂ければと思います。

参考書に沿ってまとめています。レッスン18まであるのですが、後半は基礎統計とソフトウェアの話が多かったので割愛しています。（時間がなかった、、、）

参考書を1回読み、知らなかった部分を見直しまとめたら合格できるくらいの難易度でした。

# レッスン1 データスキーマの基本コンセプトを理解する

https://qiita.com/yokoshu25/items/6404cf6041c915f65456

https://qiita.com/yokoshu25/items/6b01b8bccf5994cd3f2a

https://qiita.com/yokoshu25/items/8a5d3293fc177689ee9c

# レッスン2 様々なデータシステムを理解する

**データレイクやデータマートの基礎知識**

https://www.softbank.jp/biz/blog/cloud-technology/articles/202302/dimensional-modeling/

**データテーブルの変化と変換方法**

slowly changing dimention

type 1

過去のレコードが新しく塗り替わる

|prodact ID|product name|
|---|--|
|123|Super baseball bat|

|prodact ID|product name|
|---|--|
|123|Hyper baseball bat|


type 2

過去と現在のレコードを別の物として保存

|prodact ID|product name|release date|end date|delete|
|---|--|---|--|---|
|123|Super baseball bat|2020/04/01|2022/04/01|1|
|123|Hyper baseball bat|2022/04/01|209l/04/01|0|


type3

現在の名前を残して過去レコードの塗り替え

|prodact ID|product name|name history1|
|---|--|----|
|123|Super baseball bat||

|prodact ID|product name|name history1|
|---|--|----|
|123|Hyper baseball bat|Super baseball bat|

# レッスン3 データの型と特性を理解する

定量データは数値で表現されているデータで、その中でも一般的に整数で表されるのもは離散型データ(discrete data)、主に測定などに用いられるのが連続データ(continuous data)と呼ばれる。定性データにも、データに順序があるデータ（幼稚園の学年区分など）は順序データ(ordinal data)と呼ばれ、そではないデータに関してはノミナルデータ(nominal data)と呼ばれる。

また、DBにもつ場合のデータ型も一通り理解すること。


# レッスン4 構造化データと非構造化データを区別する

構造化データ:csvなど、列と行で構成させるデータ。テーブルデータとも呼ばれる。
非構造化データ:PNGや音声ファイルなど、テーブルに収まらないデータ。Bolbストレージで保存される様なデータ
半構造化データ:JSON,XMLなどの構造化データほどまとめられていないデータ形式

区切りファイル(delimited text file):ある特定な文字でデータが区切られているファイルのこと。
フラットファイル：システムからエクスポートされ、どのDBとも連携していないファイルの事

HTMLやXMLもデータ保管・転送方法なことを理解する。

# レッスン5 データの統合・収集方法を説明する

ETL(Extract Transform Load):データをソースシステムからデータウェアハウスへと移す際のプロセス

ELT(Extract Load Transform):データをソースシステムからデータレイクへと移す際のプロセス。データ形の規則がデータウェアハウスよりゆるいデータレイクへロードすることを許している

データの取得方法一覧
・API
・Webスクレイピング
・マシンデータ：マシンやセンサーが取得しているデータ。ログインログや環境センサーで取得するデータ
・パブリックデータ：一般利用が許されているデータ
・調査データ：アンケートやサーベイの様なある目的のために収集されたデータ


# レッスン6 データのクレンジングとプロファイリングの一般的な理由を特定する

データプロファイリング：データ分析において、対象のデータについての構造や理解し、分析を開始できる状態にする工程のこと。

冗長データ(redundant data):複数の場所に同じデータがある状態の事。部門毎にプロダクトのデータを保存し、同じプロダクトに対し複数の場所でデータを管理している場合、どれが正しいデータかを判断する必要がある

複製データ(replicated data)：同じデータに複数同じレコードがある状態の事。様々な場所からデータを持ってきて、マージした時に起こりやすい

Null：フィールドに値がない事を意味する。なぜないのかを考える事で分析に価値のあるデータになる事がある。補完するか、フィルターするか、データを見ながら判断する必要がある


# レッスン7様々なデータ操作手法を実行する

帰納変数:既存データから変換または作成されたデータ。入荷日と出荷日の間から保持日数を算出した数字などの事を指す。


データのサンプリング
・単純無作為抽出(Simple random sample)
・層化抽出法 (Stratified sampling)：データを属性などでサブグループにわけそこからランダムに抽出する手法

データのクエリ

• Cross Join（交差結合）/Cartesian Join（直積結合）： キーフィールドで直接結合せず、存在するすべてのデータに対して全通りの結合を行う
• Inner Join（内部結合）：両方のテーブルに存在するレコードだけ表示
• Left Outer Join（左外部結合）：左側のテーブルにはすべての結果が表示され、右側テーブルの一致するレコードの身が表示
• Right Outer Join（右外部結合）：右側のテーブルにはすべての結果が表示され、左側テーブルの一致するレコードのみが表示
• Full Outer Join（完全外部結合）： 一致しているかしてないかにかかわらず、全レコードを結合し、表示

**Cross Join/Cartesian Joinの例**

Table: A

|id|gu|
|--|---|
|1|梅|
|2|昆布|
|3|鮭|


Table: B

|id|rice|
|--|---|
|1|白米|
|2|麦ご飯|


```sql
select
    A.gu , B.rice 
from A
    cross join B;
```

|gu|rice|
|--|---|
|梅|白米|
|梅|麦ご飯|
|昆布|白米|
|昆布|麦ご飯|
|鮭|白米|
|鮭|麦ご飯|

※すべての組み合わせを返す


# レッスン8データの操作と最適化の一般的なテクニックを説明する


Excelの関数を一通り理解する
・SUM
・COUNT
・DISTINCT COUNT( ≒ UNIQUE)
・TODAY　　　など

SQLの一時テーブルやサブサブクエリを理解する




# おわりに

まだ、まとめきれていない所があるのですが、今後時間があったらまとめたいと思います。


合格するとバッチがもらえます。

https://www.credly.com/badges/1036f9ad-07fb-47b1-a883-9f7d03e06fd1/public_url