กลับไปหน้าบทความ

อ่าน 4 นาที

ภูเขาน้ำแข็งอะปาเช่

อาปาเช่ ฮาดูป/โครงการมูลนิธิซอฟต์แวร์อาปาเช่/แพลตฟอร์มคลาวด์/ซอฟต์แวร์ฟรีที่ตั้งโปรแกรมด้วย Java/ซอฟต์แวร์ระบบฟรี/SQL/ซอฟต์แวร์ที่ใช้ลิขสิทธิ์ Apache

Apache Iceberg เป็นรูปแบบ โอเพนซอร์สประสิทธิภาพสูงสำหรับตารางวิเคราะห์ ขนาดใหญ่ Iceberg ช่วยให้สามารถใช้ ตาราง SQLสำหรับข้อมูลขนาดใหญ่ ในขณะเดียวกันก็ทำให้เอ็นจิ้นต่างๆ เช่นSpark..

ภูเขาน้ำแข็งอะปาเช่

ภูเขาน้ำแข็งอะปาเช่
ผู้เขียนต้นฉบับไรอัน บลู, แดเนียล วีคส์
ปล่อย10 สิงหาคม 2560 ( 10 สิงหาคม 2560 )
เวอร์ชันเสถียร
1.10.0 / 11 กันยายน 2025 ( 11 กันยายน 2025 )
เขียนเป็นJava , Scala , Python
ระบบปฏิบัติการข้ามแพลตฟอร์ม
พิมพ์คลังข้อมูล , ทะเลสาบข้อมูล
ใบอนุญาตใบอนุญาต Apache 2.0
เว็บไซต์
  • iceberg.apache.org
ที่เก็บข้อมูล
  • github.com/apache/iceberg

Apache Iceberg เป็นรูปแบบ โอเพนซอร์สประสิทธิภาพสูงสำหรับตารางวิเคราะห์ ขนาดใหญ่ Iceberg ช่วยให้สามารถใช้ ตาราง SQLสำหรับข้อมูลขนาดใหญ่ ในขณะเดียวกันก็ทำให้เอ็นจิ้นต่างๆ เช่นSpark , Trino , Flink , Presto , Hive , ImpalaและPigสามารถทำงานกับตารางเดียวกันได้อย่างปลอดภัยในเวลาเดียวกัน[ 1 ] Iceberg ได้รับการเผยแพร่ภายใต้Apache License [ 2 ] Iceberg แก้ไขปัญหาด้านประสิทธิภาพและความสามารถในการใช้งานของตาราง Apache Hive ในสภาพแวดล้อมดาต้าเลคขนาดใหญ่และมีความต้องการสูง Iceberg ได้รับการพัฒนาขึ้นครั้งแรกที่Netflixในปี 2017 เพื่อเอาชนะข้อจำกัดด้านความสามารถในการปรับขนาดและความสม่ำเสมอของ ตาราง Apache Hiveและได้บริจาคให้กับApache Software Foundationในปี 2018 โดยได้รับการยกระดับเป็นโครงการระดับสูงสุดของ Apache ในปี 2020 [ 3 ] [ 4 ] ผู้จำหน่ายที่สนับสนุนตาราง Apache Iceberg ได้แก่Cloudera , IBM Watsonx , Oracle , [ 5 ] Snowflake , Teradata , [ 6 ] AWS , [ 7 ] Google Cloud , [ 8 ]และDatabricks [ 9 ]

ประวัติศาสตร์

