Road to Data Engineer Workshop
Transcript of Road to Data Engineer Workshop
Road to Data Engineer Workshopมาลองเปน Data Engineer กน
ขอตกลงการเรยน: จดได ถามได
หาทจดไว ไมลมแนนอน
ระหวางเรยน ถามค าถามไดตลอดเวลา
ใน slido.com
ตอนจบแตละSection จะมเวลาให
ถามค าถาม
เปาหมายของคอรสน
Practicalคยกนแบบ Engineerประสบการณ > ทฤษฎ
Up-to-dateเนนเทคโนโลยทก าลงมาแรงและมแวววาจะอยไปอกนาน
Chapter 0:Welcome to the world ofData Engineer
Mission ส าหรบ Road to Data Engineer 2.0
ยนดดวย! 🎉คณไดรบเขาท างานเปน Data Engineer
คนใหม
และไดรบโจทยใหท าระบบจดเกบ data
ของรานขายหนงสอเสยงชอดง
Mission แรกของการเปน Data EngineerRequirement ทางธรกจ:ทม Product และทม Marketing ตองการเพมยอดขายในปน จงอยากรวาสนคาไหนขายด เพอจะไดหาสนคาทถกใจผบรโภคมาวางขาย และวางแผนจดโปรโมชนไดเหมาะสม
Requirement ทาง Tech:บรษทเกบขอมลยอดขายจากบนเวบไซต ไวในDatabase
ตองการใหทม Data Engineer เตรยมขอมลใหData Analyst เอาขอมลนมาท า Report และDashboard เสนอทม Product และ Marketing
Your first data engineering project
Website / App
Database
API
Data Lake Data Warehouse
Data Visualisation
1 2 3 4 5 6
Data Pipeline
COURSE OUTLINE
● CH0 Introduction to Data Engineering
● CH1 Data Pipeline & ETL
● Workshop 1: Data Collection with
Python
● CH2 Data Quality & Wrangling
● Workshop 2: Data Wrangling with
Spark
● CH3 Basic Cloud - Google Cloud
● Workshop 3: Data Storage with GCS
COURSE OUTLINE(2)
● CH4 Introduction to Airflow
● Workshop 4: Automated Data Pipeline
with Airflow
● CH5 Introduction to BigQuery
● Workshop 5: Building Data Warehouse
with BigQuery
● CH6 Introduction to Google Data Studio
● Workshop 6: Building dashboard with
Google Data Studio
● CH7 Advanced Data Engineering
INTRO TO DATA ENGINEERING
CHAPTER 0
เราจะเรยนอะไรกนใน CH0
✓ มารจกกบอาชพ Data Engineer
✓ Data Engineer vs Data Scientist แตกตาง
กนอยางไร
✓ Database, Data Lake, Data Warehouse
มนคออะไร เลอกใชยงไง
✓ Data Engineer ตองมความรดานไหนบาง
Data Engineer คอใคร?
World of Data Science
Data Analystวเคราะหขอมล
Data Scientistสรางโมเดลจากขอมล
Data Engineerสราง + ดแลทเกบขอมล
Data Lake /Data Warehouse / Data Platformทเกบขอมล
โลก Data Science มคนอย 3 ประเภท
อาชพทขาดไมไดในองคกรทตองการท า Data Science
“ส าหรบองคกรทมขอมลไมซบซอนควรม Data Engineer 2-3 คนตอ Data Scientist 1 คน
ส าหรบองคกรทมขอมลซบซอนควรม Data Engineer 4-5 คนตอ Data Scientist 1 คน”
https://www.oreilly.com/radar/data-engineers-vs-data-scientists/
https://towardsdatascience.com/who-is-a-data-engineer-how-to-become-a-data-engineer-1167ddc12811
Data Engineer
Data Engineer เปนทตองการของตลาด
https://www.indeed.com/career/data-engineer
งาน Data Engineer ในไทยชอต าแหนงงานใกลเคยง: Cloud Engineer, DevOps Engineer, Data Architect, System Engineer ฯลฯ
องคกรใหญ ๆ ทมขอมลเยอะ จ าเปนตองมคนทดแลงานดานนเชน บรษทในตลาดหน, การเงน ธนาคาร, บรษทประกน, E-Commerce
จางคนเดยวเปนทง Data Scientist และ Data Engineer ไดมย?
Data Engineer Data Scientist
การเขยนโปรแกรม
คณตศาสตร
ความรธรกจ
สถต
Machine Learning
วเคราะหขอมล
น าเสนอขอมล
Visualisation
ท าความสะอาดขอมล
Database /Data Lake / Data Warehouse
ระบบจดการขอมลขนาดใหญ(Hadoop, Cloud)
ETL
Unix / Bash
System Automation
Data Engineer กบ Big Data
Big Data คออะไร
19
Data ในปจจบนมขนาดใหญขนมาก
2010:1.2 Trillions GB
of data available
(1,200,000,000,000 GB)
2020:40 Trillions
GBof data available
(40,000,000,000,000 GB)
Source: EMC.com
ขอมลเตบโตขน ทกนาท
ใน 1 นาท:
● ผใชบน Youtube ดวดโอ 4.3 ลานครง● ผใชบน Google ท าการคนหา 3.8 ลานครง● ผใช Twitter สงทวต 470K ทวต● ผใช Spotify เลนเพลง 750,000 เพลง● ผใช Uber ใชเวลาเดนทาง 1.3K
(Reference: Data Never Sleep - https://www.domo.com/learn/data-never-sleeps-6)
ท าไม Big Data ถงใหญขนอยางรวดเรว
Big Dataคออะไร
4Vs by IBM
https://www.ibmbigd
atahub.com/infograp
hic/four-vs-big-data
ระบบทสรางขนมาเพอจะชวยใหเราควบคม Big Data ได
แบงเปน 2 ประเภทหลก ๆ
Big Data Platform
On-premiseตดตงบนเซรฟเวอรของบรษท
Cloud Computingใชบรการเซรฟเวอรผานระบบอนเตอรเนตสวนใหญมกจะเปนเซรฟเวอรของบรษทอน
Big Data Platform (On-Premise)
http://blog.newtechways.com/2017/10/apache-hadoop-ecosystem.html
storage
resource manager
processing
analysis
ingestion
Big Data Platform (Cloud computing)
Cloud computing: 3 top public cloud providers
ขอมล และ ทเกบขอมล แบบตาง ๆ
พฒนาการของวธเกบขอมล
เกบใสกระดาษ เกบใสตาราง เกบใสฐานขอมล
Types of Data
1. Structured Data
2. Semi-Structured Data
3. Unstructured Data
1. Structured Data คออะไรขอมลแบบทอยในรปแบบโครงสราง
ทแนนอน สามารถแสดงผลในรปแบบ
ของตารางได
เชน Excel, CSV, TSV
CSV ยอมาจาก Comma-Separated
Values คอ Text file ทไวส าหรบเกบ
ขอมลรปแบบของตาราง นยมคนดวย
Comma ( , ) หรอ Pipe ( | )
TSV ยอมาจาก Tab-Separated Values
2. Semi-Structured Data คออะไรขอมลแบบทมโครงสรางขอมลทมความยดหยน สามารถขยายโครงสรางขอมลไดในอนาคต
เหมาะส าหรบ: ขอมลทสามารถปรบเปลยนโครงสรางไดตลอดเวลา
Semi-structured data มหลายประเภทเชน Key-value, Document, JSON, XML, Graph
{"users": [{
"userId": 1,"firstName": "Adam","lastName": "Lee","emailAddress": "[email protected]"
},{
"userId": 2,"firstName": "John","lastName": "Doe","phoneNumber": "0406817201","emailAddress": "[email protected]"
}]
}
ตวอยางขอมลแบบ JSON (JavaScript Object Notation)
3. Unstructured Data คออะไร
ไฟล รปภาพ วดโอ เสยง
ขอมลทไมมโครงสราง
เชน
Types of Data Storage (ทเกบขอมล)
1. Database
2. Data Warehouse
3. Data Lake
1. Databaseเหมาะกบการเกบ Structured Data หรอ Unstructured Data ทตองการ เขยนและเขาถง อยางรวดเรวเชน Website, Application มอถอ, ระบบตาง ๆ ทมผใช ฯลฯ
แบงออกเปน 2 ประเภทใหญ ๆ
1.1) SQL Databaseส าหรบเกบขอมลเปนตาราง (Structured Data)
1.2) NoSQL Databaseส าหรบเกบขอมลแบบ Semi-Structured Data
1.1 SQL Databaseหรอ RDBMS (Relational Database Management System)
คอ ฐานขอมลส าหรบเกบ Structured Data สามารถดงขอมลดวย SQL
เกบขอมลเปนตาราง- Table (ตารางขอมล)- Schema (โครงสรางตาราง) - Relation (ความสมพนธระหวางตาราง)- Primary Key (key ทไมซากน เพอใชอางองในแตละแถว)
ตวอยาง Database Schema
ตวอยาง Database Relation
1.2 NoSQL Database
ฐานขอมลอกประเภท ทเกดขนมาส าหรบ Semi-Structured Data
NoSQL = Not Only SQL หมายถงวา Database แบบ NoSQL บางตวกอาน SQL ได
เชน MongoDB หรอ Neo4J
Document stores Key-value stores Graph DBMS Wide column stores
Database Models ยงมอกมากมาย● Relational DBMS
● Key-value stores
● Document stores
● Graph DBMS
● Time Series DBMS
● Object oriented DBMS
● Search engines
● RDF stores (triplestore)
● Multivalue DBMS
● Wide column stores
● Native XML DBMS
● Event Stores
● Content stores
● Navigational DBMS
DB RankingSource: https://db-engines.com/en/ranking
2. Data Warehouseเหมาะกบการเกบขอมลประเภท Structured data ทมขนาดใหญ ใชพนทจดเกบทมปรมาณมาก
ขอมลทเกบมกจะเปนขอมลในอดต (historical data) ทไมมการเปลยนแปลง
(เราจะลองใช Data Warehouse กนในบทท 5)
ตวอยางการน าไปใช เชน
- การท า Dashboard / Report หรอ การท าขอมลเพอประกอบการตดสนใจ (Business Intelligence)
- การวเคราะหขอมล Data Analytics หรอการน าขอมลไปเพอไปสรางโมเดล
ตวอยาง Data Warehouse
Amazon Redshift
Google BigQuery
Snowflake
Azure Synapse
Apache Hive / Impalaรปตวอยางหนาจอ (UI) ของ Google BigQuery
Structured Data เกบทไหนด: OLTP vs OLAP
OLTP (On-Line Transaction Processing)⇒ Database
● ออกแบบมาส าหรบการเขยนและอปเดตขอมล
● พบไดบอยใน application, เวบไซต
OLAP (On-Line Analytical Processing)⇒ Data Warehouse
● ออกแบบมาส าหรบการอานขอมลเยอะๆ เพอน าไปวเคราะห หรอท า Data Visualization (Chapter 6)
● เหมาะกบการวเคราะหขอมลทซบซอนโดย Data Analyst และ Data Scientist
[ DB [DW]
Oracle DB Apache Hive
3. Data LakeData Lake เปนทเกบขอมลขนาดใหญ รองรบขอมลทกรปแบบทเปนไฟล
คลาย Harddrive ในเครองคอมพวเตอรของเรา แตมระบบปองกนขอมลสญหายทดกวา
เกบไดทง Structured Data, Semi-Structured Data และ Unstructured Data
(เราจะลองใช Data Lake กนในบทท 3)
Apache Hadoop HDFSHadoop Distributed File
System
Amazon S3 Google CloudStorage
Azure BlobStorage
Data Lakeบางครงกถกเรยกวา object storage หรอblob storage
วธเลอก Data Storage: เลอกตามจดประสงคการใชงาน
เกบขอมลในระบบทมการใชงานและเปลยนแปลงตลอดเวลา
เชน
- ฐานขอมลทใชงานในธรกจ หรอ อตสาหกรรม- การใชงานรวมกบ application หรอเวบไซต
⇒ Database (DB)
เกบขอมลเพอการวเคราะหขอมล ส าหรบขอมลทไมม
การเปลยนแปลงแลว
มกจะดงขอมลจาก Database มาเกบ เชน
- การน าขอมลไปวเคราะห หรอ สรางโมเดล
- ใชขอมลเพอสราง BI dashboard / Visualization
⇒ Data Warehouse (DW)
เกบขอมล Unstructured Data เชน รปภาพ, ไฟลเสยง, วดโอหรอการเกบขอมลดบ (raw data) ในรปแบบของไฟล เชน .txt, .csv ในราคาประหยด
⇒ Data Lake (DL)
Pattern พนฐาน ในการเกบขอมลบนระบบ Big Data
DatabaseSemi-Structured Data &Structured data
DataWarehouse, Data Mart
Data Lake
ขอมล Structured (SQL)- เกบใน SQL Database, Data Lake,
Data Warehouse
Unstructured Data
ขอมล Semi-structured (NoSQL)- เกบใน NoSQL Database หรอ Data
Lake- Data Warehouse บางตวเกบ Semi-
structured ไดแลว
ขอมล Unstructured- เกบใน Data Lake
เรองอน ๆ ท Data Engineer ตองร
Data Pipeline คออะไร
ตวอยางระบบ Data Pipeline
Azure Data Factory
Apache Airflow(เรยนในบทท 4)
Amazon Glue
รปตวอยางหนาจอ (UI) ของ Azure Data Factory
Programming
Bash Script Java or Scala
Python
Software Engineer & Automation
Software EngineeringGit, Container (Docker, K8s)
AutomationAirflow, Terraform Apache Airflow Terraform
Git Docker Kubernetes
Technology Stack
Data Lake Data ProcessingData Warehouse Data Pipeline
Azure Data Factory
Apache Airflow
Amazon Glue
Amazon Redshift
Snowflake
Azure Synapse
Google BigQuery
Azure Blob Storage
Amazon S3
Google Cloud Storage
Apache Spark Apache Beam
Apache Hive Apache Oozie LuigiCloud Dataproc
Cloud Dataflow
เกบขอมลทกรปแบบ เกบขอมลส าหรบวเคราะห
ประมวลผลขอมล ควบคมการเคลอนทของขอมล
Data Engineer มเทคโนโลยใหเลอกใชเยอะ เชน
เราไมจ าเปนตองรจกทก Tool แตควรรวามการแบงกลมเปนอยางไรบาง เพอทจะเรยกใชได
Data & AI Landscape 2020 Source: https://mattturck.com/data2020/
Data & AI Landscape 2020 (zoom in) https://mattturck.com/data2020/
สรป อยากเปน Data Engineer ตองรอะไรบาง
1. Big Data Platform (Hadoop & Cloud)
2. Data Pipeline
3. Data Storage - DB, DW, DL
4. Software Engineering
5. Automation