Data Lakehouse คืออะไร​?

Heang Yuthakarn
3 min readJan 10, 2022

--

Data Lakehouse เป็น concept ที่ถูกนำเสนอมาเพื่อแก้ปัญหาที่เราเจอใน Data Warehouse และ Data Lake ณ ปัจจุบัน

ก่อนเราจะไปดูว่า Data Lakehouse คืออะไร มารู้จัก Data Warehouse และ Data Lake แบบย่อๆ เพื่อให้เข้าใจปัญหากันก่อน

Data Warehouse

  • ใช้กันมานานมาก ตั้งแต่ประมาณ 40 ปีที่แล้ว
  • แล้วก็ค่อยๆ เพิ่มเติมความสามารถขึ้น เช่น มี MPP (Massively Parallel Processing) เพื่อทำให้สามารถประมวลผลข้อมูลที่มีขนาดใหญ่ขึ้นได้
  • แต่ถึงอย่างไรก็เหมาะกับแค่พวกข้อมูลแบบ structured
  • ในปัจจุบัน องค์กรเริ่มต้องจัดการข้อมูลแบบ unstructured data และ semi-structured
  • นอกจากนี้ ความคุ้มค่าต่อราคา Storage ยังถือว่าแพงมาก

Data Lake

  • เกิดมาเพื่อแก้ปัญหาของ Data Warehouse หลักๆ 2 ข้อคือ เก็บได้แต่ข้อมูลแบบ structured และมีราคาแพง
  • เพราะฉะนั้น ราคา Storage ของ Data Lake จึงถูกกว่า Data Warehouse มาก
  • Data lake ถูกสร้างขึ้นเพื่อเก็บข้อมูลจากแหล่งต่างๆ ไว้ตรงกลาง เพื่อเอาไปต่อกับพวกเครื่องมือ analytics ทั้งหลายในภายหลัง
  • ข้อมูลใน Data Lake เก็บแบบ RAW คือ source มายังไงก็เก็บอย่างนั้น
  • Data Lake เลยขาดคุณสมบัติหลายๆ อย่างเช่น do not support transactions, do not enforce data quality, lack of consistency / isolation

ทางออกในปัจจุบันเลยเป็นลักษณะว่า ต้องทำหลายๆ ระบบเพื่อรองรับความต้องการทั้งหมด เช่น มี ระบบ data lake 1 ระบบ และหลายๆ data warehouses แล้วก็มีระบบแยกสำหรับ streaming, time-series, graph หรือ image database ต่างหาก

บางที่แยก Data Lake กับ Data Warehouse ออกจากกัน (แบบรูปที่ 1) ส่วนบางที่อาจจะเอา Data Warehouse ไปใส่ใน Storage ของ Data Lake (แบบรูปที่ 2)

https://www.eckerson.com/articles/an-architect-s-view-of-the-data-lakehouse-perplexity-and-perspective

ปัญหาสำคัญของการมีหลายๆ ระบบคือ ต้องมีการย้ายหรือคัดลอกข้อมูลข้ามระบบ นอกจากทำให้ได้ใช้ข้อมูลช้าลงแล้ว ยังอาจเกิดข้อผิดพลาดตอนย้ายหรือคัดลอกด้วย

Data Lakehouse

Data Lakehouse พยายามเอาข้อดีของ Data Warehouse และ Data Lake มารวมกัน โดยการ implement พวก Data structures และ Data management features ต่างๆ ที่เราใช้ใน Data Warehouse บน Storage ที่เราใช้สำหรับ Data Lake โดยตรง

รูปด้านล่างเป็นตัวอย่าง High-level Data Lakehouse data flow

https://medium.com/adfolks/data-lakehouse-paradigm-of-decade-caa286f5b7a1

Data Lakehouse เป็น data solution concept ที่พยายามเอาข้อดีของ Data Warehouse และ Data Lake มารวมกัน โดยการ implement features ต่างๆ ของ Data Warehouse บน ​Data Lake Storage

