โลโก้เซเฟอร์เน็ต

คำแนะนำในการโยกย้ายจาก Databricks Delta Lake ไปยัง Apache Iceberg

วันที่:

บทนำ

ในโลกใบใหญ่ที่เปลี่ยนแปลงอย่างรวดเร็ว การประมวลผล และการวิเคราะห์ การจัดการศักยภาพของชุดข้อมูลที่กว้างขวางทำหน้าที่เป็นเสาหลักพื้นฐานสำหรับบริษัทต่างๆ ในการตัดสินใจอย่างมีข้อมูล ช่วยให้พวกเขาดึงข้อมูลเชิงลึกที่เป็นประโยชน์จากข้อมูลของพวกเขา ในช่วงไม่กี่ปีที่ผ่านมา มีโซลูชั่นที่หลากหลายเกิดขึ้น เช่น Databricks Delta Lake และ Apache Iceberg แพลตฟอร์มเหล่านี้ได้รับการพัฒนาสำหรับการจัดการ Data Lake และทั้งสองมีฟีเจอร์และฟังก์ชันการทำงานที่แข็งแกร่ง แต่สำหรับองค์กรต่างๆ จำเป็นต้องเข้าใจถึงความแตกต่างในแง่ของสถาปัตยกรรม เทคนิค และฟังก์ชันในการย้ายแพลตฟอร์มที่มีอยู่ บทความนี้จะสำรวจกระบวนการที่ซับซ้อนในการเปลี่ยนจาก Databricks Delta Lake ไปเป็น Apache Iceberg

วัตถุประสงค์การเรียนรู้

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

บทความนี้เผยแพร่โดยเป็นส่วนหนึ่งของไฟล์ Blogathon วิทยาศาสตร์ข้อมูล

สารบัญ

ทำความเข้าใจ Databricks Delta Lake

Databricks Delta Lake นั้นเป็นชั้นจัดเก็บข้อมูลที่ซับซ้อนซึ่งสร้างขึ้นที่ด้านบนของ Apache Spark กรอบ. มีฟังก์ชันข้อมูลสมัยใหม่ที่พัฒนาขึ้นเพื่อการจัดการข้อมูลที่ราบรื่น Delta Lake มีคุณสมบัติหลายประการที่เป็นแกนหลัก:

  • ธุรกรรมกรด: Delta Lake รับประกันหลักการพื้นฐานของความเป็นปรมาณู ความสม่ำเสมอ การแยกตัว และความทนทานสำหรับการแก้ไขข้อมูลผู้ใช้ทั้งหมด จึงรับประกันการดำเนินงานข้อมูลที่แข็งแกร่งและถูกต้อง
  • วิวัฒนาการสคีมา: ความยืดหยุ่นมาพร้อมกับส่วนใหญ่ ทะเลสาบเดลต้าเนื่องจากรองรับวิวัฒนาการสคีมาได้อย่างราบรื่น จึงช่วยให้อุตสาหกรรมดำเนินการเปลี่ยนแปลงสคีมาได้โดยไม่รบกวนไปป์ไลน์ข้อมูลที่มีอยู่ในการผลิต
  • เวลาเดินทาง: เช่นเดียวกับการเดินทางข้ามเวลาในภาพยนตร์ไซไฟ ทะเลสาบเดลต้าให้ความสามารถในการสืบค้นภาพรวมข้อมูล ณ จุดใดจุดหนึ่งในช่วงเวลาหนึ่ง ดังนั้นจึงช่วยให้ผู้ใช้เจาะลึกในการวิเคราะห์ข้อมูลในอดีตอย่างครอบคลุมและความสามารถในการกำหนดเวอร์ชัน
  • การจัดการไฟล์ที่ปรับให้เหมาะสม: Delta Lake รองรับเทคนิคที่มีประสิทธิภาพในการจัดระเบียบและจัดการไฟล์ข้อมูลและข้อมูลเมตา ส่งผลให้ประสิทธิภาพการสืบค้นได้รับการปรับปรุงและลดต้นทุนการจัดเก็บ

