Apache Iceberg คืออะไร?

Apache Iceberg เป็นกระจายขับเคลื่อนชุมชน Apache 2.0 ได้รับใบอนุญาตแล้ว โอเพนซอร์สรูปแบบตารางข้อมูล100% ที่ช่วยให้การประมวลผลข้อมูลในชุดข้อมูลขนาดใหญ่ที่เก็บไว้ใน Data lake วิศวกรข้อมูลใช้ Apache Iceberg เพราะมันรวดเร็ว มีประสิทธิภาพและเชื่อถือได้ในระดับใด ๆ และเก็บบันทึกของวิธีการเปลี่ยนแปลงชุดข้อมูลเมื่อเวลาผ่านไป Apache Iceberg มีการบูรณาการง่ายกับเฟรมเวิร์คการประมวลผลข้อมูลที่เป็นที่นิยมเช่น Apache Spark, Apache Flink, Apache Hive, Presto และอื่น ๆ

Data Lake เชิงธุรกรรมคืออะไร?

Data Lake คือพื้นที่เก็บข้อมูลส่วนกลางที่ให้คุณสามารถเก็บข้อมูลที่มีโครงสร้างและไม่มีโครงสร้างทั้งหมดของคุณในทุกระดับ การทำธุรกรรมข้อมูลเป็นชุดของการแลกเปลี่ยนข้อมูลที่จะดำเนินการในการดำเนินการเพียงครั้งเดียว ตัวอย่างเช่น เมื่อลูกค้าถอนเงินจากบัญชีธนาคาร ธนาคารจะดำเนินการแลกเปลี่ยนข้อมูลหลายรายการในเวลาเดียวกันในการทำธุรกรรม ซึ่งข้อมูลหนึ่งๆประกอบด้วย การตรวจสอบบัญชีมียอดคงเหลือเพียงพอหรือไม่ การตรวจสอบตัวตน และการหักเงินถอนออกจากบัญชี Transectional Data Lake เป็นชนิดของdata lake ที่ไม่เพียงแต่เก็บข้อมูลในระดับหนึ่ง แต่ยังสนับสนุนการดำเนินการทำธุรกรรม เพื่อให้แน่ใจว่าข้อมูลมีความถูกต้องสอดคล้อง และช่วยให้คุณสามารถติดตามวิธีการเปลี่ยนแปลงข้อมูลและโครงสร้างข้อมูลเมื่อเวลาผ่านไป คุณสมบัติเหล่านี้เป็นที่รู้จักกันในชื่อ Atomicity Consistency Isolation and Durability (ACID):

  • การเป็นหน่วยเดียวที่แบ่งแยกไม่ได้ (Atomicity) รับประกันว่าธุรกรรมแต่ละครั้งจะเป็นเหตุการณ์เดียวที่ประสบความสำเร็จหรือล้มเหลวโดยสมบูรณ์อย่างใดอย่างหนึ่ง ไม่มีสถานะครึ่งๆ กลางๆ 
  • ความสอดคล้องกัน (Consistency) ให้ความมั่นใจว่าข้อมูลทั้งหมดที่เขียนจะถูกต้องตามกฎที่กำหนดไว้ของ Data Lake เพื่อรับรองว่าข้อมูลมีความถูกต้องและเชื่อถือได้ 
  • การแยกอิสระ (Isolation) ให้ความมั่นใจว่าธุรกรรมหลายรายการสามารถเกิดขึ้นในเวลาเดียวกันโดยไม่รบกวนซึ่งกันและกัน เพื่อรับประกันว่าแต่ละธุรกรรมจะดำเนินการได้อย่างเป็นอิสระ
  • ความทนทาน (Durability) หมายความว่าข้อมูลจะไม่สูญหายหรือเสียหายเมื่อมีการส่งธุรกรรม ข้อมูลสามารถกู้คืนได้ในกรณีที่ระบบล้มเหลว เช่น ไฟฟ้าดับ

อะไรคือประโยชน์ของการใช้ Apache Iceberg?

