สรุป data fundamentals ใน 51 นาที (Azure Data fundamentals)
จาก lecture ของ mew_sandbox , สรุปเนื้อหา Azure Data Fundamentals (DP-900)
Azure Data Fundamentals (DP-900) เป็น certificate ระดับ Fundamental , เนื้อหากว้างแต่ไม่ลึกมาก. นี่คือภาพรวมของทุกคอนเซปต์หลัก.
ประเภทของ Data
Data มี 3 ประเภท: Structured , เก็บในตาราง, มี schema คงที่ (fix column types), เช่น relational database. Semi-structured , JSON/XML, มี key-value แต่ schema เปลี่ยนได้. Unstructured , images, audio, PDF, เก็บเป็น binary/blob. Unstructured data ทุกประเภทใช้ BLOB (Binary Large Object) ในการจัดเก็บ.
File Stores
File formats แบ่งเป็นสองกลุ่ม: Human-readable (CSV, JSON, XML , คนอ่านได้ แต่ช้าในการ query) และ Optimized formats (สำหรับ compression + query performance).
ในกลุ่ม optimized: Avro เป็น row-based , ดีสำหรับ write เพราะเขียนต่อเนื่อง. Parquet และ ORC เป็น columnar , เก็บแต่ละคอลัมน์แยกกัน → ดีสำหรับ query เพราะดึงเฉพาะคอลัมน์ที่ต้องการ → อ่านเร็ว, compact. Parquet ถูกใช้มากในบริบท Data Lakehouse.
Relational vs NoSQL
Relational (SQL) เก็บใน tabular format , มี schema ชัดเจน , ใช้ SQL query , ตัวอย่าง: PostgreSQL, Azure SQL. NoSQL ไม่มี fixed schema , แต่ละ record อาจมี structure ต่างกัน , 4 ประเภท: Key-Value, Document DB (MongoDB), Column-family (Cassandra), Graph DB (เน้น relationships).
OLTP vs OLAP
OLTP (Online Transaction Processing): เน้น write operations , ธนาคาร, โอนเงิน, CRUD , ใช้ ACID properties (Atomicity, Consistency, Isolation, Durability) , high rate, real-time. OLAP (Online Analytical Processing): เน้น read operations , analytics, reporting , query ปริมาณมาก , ไม่จำเป็นต้อง ACID.
Rule of thumb: OLTP → Normalize (แยกตาราง, ลด duplication → write เร็ว, data integrity). OLAP → Denormalize (รวมตาราง, ลด JOIN → read เร็ว).
Data Pipeline & Architecture
Pipeline: Raw Data → ETL/ELT → Warehouse/Lakehouse → Analytics.
ETL (Extract → Transform → Load): แปลงก่อนโหลด. ELT (Extract → Load → Transform): โหลดก่อน ค่อยแปลงทีหลัง.
สองสถาปัตยกรรมหลัก: Data Warehouse: เก็บ data ที่ cleaned/transformed แล้วใน Star Schema (Fact Table + Dimension Tables) → query ด้วย SQL , ตัวอย่าง: BigQuery, Azure Synapse. เก็บเฉพาะ structured data. Data Lake: เก็บ raw data ทุกประเภทใน Cloud Object Storage (Azure Blob) → แต่ query ยาก ต้อง process ก่อน. Data Lakehouse: blend ข้อดี , raw data อยู่ใน lake เดิม → แต่ query ได้ด้วย Spark engine → ไม่ต้องย้ายเข้า warehouse. Delta Lake เพิ่มฟีเจอร์: enforce schema ได้ (คล้าย ACID), ทำให้ Lake มีความสามารถแบบ Warehouse.
Azure Storage
Blob Types: Block Blob (binary files, รูป/วิดีโอ), Page Blob (VM disks), Append Blob (logging , add อย่างเดียว).
Storage Tiers: Hot (เร็ว, แพง) → Cool (ช้าลง, ถูกลง) → Archive (ช้าที่สุด, ถูกที่สุด). ตั้ง lifecycle management policy → auto move data ตามเงื่อนไข → optimize cost.
Azure Table Storage: NoSQL key-value , ใช้ Partition Key + Row Key organize ข้อมูล.
Partitioning & Indexing
ไม่ใช่สิ่งเดียวกัน. Partitioning: แบ่งข้อมูลเป็น partition → ลด scope การค้นหา , เลือกแค่ partition ที่ต้องการ. Indexing: ใช้หลัง partition → เร่งการค้นหาภายใน partition. ใช้ร่วมกัน: Partition ก่อน → Index ภายใน → ประสิทธิภาพสูงสุด. Azure Cosmos DB ทำ automatic indexing + partitioning ให้เลย.
Batch vs Stream Processing
Batch: เก็บ data → process เป็นช่วงๆ (hourly/daily) , เหมาะกับ complex workload , ถูกกว่า. Stream: process ทันที (real-time, ระดับ second) , เหมาะกับ simple aggregation , แพงกว่า. Lambda/Delta Architecture: ใช้ทั้งสองร่วมกัน , real-time data → stream, historical data → batch → combine results. Delta แนะนำมากกว่าเพราะง่ายกว่า.
Queue Systems: buffer ระหว่าง event source กับ processor , ป้องกัน data loss, decouple producer/consumer.
Apache Spark & Azure Data Bricks
Spark: open source engine สำหรับ large-scale data processing , รองรับ Java, Scala, Python , รันเป็น cluster , fault tolerance. Azure Data Bricks: product ของ Microsoft , ใช้ Spark เป็น query engine เบื้องหลัง. Power BI: tool สำหรับสร้าง dashboard/reports , sync data จาก Warehouse.
Star Schema
Fact Table (ตรงกลาง) , เก็บ events/transactions (quantity, revenue, time key, product key). Dimension Tables (ล้อมรอบ) , context (Customer, Product, Time, Location). ใช้สำหรับ analytics ใน Data Warehouse.
Actionable
- แยกประเภท data ใน project: structured/semi-structured/unstructured → เลือก storage ให้เหมาะสม
- ประเมิน OLTP vs OLAP → เลือก normalization strategy
- ศึกษา Azure Storage tiers + lifecycle policy → optimize cost
- ทดลองใช้ Parquet format สำหรับ data ที่ query บ่อย
- เปรียบเทียบ Warehouse vs Lakehouse , architecture ไหนเหมาะกับ use case
- อ่านเพิ่ม: Apache Spark Basics, Delta Lake, Azure Cosmos DB