คุณสมบัติของภูเขาน้ำแข็งอาปาเช่

Apache Iceberg มอบทางเลือกที่แข่งขันได้สำหรับบริษัทที่กำลังมองหาโซลูชันการจัดการ Data Lake ที่ได้รับการปรับปรุง ภูเขาน้ำแข็งเอาชนะรูปแบบดั้งเดิมบางอย่าง เช่น Parquet หรือ ORC มีข้อดีที่โดดเด่นหลายประการ:

  • วิวัฒนาการสคีมา: ผู้ใช้สามารถใช้ประโยชน์จากคุณลักษณะวิวัฒนาการสคีมาในขณะที่ดำเนินการเปลี่ยนแปลงสคีมาโดยไม่ต้องเขียนตารางใหม่ราคาแพง
  • การแยกสแนปชอต: Iceberg ให้การสนับสนุนการแยกสแนปช็อต จึงรับประกันการอ่านและเขียนที่สอดคล้องกัน ช่วยให้แก้ไขตารางพร้อมกันได้โดยไม่กระทบต่อความสมบูรณ์ของข้อมูล
  • การจัดการข้อมูลเมตา: คุณสมบัตินี้จะแยกข้อมูลเมตาออกจากไฟล์ข้อมูลโดยทั่วไป และจัดเก็บไว้ใน repo เฉพาะซึ่งแตกต่างจากไฟล์ข้อมูลเอง โดยทำเช่นนั้นเพื่อเพิ่มประสิทธิภาพและเพิ่มขีดความสามารถให้กับการดำเนินงานเมตาดาต้าที่มีประสิทธิภาพ
  • การตัดแต่งกิ่งพาร์ติชั่น: ใช้ประโยชน์จากเทคนิคการตัดแต่งขั้นสูง โดยจะปรับประสิทธิภาพการสืบค้นให้เหมาะสมโดยการลดข้อมูลที่สแกนระหว่างการดำเนินการสืบค้น

การวิเคราะห์เปรียบเทียบสถาปัตยกรรม

ให้เราเจาะลึกเข้าไปในการวิเคราะห์เชิงเปรียบเทียบของสถาปัตยกรรม:

สถาปัตยกรรม Databricks Delta Lake

  • ชั้นเก็บของ: Delta Lake ใช้ประโยชน์จากพื้นที่เก็บข้อมูลบนคลาวด์ เช่น Amazon S3, หยด Azure เป็นเลเยอร์พื้นฐานของการจัดเก็บข้อมูล ซึ่งประกอบด้วยทั้งไฟล์ข้อมูลและบันทึกธุรกรรม
  • การจัดการข้อมูลเมตา: ข้อมูลเมตาอยู่ในบันทึกธุรกรรม ดังนั้นจึงนำไปสู่การดำเนินการเมตาดาต้าที่มีประสิทธิภาพและรับประกันความสอดคล้องของข้อมูล
  • เทคนิคการเพิ่มประสิทธิภาพ: Delta Lake ใช้ประโยชน์จากตัน เทคนิคการเพิ่มประสิทธิภาพ- ซึ่งรวมถึงการข้ามข้อมูลและการจัดลำดับ Z เพื่อปรับปรุงประสิทธิภาพการสืบค้นอย่างมาก และลดค่าใช้จ่ายขณะสแกนข้อมูล
สถาปัตยกรรม Databricks Delta Lake