บางส่วนของผลประโยชน์ที่สำคัญของการใช้ Apache Iceberg สำหรับการทำธุรกรรมใน Data lake ซึ่งประกอบด้วย:

  • ความคุ้นเคยกับภาษา SQL: Structured Query Language (SQL) เป็นภาษาสอบถามข้อมูลที่นิยมใช้ในแอปพลิเคชันทุกประเภท นักวิเคราะห์ข้อมูลและนักพัฒนาเรียนรู้และใช้ SQL เพราะมันบูรณาการได้ดีกับการเขียนโปรแกรมภาษาที่แตกต่างกันและยังค่อนข้างง่ายที่จะเรียนรู้ที่จะใช้คำหลักภาษาอังกฤษทั่วไปการประกาศ Apache Iceberg ช่วยให้ทุกคนที่มีความคุ้นเคยกับภาษาแบบสอบถามที่มีโครงสร้าง (SQL) เพื่อสร้างData lake และดำเนินการ Data Lake ให้มากที่สุดโดยไม่จำเป็นต้องเรียนรู้ภาษาใหม่
  • ความสอดคล้องของข้อมูล: Apache Iceberg ให้ข้อมูลที่สอดคล้อง เพื่อให้แน่ใจว่าผู้ใช้ที่อ่านและเขียนข้อมูลใด ๆ ที่เห็นข้อมูลเดียวกัน 
  • โครงสร้างข้อมูล: Apache Iceberg ช่วยให้การเปลี่ยนแปลงที่ง่ายต่อโครงสร้างข้อมูลของคุณ ยังเป็นที่รู้จักในชื่อ schema evolution หมายความว่าผู้ใช้สามารถเพิ่มเปลี่ยนชื่อหรือลบคอลัมน์จากตารางข้อมูลโดยไม่รบกวนข้อมูลพื้นฐาน
  • เวอร์ชันข้อมูล: Apache Iceberg ให้การสนับสนุนสำหรับการกำหนดรุ่นข้อมูลซึ่งจะช่วยให้ผู้ใช้สามารถติดตามการเปลี่ยนแปลงการทำงานล่วงเวลาของข้อมูล ซึ่งเปิดใช้งานคุณลักษณะ time-travel ซึ่งช่วยให้ผู้ใช้สามารถเข้าถึงและสอบถามข้อมูลในเวอร์ชันในอดีตและวิเคราะห์การเปลี่ยนแปลงข้อมูลระหว่างการอัปเดตและลบข้อมูลได้
  • การสนับสนุนข้ามแพลตฟอร์ม: Apache Iceberg รองรับความหลากหลายของระบบจัดเก็บข้อมูลที่แตกต่างกันและเครื่องมือแบบสอบถามรวมทั้ง Apache Spark, Apache Hive และ Presto ซึ่งทำให้ง่ายต่อการใช้ Iceberg ในความหลากหลายของสภาพแวดล้อมการประมวลผลข้อมูลที่แตกต่างกัน
  • การประมวลผลที่เพิ่มขึ้น: Iceberg สนับสนุนการประมวลผลที่เพิ่มขึ้นซึ่งจะช่วยให้ผู้ใช้สามารถประมวลผลเฉพาะข้อมูลที่มีการเปลี่ยนแปลงตั้งแต่การทำงานครั้งล่าสุดหรือที่เรียกว่า CDC (Change Data Capture) วิธีนี้จะช่วยปรับปรุงประสิทธิภาพและประสิทธิภาพในการประมวลผลข้อมูล

อะไรคือกรณีการใช้งานทั่วไปสำหรับ Apache Iceberg?

Apache Iceberg เหมาะสำหรับหลายกรณีการใช้ข้อมูล Data Lake ได้แก่:

  • ตารางข้อมูลในData lakeที่จำเป็นต้องลบบ่อย เช่น เมื่อบังคับใช้กฎหมายความเป็นส่วนตัวของข้อมูล
  • ตารางข้อมูลใน Data Lake ที่จำเป็นต้องมีการปรับปรุงระดับระเบียน สิ่งนี้จะเป็นประโยชน์เมื่อชุดข้อมูลของคุณต้องมีการปรับปรุงให้ทันสมัยบ่อยๆ หลังจากสรุปข้อมูลแล้ว ตัวอย่างเช่น ข้อมูลการขาย ที่อาจมีการเปลี่ยนแปลงเนื่องจากเหตุการณ์ที่เกิดภายหลัง เช่นการส่งคืนสินค้าจากลูกค้า Iceberg มีความสามารถในการปรับปรุงระเบียนของแต่ละบุคคลโดยไม่จำเป็นต้องเผยแพร่ชุดข้อมูลทั้งหมด
  • ตารางข้อมูลในData lake ที่มีการเปลี่ยนแปลงที่คาดเดาไม่ได้ เช่น ตารางขนาดการเปลี่ยนช้า (SCD) ตัวอย่างของ SCD เป็นตารางการบันทึกลูกค้าที่มีชื่อสถานที่และข้อมูลการติดต่อซึ่งอาจมีการเปลี่ยนแปลงในช่วงเวลาที่ไม่รู้จัก
  • เมื่อการทำธุรกรรมกับ Data Lake ต้องรับประกันความถูกต้องของข้อมูล ความทนทาน และความน่าเชื่อถือในรูปแบบตาราง Apache Iceberg สามารถนำไปใช้เพื่อให้แน่ใจในการทำธุรกรรม ACID transaction
  • เมื่อมีความจำเป็นที่จะต้องย้อนเวลากลับไปสอบถามข้อมูลในอดีตเพื่อทำการวิเคราะห์แนวโน้ม วิเคราะห์การเปลี่ยนแปลงข้อมูลในช่วงระยะเวลาหนึ่ง หรือเพื่อเรียกคืนหรือย้อนกลับไปยังเวอร์ชันก่อนหน้าเพื่อแก้ไขปัญหา

ใครใช้ Apache Iceberg?

วิศวกรข้อมูล, ผู้ดูแลข้อมูล, นักวิเคราะห์ข้อมูลและนักวิทยาศาสตร์ข้อมูลเป็นหนึ่งในบุคคลที่ใช้ Apache Iceberg  วิศวกรข้อมูลและผู้ดูแลระบบสามารถใช้ Apache Iceberg ในการออกแบบและสร้างระบบจัดเก็บข้อมูลที่ปรับขนาดได้  นักวิเคราะห์ข้อมูลและนักวิทยาศาสตร์ข้อมูลสามารถใช้ Apache Iceberg ในการวิเคราะห์ชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ 

ทำไมคุณควรเลือก Apache Iceberg?

Apache Iceberg มีวิธีที่มีประสิทธิภาพในการประมวลผลอย่างรวดเร็วสำหรับชุดข้อมูลขนาดใหญ่ มันนำมาซึ่งประโยชน์ดังต่อไปนี้

  1. โอเพนซอร์ส: Apache Iceberg เป็นโครงการโอเพนซอร์สซึ่งหมายความว่ามันมีอิสระที่จะใช้และสามารถปรับแต่งเพื่อตอบสนองความต้องการเฉพาะของคุณ นอกจากนี้ยังมีชุมชนที่กระตือรือร้นของนักพัฒนาที่มีการปรับปรุงอย่างต่อเนื่องและเพิ่มคุณสมบัติใหม่ให้กับโครงการ 
  2. ความสามารถในการปรับขนาด: Apache Iceberg ถูกออกแบบมาเพื่อจัดการกับชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ มันสามารถแบ่งพาร์ทิชันและจัดระเบียบข้อมูลข้ามหลายโหนด ซึ่งจะช่วยกระจายภาระงานและเพิ่มความเร็วในการประมวลผลข้อมูล 
  3. ผลการดำเนินงาน: Apache Iceberg มีความหลากหลายของคุณสมบัติเพื่อเพิ่มประสิทธิภาพการทำงานของแบบสอบถาม รวมทั้งการจัดเก็บคอลัมน์ และเทคนิคการบีบอัด เช่น พุชดาวน์ และ Schema evolution 
  4. ความยืดหยุ่น: Apache Iceberg ช่วยให้คุณสามารถเปลี่ยนวิธีการจัดระเบียบข้อมูลของคุณเพื่อที่จะสามารถพัฒนาในช่วงเวลาโดยไม่ต้องให้คุณเขียนคำสั่งของคุณหรือสร้างโครงสร้างข้อมูลของคุณใหม่อีกครั้ง นอกจากนี้ยังสนับสนุนรูปแบบข้อมูลและแหล่งข้อมูลหลายรูปแบบ ซึ่งทำให้ง่ายต่อการบูรณาการกับระบบที่มีอยู่ 
  5. ความน่าเชื่อถือ: Apache Iceberg ช่วยให้มั่นใจในความสอดคล้องของข้อมูลและความน่าเชื่อถือผ่านการสนับสนุนสำหรับการทำธุรกรรม คุณสามารถติดตามการเปลี่ยนแปลงของข้อมูลเมื่อเวลาผ่านไป และย้อนกลับไปเป็นเวอร์ชันเก่าเพื่อช่วยคุณแก้ไขปัญหา

