Data Analytics Platforms
Back to Data Engineering Index
Reference: เข้าใจ Data Warehouse, Data Lake และ Data Lakehouse ฉบับมือใหม่
สามารถแบ่ง data analytics platform ออกเป็น 3 generations ดังนี้
1st Generation: Data Warehouse
Data warehouse ซึ่งเป็นการเก็บข้อมูล structured data (ข้อมูลที่เป็น table ชัดเจน จัดระเบียบเรียบร้อย เหมือนสิ่งที่ของถูกจัดเก็บเรียบร้อยในคลังสินค้า)
Purpose
เป็นช่วงที่เรารวบรวมข้อมูลมาไว้ที่ centralized เพื่อนำไปทำการวิเคราะห์ข้อมูลและ business intelligence (BI) ซึ่งเป็น goal หลักของการทำ data analytics
Infrastructure
ส่วนใหญ่แล้ว data warehouse จะถูกติดตั้งที่ on-premises ซึ่งก็คือ server ที่ตามบริษัทเขาจะซื้อตั้งไว้เพื่อใช้เก็บเป็น storage และ compute ไปในตัว
Limitations
ถัดมาโลกของเราเริ่มมีการเก็บ storage ราคาถูกลง และความต้องการ query มีมากขึ้น อีกทั้งโลกนี้ก็มีไฟล์มากขึ้นที่ไม่ใช่แค่ structured data แล้ว แต่มี semi-structured, unstructured มากขึ้น อย่างพวกไฟล์:
- Audio
- Video
- XML
- JSON
- Sensor data
ทำให้การใช้ data warehouse เริ่มเอาไม่อยู่
2nd Generation: Data Lake
Data Lake คือทะเลสาบที่รวบรวมข้อมูลได้ทุกรูปแบบของข้อมูล ไม่ว่าจะ structured, semi-structured, และ unstructured เพราะตัวเองเก็บข้อมูลในรูปแบบ file format ต่างๆ ได้
Evolution
ในยุคแรกๆ ของ Data lake มี Hadoop File System (HDFS) จนเมื่อปี 2015 เป็นต้นมา พวก cloud provider ต่างๆ ก็ออก service ต่างๆ ที่เป็นคอนเซปนี้ คือ:
- AWS S3
- Azure Data Lake
- Google Cloud Storage
เรียกได้ว่าเป็น choice ที่เพิ่มขึ้นไปอีก
Advantages
ข้อดีของ Data Lake พวกนี้คือ:
- ราคาถูกมากๆ
- เลือก storage ได้ - hot หรือ cold storage
- Hot storage: access บ่อย
- Cold storage: access น้อยมากต่อปี, ราคาถูกกว่า
- สามารถเก็บข้อมูลเก่าๆ ที่ไม่ค่อยใช้แล้ว backup ไว้ได้
Hybrid Architecture
ความจริงแล้วใน generation นี้ Data Lake นำมาใช้คู่กับ Data Warehouse โดยที่:
- เก็บพวก raw data ใน Data Lake
- Transform ข้อมูลเป็นรูปแบบ structured
- นำเก็บไว้ที่ Data warehouse เพื่อสะดวกแก่การ analyze ข้อมูลปลายทางเช่นเดิม
Limitations
ข้อเสียของ generation นี้ยังมีอยู่:
-
Reliability
- หากทำ ETL ไว้ไม่ดี data lake และ data warehouse ก็จะมีข้อมูลที่ไม่สอดคล้องกัน
- ดึงจาก data lake ก็ได้อย่างนึง ดึงจาก data warehouse ดันได้อีกอย่างหนึ่ง
-
Data Staleness
- data warehouse อาจได้ข้อมูลที่ช้ากว่า data lake
- เนื่องจากรอบของข้อมูลที่ยังมาไม่ถึง เพราะอาจจะต้องรอเป็นวัน
-
Machine Learning Challenges
- ML ต้อง process data ที่มากขึ้นด้วยวิธี non-SQL code
- data warehouse อาจจะไม่พอ
- จึงต้อง export files ออกจาก Data Warehouse
- พวก ML ทั้งหลายก็ไปอ่านจากไฟล์ตรงนี้แทน
- สูญเสียฟีเจอร์ของ data warehouse:
- ACID
- Data versioning
- Indexing
-
Storage Cost
- พอต้อง export ไฟล์มาอีกรอบ
- ต้องเสียค่า storage เพิ่มเป็น 2 เท่า
3rd Generation: Data Lakehouse
Data Lakehouse คือส่วนผสมของ Data Lake และ Data Warehouse
Key Characteristics
คล้าย Data Lake
- เก็บ raw data เหมือนกัน
- อยู่ในรูป open file format
คล้าย Data Warehouse
- เอาข้อดีของ Data Warehouse เข้ามา:
- Data versioning
- Auditing
- Indexing
- Caching
- มีการทำ metadata layer บน storage
- ระบุว่าเป็น table version ไหน
- ใช้ tools อย่าง:
- Delta Lake
- Apache Iceberg
Cloud & On-Premise Support
- Support บน cloud environment
- แต่ก็ support on-premise storage ได้อยู่เหมือนกันอย่าง HDFS
ML Support
- ML library เช่น TensorFlow, Spark MLlib สามารถอ่าน Parquet, ORC files ได้แล้ว
- ใช้ dataframe ในการจัดการข้อมูล
- มี declarative DataFrame API เกิดขึ้นมาในการ query ข้อมูลจาก Lakehouse
Modern Integration
Lakehouse ถือว่าเริ่มมีบทบาทที่สำคัญ จะเห็นได้ว่ามี data warehouse หลายๆ เจ้ามีฟีเจอร์ External table ได้แล้ว:
- Azure Synapse
- BigQuery
- AWS Redshift
- Snowflake
คือ query ข้อมูลจาก Data Lake โดยทำตัวเองเป็น Query Engine อย่างเช่น:
- เก็บข้อมูลใน Cloud storage
- ให้ BigQuery เป็นตัว query ไปหา
Additional Query Engines
ไม่เพียงแต่ data warehouse ที่ query ได้ ก็ยังมี SQL engines ต่างๆ ที่สามารถทำหน้าที่เป็น Query Engine ได้เหมือนกัน:
- Spark SQL
- Presto
- Hive
- AWS Athena
(แต่ถึงอย่างไร พวกนี้ก็ไม่ใช่ Data Lake นะ อย่าเข้าใจผิด)
Improvements Over Previous Generations
Data Quality
- Schema enforcement หรือ schema validation
- เช็คว่า table ที่เขียนจะมี schema ตรงกับที่เซ็ตไว้
- ไม่เปลี่ยนมั่วซั่วไประหว่างทางโดยเราไม่รู้
- ป้องกันไม่ให้ write ทันที
Data Governance
- Access control และ audit logging
- Metadata layer จะเช็คว่า user จะสามารถเข้าไปดูข้อมูล raw data ได้ก็ต้องมีสิทธิ์หรือ credential ก่อน
Comparison Table
| Generation | Storage Type | Data Format | Best For | Limitations |
|---|---|---|---|---|
| Data Warehouse | Structured | Tables | BI, Reporting | Limited data types, expensive |
| Data Lake | All types | Raw files | Big data, ML | Consistency issues, staleness |
| Data Lakehouse | All types | Open formats + metadata | Modern analytics, ML, BI | Complexity in setup |
Related: