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 มีวิธีที่มีประสิทธิภาพในการประมวลผลอย่างรวดเร็วสำหรับชุดข้อมูลขนาดใหญ่ มันนำมาซึ่งประโยชน์ดังต่อไปนี้
- โอเพนซอร์ส: Apache Iceberg เป็นโครงการโอเพนซอร์สซึ่งหมายความว่ามันมีอิสระที่จะใช้และสามารถปรับแต่งเพื่อตอบสนองความต้องการเฉพาะของคุณ นอกจากนี้ยังมีชุมชนที่กระตือรือร้นของนักพัฒนาที่มีการปรับปรุงอย่างต่อเนื่องและเพิ่มคุณสมบัติใหม่ให้กับโครงการ
- ความสามารถในการปรับขนาด: Apache Iceberg ถูกออกแบบมาเพื่อจัดการกับชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ มันสามารถแบ่งพาร์ทิชันและจัดระเบียบข้อมูลข้ามหลายโหนด ซึ่งจะช่วยกระจายภาระงานและเพิ่มความเร็วในการประมวลผลข้อมูล
- ผลการดำเนินงาน: Apache Iceberg มีความหลากหลายของคุณสมบัติเพื่อเพิ่มประสิทธิภาพการทำงานของแบบสอบถาม รวมทั้งการจัดเก็บคอลัมน์ และเทคนิคการบีบอัด เช่น พุชดาวน์ และ Schema evolution
- ความยืดหยุ่น: Apache Iceberg ช่วยให้คุณสามารถเปลี่ยนวิธีการจัดระเบียบข้อมูลของคุณเพื่อที่จะสามารถพัฒนาในช่วงเวลาโดยไม่ต้องให้คุณเขียนคำสั่งของคุณหรือสร้างโครงสร้างข้อมูลของคุณใหม่อีกครั้ง นอกจากนี้ยังสนับสนุนรูปแบบข้อมูลและแหล่งข้อมูลหลายรูปแบบ ซึ่งทำให้ง่ายต่อการบูรณาการกับระบบที่มีอยู่
- ความน่าเชื่อถือ: Apache Iceberg ช่วยให้มั่นใจในความสอดคล้องของข้อมูลและความน่าเชื่อถือผ่านการสนับสนุนสำหรับการทำธุรกรรม คุณสามารถติดตามการเปลี่ยนแปลงของข้อมูลเมื่อเวลาผ่านไป และย้อนกลับไปเป็นเวอร์ชันเก่าเพื่อช่วยคุณแก้ไขปัญหา
บริการ AWS ใดบ้างที่สนับสนุน Iceberg?
Apache Iceberg รองรับเฟรมเวิร์คการประมวลผลข้อมูลที่เป็นที่นิยมเช่น Apache Spark Apache Flink Apache Hive และ Presto บริการ AWS เช่น Amazon Redshift, Amazon Athena, Amazon EMR และ AWS Glue ประกอบด้วยการสนับสนุนพื้นฐานสำหรับข้อมูลธุรกรรมในเฟรมเวิร์กของ Data Lake รวมทั้ง Apache Iceberg การใช้ Apache Iceberg ร่วมกับบริการ AWS รองรับการเปิดใช้งานการทำธุรกรรมด้วย Data Lake ซึ่งส่วนใหญ่มักจะขึ้นอยู่กับการจัดเก็บข้อมูลในS3
- Amazon Redshift เป็นบริการการวิเคราะห์ SQL และการคลังข้อมูลที่ได้รับการจัดการอย่างเต็มรูปแบบและขับเคลื่อนด้วย AI เพื่อขับเคลื่อนการตัดสินใจทางธุรกิจให้กับลูกค้าได้อย่างรวดเร็วและคุ้มค่า Amazon Redshift มอบสถาปัตยกรรมการประมวลผลแบบขนานปริมาณมาก (MPP) หลายคลัสเตอร์ และไม่ต้องใช้เซิร์ฟเวอร์ พร้อมความสามารถ ETL แบบไร้รอยต่อที่ขับเคลื่อนการวิเคราะห์แบบเกือบเรียลไทม์และกรณีการใช้งาน AI/ML ด้วยการแชร์ข้อมูล ลูกค้าสามารถใช้ Amazon Redshift เพื่อสืบค้นตาราง Apache Iceberg ใน Data Lake ได้ โดยเข้าถึงผ่านแค็ตตาล็อกข้อมูลของ AWS Glue และรวมตารางดังกล่าวเข้ากับตารางของพวกเขาในคลังข้อมูลเพื่อการวิเคราะห์ที่ครอบคลุม
- 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 ก็ยังได้รับการสนับสนุนเช่นกัน