บริการ AWS ใดบ้างที่สนับสนุน Iceberg?

Apache Iceberg รองรับเฟรมเวิร์คการประมวลผลข้อมูลที่เป็นที่นิยมเช่น Apache Spark Apache Flink Apache Hive และ Presto บริการ AWS เช่น Amazon Athena Amazon EMR และ AWS Glue ประกอบด้วยการสนับสนุนพื้นฐานสำหรับข้อมูลธุรกรรมในเฟรมเวิร์คของ Data Lake รวมทั้ง Apache Iceberg การใช้ Apache Iceberg ร่วมกับบริการ AWS รองรับการเปิดใช้งานการทำธุรกรรมด้วย Data Lake ซึ่งส่วนใหญ่มักจะขึ้นอยู่กับการจัดเก็บข้อมูลในS3

  • Amazon Athena เป็นบริการวิเคราะห์อินเทอร์แอคทีฟแบบไม่ต้องใช้เซิร์ฟเวอร์ที่สร้างขึ้นบนเฟรมเวิร์กโอเพนซอร์ส รองรับรูปแบบไฟล์และตารางเปิด Athena มอบวิธีการที่เรียบง่ายและยืดหยุ่นในการวิเคราะห์ข้อมูลขนาดเพตะไบต์ในที่ที่มันอาศัยอยู่ Athena ให้การสนับสนุนพื้นฐานสำหรับการอ่าน time-travel การเขียน และแบบสอบถาม DDL สำหรับตาราง Apache Iceberg ที่ใช้รูปแบบ Apache Parquet สำหรับข้อมูลและ AWS Glue catalog สำหรับ MetaStore ของพวกเขา 
  • Amazon EMR คือโซลูชัน Big Data สำหรับการประมวลผลข้อมูลขนาดเพตะไบต์ การวิเคราะห์เชิงโต้ตอบ และแมชชีนเลิร์นนิงโดยใช้เฟรมเวิร์กโอเพนซอร์ส เช่น Apache Spark, Hadoop, Presto และ Hive เริ่มต้นด้วย Amazon EMR 6.5.0 คุณสามารถใช้ Apache Spark 3 ในกลุ่ม Amazon EMR ที่มีตารางรูปแบบของ Iceberg EMR เฟรมเวิร์ค ที่รวมทั้ง Spark, Trino, Flink และ Hive รองรับการทำงานของ Apache Iceberg
  • AWS Glue คือบริการผสานรวมข้อมูลแบบไม่ต้องใช้เซิร์ฟเวอร์ที่ช่วยอำนวยความสะดวกในการค้นหา จัดเตรียม ย้าย ผสานข้อมูลสำหรับการวิเคราะห์ แมชชีนเลิร์นนิง (ML) และการพัฒนาแอปพลิเคชันมากยิ่งขึ้น  AWS Glue 3.0 และต่อมาสนับสนุนเฟรมเวิร์ค Apache Iceberg สำหรับdata lake คุณสามารถใช้ AWS Glue เพื่อดำเนินการอ่านและเขียนบนตาราง Iceberg ใน Amazon S3 หรือทำงานกับตารางIceberg โดยใช้ AWS Glue Data Catalog การดำเนินงานเพิ่มเติมรวมทั้งแทรกปรับปรุงและทุกคำสั่งของ Spark queries Spark writes ก็ยังได้รับการสนับสนุนเช่นกัน 

ขั้นตอนถัดไปบน AWS

ดูแหล่งข้อมูลเกี่ยวกับผลิตภัณฑ์เพิ่มเติม
ตรวจสอบบริการวิเคราะห์ข้อมูล  
ลงชื่อสมัครใช้งานบัญชีฟรี

รับสิทธิ์การเข้าถึง AWS Free Tier ได้ทันที

ลงชื่อสมัครใช้งาน 
เริ่มต้นการสร้างในคอนโซล

เริ่มต้นสร้างในคอนโซลการจัดการของ AWS

ลงชื่อเข้าใช้