สถาปัตยกรรมภูเขาน้ำแข็งอาปาเช่

  • การแยกข้อมูลเมตา: มีความแตกต่างเมื่อเปรียบเทียบกับ อิฐข้อมูล ในแง่ของการแยก metadata ออกจากไฟล์ข้อมูล ภูเขาน้ำแข็งเก็บข้อมูลเมตาในพื้นที่เก็บข้อมูลแยกต่างหากจากไฟล์ข้อมูล
  • การสนับสนุนการทำธุรกรรม: เพื่อรับรองความสมบูรณ์และความน่าเชื่อถือของข้อมูล Iceberg มีโปรโตคอลธุรกรรมที่แข็งแกร่ง โปรโตคอลนี้รับประกันการดำเนินการตารางแบบอะตอมมิกและสม่ำเสมอ
  • เข้ากันได้: เครื่องยนต์เช่น Apache Spark, Flink และ Presto สามารถใช้งานร่วมกับ Iceberg ได้อย่างง่ายดาย นักพัฒนามีความยืดหยุ่นในการใช้ Iceberg กับเฟรมเวิร์กการประมวลผลแบบเรียลไทม์และแบบแบตช์เหล่านี้
สถาปัตยกรรมภูเขาน้ำแข็งอาปาเช่

การนำทางภูมิทัศน์การย้ายถิ่น: ข้อควรพิจารณาและแนวทางปฏิบัติที่ดีที่สุด

จำเป็นต้องมีการวางแผนและการดำเนินการจำนวนมหาศาลเพื่อดำเนินการโยกย้ายจาก Databricks Delta Lake ไปยัง Apache Iceberg ควรพิจารณาบางประการ ได้แก่:

  • วิวัฒนาการสคีมา: รับประกันความเข้ากันได้ที่ไร้ที่ติระหว่างคุณลักษณะวิวัฒนาการสคีมาของ Delta Lake และ Iceberg เพื่อรักษาความสอดคล้องระหว่างการเปลี่ยนแปลงสคีมา
  • การโยกย้ายข้อมูล: กลยุทธ์ควรได้รับการพัฒนาและสอดคล้องกับปัจจัยต่างๆ เช่น ปริมาณข้อมูล ข้อกำหนดการหยุดทำงาน และความสอดคล้องของข้อมูล
  • ความเข้ากันได้ของแบบสอบถาม: ควรตรวจสอบความเข้ากันได้ของแบบสอบถามระหว่าง Delta Lake และ Iceberg ซึ่งจะนำไปสู่การเปลี่ยนแปลงที่ราบรื่นและฟังก์ชันการสืบค้นที่มีอยู่จะยังคงเหมือนเดิมหลังการโยกย้าย
  • ประสิทธิภาพ การทดสอบ: เริ่มต้นการทดสอบประสิทธิภาพและการถดถอยที่ครอบคลุมเพื่อตรวจสอบประสิทธิภาพของคิวรี ควรตรวจสอบการใช้ทรัพยากรระหว่างภูเขาน้ำแข็งและทะเลสาบเดลต้า ด้วยวิธีนี้ จึงสามารถรับรู้พื้นที่ที่มีศักยภาพเพื่อการปรับให้เหมาะสมได้

สำหรับการย้ายข้อมูล นักพัฒนาสามารถใช้โครงร่างโค้ดที่กำหนดไว้ล่วงหน้าบางส่วนจากเอกสาร Iceberg และ Databricks และนำไปใช้งานแบบเดียวกัน มีการกล่าวถึงขั้นตอนด้านล่างและภาษาที่ใช้ในที่นี้คือ Scala:

ขั้นตอนที่ 1: สร้างตาราง Delta Lake

ในขั้นตอนเริ่มต้น ตรวจสอบให้แน่ใจว่าบัคเก็ต S3 ว่างเปล่าและตรวจสอบแล้ว ก่อนที่จะดำเนินการสร้างข้อมูลภายในนั้น เมื่อกระบวนการสร้างข้อมูลเสร็จสมบูรณ์ ให้ดำเนินการตรวจสอบต่อไปนี้:

ขั้นตอนที่ 1: สร้างตาราง Delta Lake
val data=spark.range(0,5)
data.write.format("delta").save("s3://testing_bucket/delta-table")

