# DataTechnology - Overview
:::warning
:::spoiler 目錄 ( :mag_right: 點我,可展開 )
[TOC]
:::
## Information Technology

- **OLTP|線上交易處理|Online transaction processing**
- Transactional 代表 4 大動作
- crud,新增,修改,刪除,查詢,多人同時去執行這幾個動作 create read update delete
- lock
當有一個人在改資料內容,系統會鎖住那筆資料,等他改完,其他人才能看到那筆資料
- rollback
以銀行轉帳為例,當A帳戶轉錢給B帳戶的過程中,因為動物攻擊線路造成停電,A轉錢轉到一半無法成功,這時候系統就會rollback倒退回去更改回去的狀態,A帳戶扣掉的錢會再次新增回來
- commit
完成,當A轉戶成功轉錢給B帳,A帳戶扣錢,B帳戶前增加,這兩個動作完成,就會顯示commit
- OLTP 沒辦法同時處理很大量的資料,因為同時多人在做 Transaction 的 4 個動作,所以沒辦法同時處理很大量的資料
- 以上這些 Transaction 動作會由 Transcation Log Reader 紀錄。
- OLTP 應用程式 : MS SQL, MySQL, Oracle
- 企業買電腦為了 run application 會裝防火牆、防毒軟體,為的就是 run 的長長久久。
- 如何做備份?
- Transaction Log Reader
Lod Reader 意思是說,Server本身會有做一個紀錄,全程紀錄,會有一個log的存放區
會有另一個程式,去讀取 Transaction log 檔,這個程式就叫 CDC ( Change data capture ) ,只要這個 log 檔一有變動,就會馬上把資料抓出來,把抓到的資料做整理,整理後再透過 Stream Loader 丟到 OLAP 進行重播,譬如在 OLTP 這個 DATABASE 新增一筆資料,CDC 抓到了這個 log 檔,會在 OLAP 這裡的資料庫也新增一筆資料,只要硬體設備夠強,可以做到即時作業
- Bulk Loader
批次備份,通常會在半夜進行。
OLAP|線上分析處理|Online Analytical Processing
- 在這台資料庫伺服器裡面,只會用到 read,不會做修改,主要的功能是用來做商業分析,用的命令像是 select...等
- Data Warehouse
- Business Intelligence 商業智慧
- 在 select 之前,一定要先 create
- schema on write
- 先產生 Database 及 Table,才能做後續的資料儲存及分析
> Teradata ,一間公司,它的軟體和硬體拿來做 BI 很強,但很貴
「Business Intelligence」
現在的公司使用資料庫就是為了能夠
分析出有效、有價值的決策報告,
但是 teradata 天睿這家公司出版的 Teradata 資料庫,
不只軟體價格變高,還要求使用指定的硬體設備,
讓很多公司受不了
:::spoiler VMware 網路複習
!
VMware 網路模式
Host|不可上網,僅限虛擬網路內部通訊
Brigde|可以上網,藉由橋接器領取與主機相同網段的 IP Address
NAT|可以上網,透過封包轉送實現虛擬網路上網
>route r負責讓要送的封包,讓他傳到外面的網路
NAT 會把封包的 Source IP 位址進行更改,才能上網,所以和 router 不一樣
VMware player 的 3 種網路模式,事實上都有一個虛擬橋接器,NAT模式因為有開啟轉址功能才可以上網,而 Host only 沒有開啟轉址功能,所以不能上網
> 當整間教室的所有 windows 主機都用 VMware 啟動一台 bridge 網路的虛擬機,其實就等同於一個私有雲的架構,
> 公有雲,以 GCP 為例,他的實體電腦用的是什麼作業系統,用什麼虛擬技術建立虛擬機器?
> Google 絕對不會使用 windows 作業系統,因為他們可以自己建立作業系統,用 KVM 的虛擬技術起虛擬機器,不過他的虛擬技術不一定要叫 KVM
之後要教的 Hadoop, Spark 和 Hbase,可以讓我應徵資料管理師,資料分析師和資料科學家
---
:::
---
## DataTechnology

++**新世代的資料科技|DataTechnology (DT)**++
- 資料來源(data lake):
- 傳統的 IT 系統的資料,例如 : MS SQL, MySQL, Orcale 的資料
- OpenData | 開放資料平台,不會有 license 問題
- 缺點 : 資料不整齊,亂七八糟。
- IoT - Internet of Things | 萬物皆連線,用於環境監測、智慧居家、自動化工業...
- 企業內部資料|同一間公司,不同部門的文本資料、營運資料...
- 爬蟲資料|到網路上去抓取特定資料
- 黑資料 | 私下用錢買賣資料
- 以上的資料都會上載到 Hadoop
Dara lake (資料湖) 和 資料倉儲 不一樣,資料倉儲是已經先做初步分類; 資料湖則是在資料先進到湖裡,在湖旁邊蓋很多工廠再做處理
第一個工廠
Apache Hive,讓我們可以用 SQL command,對資料湖做分析
第二個工廠
Spark,做深度分析,機器學習
Spark Straming , 分析 IOT 的資料
第三個工廠
Hbase,可以承接 IoT 的資料,以及 nosql 的資料
資料庫的核心就是Hadoop,
以 Hadoop 為主 + Hive 就可以做出企業要的 BI
- 請問可以說是因為關聯式資料庫使用上成本較高,所以大家才開始使用 hadoop 嗎?
- 答 : 大單位在用傳統關聯式資料庫的維運成本才會比較高,小單位的部分並不會有這部分的問題,故學 Hadoop 可以為有一定規模的公司解決維運傳統關聯式資料庫成本高的問題。
---

- <font color=red>**Hadoop 被設計出來,用來處理 RAW DATA(原始資料)**</font>,像是氣象局的氣象資料或是火車的誤點資料,RAW DATA 的資料不能被修改
- Raw Data (原始資料) : 一但產生,即不可修改 (例: 火車時刻表、各區域排碳量、機場出入境人次、感測器所蒐集的資料)
- 4V
- VELOCITY,這種 RAW DATA 是一種"串流資料",一段時間就會有資料輸入,有分為高中低3種速度 高速:微秒,中速:秒,低速:分
- Variety,企業 IT 系統的紀錄檔( log 檔),舉例,醫院的病歷歷史資料, Open Data (政府資料開放平臺),社交網站的資料( Facebook, Line )
- Volune,台灣的大數據資料量單為是 T,
- Veracity,資料真實性,老師翻成品質,因為資料越真,品質越高
---
## Hadoop Architecture

- **Hadoop Common**: The common utilities that support the other Hadoop modules.
- 對於 hdfs, YARN, MapReduce 的管理命令和應用命令
- **Hadoop Distributed File System (HDFS™)**,分散式檔案系統,**這套檔案系統在運作一定要多台電腦**
> windows 的檔案系統為:NTFS or FAT32 ,只能在一台電腦上面跑,所以檔案系統的大小是有限制的。
- **YARN ( Yet Another Resource Negotiator )**,運算系統,專門來跑資料處理引擎的程式,可以平行處理,意思就是說可以在多台電腦同時讓 Mapreduce 和 Spark 跑程式分析資料
> Hadoop 算不算一個資料型的作業系統?
> 是,因為它具備資料儲存、運算能力
> windows 裡,執行程式的平台叫做 `.net`,其中有一個 msSQ
- **MapReduce**,內建資料處理引擎,用來做資料分析
- **Spark**,(可加裝)也是資料處理引擎
- **Hive**,會將 SQL Command 翻譯成 Map, Reduce 程式,最後得出分析結果
[Hadoop 官網連結](https://hadoop.apache.org/)
### Related projects (Hadoop的親戚)
- Hbase 資料庫,一定要使用 HDFS 檔案系統來儲存資料庫的 DATA
- Hive,內定使用 Mapreduce 資料處理引擎,來分析資料
- pig 豬小弟,內定會使用 Mapreduce 來做資料整理
- Spark 是 Hadoop 的朋友,不是親戚,他們是在一場比賽中認識的, Spark 他的強項在於 RDD 資料處理引擎,表現比 Mapreduce 強很多,但底層一樣要有存儲檔案系統和運算系統, Spark 跑到公有雲(GCP,AWS, Azure),可以使用公有雲的存儲檔案系統和運算系統; 在 Hadoop 上跑的話,需要有底層( HDFS、YARN ) support 才可運行
> 雅馬遜的檔案系統 S3
---
## Hadoop Cluser 架構

- Hadoop 一定由多台電腦以及上面跑的 Java 程式組成。
- dta1,這台電腦給資料管理師,資料工程師,資料分析師,資料科學家用的
> 叢集 cluster,多台電腦
- HDFS 檔案系統的組成:
- dtm1 裡面有 Secondary Name Node 和 Namenode ( 兩個 Java程式 )
- dtw1, dtw2, dtw3 三台電腦上面都有 run Data node(Java程式)
- YARN 由以下組成:
- dtm2 裡面的 Resource Manager ( Java 程式 )
- dtw1, dtw2, dtw3 三台電腦上跑的 Node Manager ( Java 程式 )
- Hadoop 叢集總共會有 7 台電腦,Client 一台,Secondary NameNode 一台,Active Namenode 一台,Data Node + Node Manager 4 台
> Standby NameNode 是獨立的Active Name Node 備援機
> 在 Open Source 的領域要看功能與支援程度,不是一昧追最新的版本
Hadoop 2.10.1 這個版本在Apache裡面,跟很多頂級專案是朋友,所以功能會比較多
[Apache.org 裡面都是頂級專案](https://apache.org/)
---
{%hackmd K3xvoyRCRNS-b4-sPS1W_Q %}
{%hackmd zObYmETOSbS--aHj4Ycbaw %}
{%hackmd cVAzCcAfQE2919WvyX_1-w %}
{%hackmd 5O2EFLOOTlKRNc498z6JDQ %}
{%hackmd sH4pBq1fTiKKDPqM2xXjsg %}
###### tags: `資料科技平台`