Iceberg เริ่มต้นขึ้นที่Netflixโดย Ryan Blue และ Dan Weeks Apache Hiveถูกใช้โดยบริการและกลไกต่างๆ มากมายในโครงสร้างพื้นฐานของ Netflix Hive ไม่สามารถรับประกันความถูกต้องและไม่ได้ให้ธุรกรรมอะตอมิกที่เสถียร[ 4 ]หลายคนใน Netflix หลีกเลี่ยงการใช้บริการเหล่านี้และทำการเปลี่ยนแปลงข้อมูลเพื่อหลีกเลี่ยงผลกระทบที่ไม่พึงประสงค์จากรูปแบบของ Hive [ 4 ] Ryan Blue ตั้งเป้าที่จะแก้ไขปัญหา 3 ประการที่ตาราง Hive เผชิญโดยการสร้าง Iceberg: [ 4 ] [ 10 ]

  1. ตรวจสอบความถูกต้องของข้อมูลและรองรับธุรกรรมACID
  2. ปรับปรุงประสิทธิภาพโดยการเปิดใช้งานการดำเนินการที่ละเอียดกว่าในระดับไฟล์ เพื่อการเขียนข้อมูลที่เหมาะสมที่สุด
  3. ลดความซับซ้อนและสรุปขั้นตอนการทำงานและการบำรุงรักษาตารางโดยทั่วไป

การพัฒนา Iceberg เริ่มขึ้นในปี 2017 [ 11 ]โครงการนี้เปิดเป็นโอเพนซอร์สและบริจาคให้กับมูลนิธิซอฟต์แวร์ Apacheในเดือนพฤศจิกายน 2018 [ 12 ]ในเดือนพฤษภาคม 2020 โครงการ Iceberg ได้รับการยกระดับให้เป็นโครงการระดับสูงสุดของ Apache [ 12 ]

Iceberg ถูกใช้โดยบริษัทหลายแห่งรวมถึง Airbnb [ 13 ] Apple [ 4 ] Expedia [ 14 ] LinkedIn [ 15 ] Adobe [ 16 ] Lyft [ 17 ]

รายละเอียดทางเทคนิค

Apache Iceberg ทำงานโดยแยกข้อมูลเมตาของตารางออกจากที่เก็บข้อมูลพื้นฐาน โดยจะรักษาไฟล์ข้อมูลเมตาที่ติดตามสแนปช็อต ข้อมูลสคีมา รูปแบบพาร์ติชัน และตำแหน่งไฟล์ข้อมูล ทำให้สามารถดำเนินการกับตารางได้อย่างมีประสิทธิภาพและเป็นอะตอม[ 18 ]

โดยทั่วไป Iceberg จะจัดระเบียบข้อมูลตารางเป็นสแนปช็อต แต่ละสแนปช็อตแสดงถึงสถานะของตาราง ณ จุดเวลาใดเวลาหนึ่ง ทำให้ Iceberg สามารถมอบ ความสามารถในการทำธุรกรรมที่สอดคล้อง กับ ACIDได้ รวมถึงการแยกสแนปช็อต การเขียนพร้อมกัน และฟังก์ชันการย้อนกลับ เมตาเดต้าของสแนปช็อตได้รับการจัดการเป็นโครงสร้างแบบต้นไม้ของไฟล์รายการและไฟล์เมตาเดต้าที่จัดเก็บไว้ภายในระบบไฟล์[ 19 ]

Iceberg ใช้ รูปแบบไฟล์ Apache Parquetสำหรับจัดเก็บข้อมูลจริงเนื่องจากโครงสร้างการจัดเก็บแบบคอลัมน์ที่มีประสิทธิภาพ ซึ่งได้รับการปรับให้เหมาะสมสำหรับการสืบค้นเชิงวิเคราะห์ ไฟล์ Parquet ใน Iceberg จัดเก็บแถวตารางในรูปแบบที่บีบอัดและเน้นคอลัมน์ ซึ่งช่วยลดต้นทุนการจัดเก็บและปรับปรุงประสิทธิภาพการอ่านอย่างมากผ่านเทคนิคต่างๆ เช่น การผลักดันเงื่อนไขและการตัดแต่งคอลัมน์ Iceberg อ้างอิงไฟล์ Parquet ในไฟล์ manifest ซึ่งช่วยให้ระบุและเข้าถึงข้อมูลที่เกี่ยวข้องได้อย่างรวดเร็วในระหว่างการดำเนินการสืบค้น[ 20 ]