คุณลักษณะของ Data Lakehouse ที่ต้องมี

  • Transaction support — ด้วยความที่ Lakehouse ต้องถูกอ่านและเขียนพร้อมกันจากหลายๆ pipeline ดังนั้น lakehouse ต้อง support ACID ได้
  • Schema enforcement and governance — เรื่อง schema ต้องทำได้ทั้งการบังคับใช้ (apply schema บน Data Lake ตรงๆ) และต้อง support เรื่อง schema evolution ด้วย นอกจากนี้ยังต้องทำส่วนของ Governance เช่น พวก data protection ต่างๆ และต้องสามารถ Audit ได้ด้วย สิ่งที่จะทำให้เกิด features พวกนี้ได้คือ การมี Transaction Log
  • BI support — BI tools ต้องสามารถต่อได้ตรงๆ กับ Data Lake เลย ไม่ต้องแปลงจาก Data Lake มาที่ Data Warehouse ก่อน การทำแบบนี้นอกจากช่วยลดพื้นที่ที่ใช้เก็บข้อมูลแล้ว ยังเพิ่มความสดใหม่ของข้อมูลที่ BI Tools จะใช้ได้ด้วย
  • Storage is decoupled from compute — แยก storage กับ compute ออกจากกันเพื่อให้ scale แยกกันได้
  • Openness — ข้อมูลที่เก็บอยู่ใน standard format เช่น Parquet เป็นต้น และต้องมี API เพื่อให้เครื่องมือต่างๆ ไม่ว่าจะเป็น Machine Learning หรือ Programming Libray เข้าถึงข้อมูลได้โดยตรง
  • Support for diverse data types ranging from unstructured to structured data — รองรับข้อมูลได้หลากหลายประเภทตั้งแต่ structured ไปจนถึง unstructured ทั้งในแง่การเก็บ, ใช้งาน, วิเคราะห์
  • Support for diverse workloads — รองรับงานหลากหลายรูปแบบตั้งแต่ Data Analytic พื้นฐาน, SQL ไปจนถึง Machine Learning เป็นต้น หลักการคือ เครื่องมือพวกนี้ต้องใช้ Data ชุดเดียวกันทำงานได้
  • End-to-end streaming — Lakehouse ต้อง support streaming ด้วย เพื่อให้เก็บข้อมูลไว้ในระบบเดียวกัน

การจัดการ Schema ระหว่าง Data Warehouse, Data Lake และ Data Lakehouse

https://www.zdnet.com/article/data-lakehouse-meet-fast-queries-and-visualization-databricks-unveils-delta-engine-acquires-redash/

ประโยชน์ของ Data Lakehouse

  • ลดความซ้ำซ้อนของข้อมูล — ข้อมูลไม่ต้องถูก transform ไปมาระหว่าง Data Lake และ Data Warehouse
  • ลดต้นทุนในการเก็บข้อมูล — เนื่องจากข้อมูลไม่ถูก transform ไปมา และ ข้อมูลที่เคยอยู่ใน Data Warehouse จะถูกจัดเก็บไว้บน Data Lake ที่ Storage ราคาถูกกว่า
  • ทำลาย Silo ในงาน Analytic — ทั้ง BI User (ซึ่งปกติทำงานบน Data Warehouse) และ Data Scientist (ซึ่งปกติทำงานบน Data Lake) ทำงานบน source เดียวกัน

จุดที่ควร Concern ในการนำ Lakehouse ไปใช้

  • Monolithic Structure — all-in-one system เหมือนจะดูแลง่ายเพราะว่ามี system เดียว แต่ใครมีเคยดูแลระบบ Monolithic ใหญ่ๆ จะรู้ว่าดูแลยาก แก้ตรงนี้ กระทบตรงนั้น
  • Data Lakehouse ยังอยู่ใน early-stage ยังต้องรอการพิสูจน์ว่า มันดีกว่า Data Lake + Data Warehouse + Automated Tool จริงๆ หรือไม่

เครื่องมือในท้องตลาด

หัวเรือหลักที่พยายามเสนอ Data Lakehouse คือ Databricks ซึ่งก็ไม่น่าแปลกใจอะไรที่ Databricks จะมี Product ขายด้วย ทาง Micorosoft ก็มีการนำ Databricks ไป integrate กับ Azure Synapse Analytics แล้วขายบน Azure platform เหมือนกัน

นอกจาก Databricks แล้ว ยังมีพวก Managed Service อย่าง Snowflake, Google BigQuery และ Amazon Redshift ที่มีคุณสมบัติของ Lakehouse บางอย่างให้เราเลือกใช้ได้

แต่ถ้าจะใช้ Opensource ก็ต้องทำเอง โดยนอกจากจะต้องทำ Hadoop Ecosystem แล้ว ก็ต้องลง Delta Lake, Apache Iceberg, Apache Hudi เพิ่ม เพื่อเสริมให้ได้ feature Lakehouse มาใช้

สุดท้าย Technology เกิดใหม่ทุกวัน เรียนรู้และสนุกกับมัน อย่าไปไล่ตามว่าต้องใช้ทุกอย่าง เอาที่เหมาะกับความต้องการของเรานะ

--

--

Heang Yuthakarn
Heang Yuthakarn

Written by Heang Yuthakarn

Data Engineer | Infrastructure | Gadget Crazier | Drama King

No responses yet