spark.read.format("delta").load("s3://testing_bucket/delta-table")
สร้างตารางเดลต้าเลค
สร้างตารางเดลต้าเลค

การเพิ่มรหัสสูญญากาศเสริม

#adding optional code for vaccum later
val data=spark.range(5,10)
data.write.format("delta").mode("overwrite").save("s3://testing_bucket/delta-table")

ขั้นตอนที่ 2: CTAS และการอ่านตาราง Delta Lake

#reading delta lake table
spark.read.format("delta").load("s3://testing_bucket/delta-table")

ขั้นตอนที่ 3: อ่าน Delta Lake และเขียนลงในตารางภูเขาน้ำแข็ง

val df_delta=spark.read.format("delta").load("s3://testing_bucket/delta-table")
df_delta.writeTo("test.db.iceberg_ctas").create()
spark.read.format("iceberg").load("test.db.iceberg.ctas)

ตรวจสอบข้อมูลที่ทิ้งลงในตารางภูเขาน้ำแข็งภายใต้ S3

อ่านเดลต้าเลคและเขียนถึงตารางภูเขาน้ำแข็ง
อ่านเดลต้าเลคและเขียนถึงตารางภูเขาน้ำแข็ง

การเปรียบเทียบเครื่องมือของบุคคลที่สามในแง่ของความเรียบง่าย ประสิทธิภาพ ความเข้ากันได้ และการสนับสนุน เครื่องมือทั้งสองอย่างได้แก่ AWS Glue DataBrew และ Snowflake มาพร้อมกับชุดฟังก์ชันของตัวเอง

AWS กาว DataBrew

กระบวนการย้ายข้อมูล:

  • ใช้งานง่าย: AWS Glue DataBrew เป็นผลิตภัณฑ์ภายใต้ AWS cloud และมอบประสบการณ์ที่เป็นมิตรต่อผู้ใช้สำหรับงานล้างข้อมูลและการเปลี่ยนแปลง
  • บูรณาการ: Glue DataBrew สามารถผสานรวมกับบริการคลาวด์อื่นๆ ของ Amazon ได้อย่างราบรื่น สำหรับองค์กรที่ทำงานร่วมกับ AWS สามารถใช้บริการนี้ได้

ชุดคุณลักษณะ:

  • การแปลงข้อมูล: มาพร้อมกับคุณสมบัติมากมายสำหรับการแปลงข้อมูล (EDA) อาจมีประโยชน์ในระหว่างการย้ายข้อมูล
  • การทำโปรไฟล์อัตโนมัติ: เช่นเดียวกับเครื่องมือโอเพ่นซอร์สอื่นๆ DataBrew จะทำโปรไฟล์ข้อมูลโดยอัตโนมัติ เพื่อตรวจจับความไม่สอดคล้องกันและแนะนำงานการแปลงด้วย

ประสิทธิภาพและความเข้ากันได้:

  • scalability: สำหรับการประมวลผลชุดข้อมูลขนาดใหญ่ที่สามารถพบได้ในระหว่างกระบวนการย้ายข้อมูล Glue DataBrew มอบความสามารถในการปรับขนาดเพื่อจัดการสิ่งนั้นเช่นกัน
  • ความเข้ากันได้: ให้ความเข้ากันได้กับชุดรูปแบบและแหล่งข้อมูลที่กว้างขึ้น จึงอำนวยความสะดวกในการผสานรวมกับโซลูชันการจัดเก็บข้อมูลที่หลากหลาย

เกล็ดหิมะ

กระบวนการย้ายข้อมูล:

  • ความสะดวกในการโยกย้าย: เพื่อความเรียบง่าย Snowflake มีบริการย้ายข้อมูลซึ่งช่วยให้ผู้ใช้ปลายทางย้ายจากคลังข้อมูลที่มีอยู่ไปยังแพลตฟอร์ม Snowflake
  • เอกสารประกอบ: Snowflake มอบเอกสารมากมายและทรัพยากรจำนวนเพียงพอเพื่อเริ่มต้นกระบวนการย้ายข้อมูล

ชุดคุณลักษณะ:

  • ความสามารถในการจัดเก็บข้อมูล: มีชุดคุณสมบัติคลังสินค้าที่กว้างขึ้น และรองรับข้อมูลกึ่งโครงสร้าง การแบ่งปันข้อมูล และการกำกับดูแลข้อมูล
  • เห็นพ้องด้วย: สถาปัตยกรรมช่วยให้เกิดการทำงานพร้อมกันได้สูง ซึ่งเหมาะสำหรับองค์กรที่มีข้อกำหนดในการประมวลผลข้อมูลที่มีความต้องการสูง

ประสิทธิภาพและความเข้ากันได้:

  • ประสิทธิภาพ: Snowflake ยังมีประสิทธิภาพที่มีประสิทธิภาพในแง่ของความสามารถในการปรับขนาด ซึ่งช่วยให้ผู้ใช้ปลายทางสามารถประมวลผลข้อมูลปริมาณมากได้อย่างง่ายดาย
  • ความเข้ากันได้: Snowflake ยังมีตัวเชื่อมต่อที่หลากหลายสำหรับแหล่งข้อมูลที่แตกต่างกัน จึงรับประกันความเข้ากันได้ข้ามกับระบบนิเวศของข้อมูลที่หลากหลาย
"

สรุป

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

ประเด็นที่สำคัญ

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

คำถามที่พบบ่อย

ไตรมาสที่ 1 กระบวนการโยกย้ายจาก Databricks Delta Lake ไปยัง Apache Iceberg ดำเนินการอย่างไร

ตอบ: เกี่ยวข้องกับการส่งออกข้อมูลจาก Databricks Delta Lake ทำความสะอาดหากจำเป็น จากนั้นนำเข้าลงในตาราง Apache Iceberg

ไตรมาสที่ 2 มีเครื่องมืออัตโนมัติใดบ้างที่สามารถช่วยโยกย้ายได้โดยไม่ต้องมีการแทรกแซงด้วยตนเอง?

ตอบ โดยทั่วไปองค์กรต่างๆ จะใช้ประโยชน์จากสคริปต์ Python/Scala แบบกำหนดเองและเครื่องมือ ETL เพื่อสร้างเวิร์กโฟลว์นี้

ไตรมาสที่ 3 อะไรคือความท้าทายทั่วไปที่องค์กรต้องเผชิญในระหว่างกระบวนการย้ายข้อมูล?

ตอบ ความท้าทายบางประการที่อาจจะเกิดขึ้นอย่างมาก ได้แก่ ความสอดคล้องของข้อมูล การจัดการความแตกต่างในการพัฒนาสคีมา และการเพิ่มประสิทธิภาพหลังการย้ายข้อมูล

ไตรมาสที่ 4 Apache Iceberg และรูปแบบตารางอื่นๆ เช่น Parquet หรือ ORC แตกต่างกันอย่างไร

A. Apache Iceberg มีคุณสมบัติต่างๆ เช่น วิวัฒนาการของสคีมา การแยกสแนปช็อต และการจัดการเมตาดาต้าที่มีประสิทธิภาพ ซึ่งแตกต่างจาก Parquet และ ORC

คำถามที่ 5 เราสามารถใช้ Apache Iceberg กับโซลูชันการจัดเก็บข้อมูลบนคลาวด์ได้หรือไม่

ตอบ แน่นอนว่า Apache Iceberg เข้ากันได้กับโซลูชันการจัดเก็บข้อมูลบนระบบคลาวด์ที่ใช้กันทั่วไป เช่น AWS S3, Azure Blob Storage และ Google Cloud Storage

สื่อที่แสดงในบทความนี้ไม่ได้เป็นของ Analytics Vidhya และถูกใช้ตามดุลยพินิจของผู้เขียน

จุด_img

ข่าวกรองล่าสุด

จุด_img