Apache Iceberg ใช้ลำดับชั้นเมตาเดตาหลายระดับสำหรับการติดตามเนื้อหาของตาราง[ 21 ]ที่ด้านบนสุด ไฟล์เมตาเดตาของตาราง (มักจะเป็น metadata.json) จะจัดเก็บข้อมูลระดับตาราง เช่น สคีมา ข้อมูลจำเพาะของพาร์ติชัน รายการสแนปช็อต และตัวชี้ไปยังสแนปช็อต "รูท" ปัจจุบัน[ 22 ]สแนปช็อตแต่ละรายการแสดงถึงมุมมองที่สอดคล้องกันของตารางและเชื่อมโยงกับรายการไฟล์ Manifest ( ไฟล์ Avro ) ที่แสดงรายการไฟล์ Manifest ทั้งหมดสำหรับสแนปช็อตนั้น ไฟล์ Manifest คือดัชนีที่แสดงรายการชุดไฟล์ข้อมูล (เช่น ไฟล์ Parquet) พร้อมกับเมตาเดตาเกี่ยวกับแต่ละไฟล์ รวมถึงจำนวนแถว ค่าพาร์ติชัน และสถิติคอลัมน์ เช่น ค่าต่ำสุดและสูงสุด ไฟล์ Manifest เหล่านี้เป็นไฟล์เมตาเดตาขนาดเล็ก (มักอยู่ในรูปแบบ Avro) ที่แบ่งส่วนเมตาเดตาของตาราง ทำให้สามารถออกแบบแบบกระจายได้ โดยสามารถตัดไฟล์ Manifest ทั้งหมดออกได้เมื่อสอบถามตามพาร์ติชัน แทนที่จะต้องใช้ไฟล์ขนาดใหญ่ไฟล์เดียวที่แสดงรายการไฟล์ข้อมูลทั้งหมด ยิ่งไปกว่านั้น โครงสร้างเมตาเดต้าของ Iceberg ยังบันทึกประวัติการเปลี่ยนแปลงของตาราง โดยเก็บรักษาภาพรวมและรายการข้อมูลเก่าๆ (ทำให้สามารถย้อนเวลากลับไปได้) จนกว่าจะหมดอายุ และสามารถวางแผนการค้นหาได้อย่างรวดเร็วโดยการอ่านเฉพาะไฟล์รายการข้อมูลที่เกี่ยวข้อง แทนที่จะสแกนไฟล์ข้อมูลหรือไดเร็กทอรีทั้งหมด วิธีนี้ช่วยหลีกเลี่ยงการดำเนินการที่สิ้นเปลือง เช่น การแสดงรายการไดเร็กทอรี และทำให้การเข้าถึงเมตาเดต้ามีประสิทธิภาพแม้กับตารางขนาดใหญ่

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Apache_Iceberg&oldid=1361509853 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ภูเขาน้ำแข็งอะปาเช่

Apache Iceberg เป็นรูปแบบ โอเพนซอร์สประสิทธิภาพสูงสำหรับตารางวิเคราะห์ ขนาดใหญ่ Iceberg ช่วยให้สามารถใช้ ตาราง SQLสำหรับข้อมูลขนาดใหญ่ ในขณะเดียวกันก็ทำให้เอ็นจิ้นต่างๆ เช่นSpark..

ประวัติศาสตร์

Iceberg เริ่มต้นขึ้นที่ Netflix โดย Ryan Blue และ Dan Weeks Apache Hive ถูกใช้โดยบริการและกลไกต่างๆ มากมายในโครงสร้างพื้นฐานของ Netflix Hive ไม่สามารถรับประกันความถูกต้องและไม่ได้ให้ธุรกรรมอะตอมิกที่เสถียร[ 4 ] หลาย คน ใน Netflix...

รายละเอียดทางเทคนิค

Apache Iceberg ทำงานโดยแยกข้อมูลเมตาของตารางออกจากที่เก็บข้อมูลพื้นฐาน โดยจะรักษาไฟล์ข้อมูลเมตาที่ติดตามสแนปช็อต ข้อมูลสคีมา รูปแบบพาร์ติชัน และตำแหน่งไฟล์ข้อมูล ทำให้สามารถดำเนินการกับตารางได้อย่างมีประสิทธิภาพและเป็นอะตอม [ 18 ]

ดูเพิ่มเติม

รายชื่อโครงการของ Apache Software Foundation ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Apache_Iceberg&oldid=1361509853 "