ระยะที่ 3: Hive Metastore และการย้ายข้อมูล

บทความนี้เป็นระยะที่ 3 จาก 4 ในชุดแนวทางปฏิบัติที่ดีที่สุดของการโยกย้าย Azure Synapse Spark ไปยัง Microsoft Fabric

ใช้บทความนี้เมื่อคุณพร้อมที่จะย้ายแค็ตตาล็อก Hive Metastore และวางแผนการเข้าถึงข้อมูลใน Fabric บทความนี้มุ่งเน้นไปที่การตัดสินใจสองประการ: วิธีการโยกย้ายข้อมูลเมตาของตารางของคุณ และจะใช้ทางลัด OneLake (สําเนาเป็นศูนย์) หรือย้ายข้อมูลไปยังที่เก็บข้อมูลที่สามารถเข้าถึงได้

ในบทความนี้ คุณจะได้เรียนรู้วิธีการ:

  • ประเมินตารางที่มีการจัดการเทียบกับตารางภายนอกเพื่อกําหนดแนวทางการโยกย้ายของคุณ
  • ส่งออกและนําเข้าข้อมูลเมตาของ Hive Metastore โดยใช้เวิร์กโฟลว์สมุดบันทึก
  • สร้างทางลัด OneLake สําหรับการเข้าถึงแหล่งข้อมูลที่มีอยู่โดยไม่ต้องคัดลอก
  • เลือกระหว่างทางลัด ไปป์ไลน์คัดลอก และเครื่องมือถ่ายโอนจํานวนมากสําหรับการเคลื่อนย้ายข้อมูล

เคล็ดลับ

สร้างบ้านริมทะเลสาบเป้าหมายของคุณโดยเปิดใช้งานสคีมา สคีมาเลคเฮาส์ช่วยให้คุณสามารถจัดระเบียบตารางเป็นคอลเลกชันที่มีชื่อ (ตัวอย่างเช่น การขาย การตลาด ทรัพยากรบุคคล) Spark Migration Assistant จะแมปฐานข้อมูล Synapse เริ่มต้นไปยังdboสคีมา และแมปฐานข้อมูลเพิ่มเติมไปยังสคีมาเพิ่มเติมในบ้านทะเลสาบเดียวกัน สคีมาจะถูกเปิดใช้งานโดยค่าเริ่มต้นเมื่อสร้างบ้านริมทะเลสาบใหม่ในพอร์ทัล Fabric

สําหรับคู่มือการโยกย้าย HMS ฉบับเต็ม โปรดดู โยกย้ายข้อมูลเมตาของ Hive Metastore

ประเมินตารางที่มีการจัดการเทียบกับตารางภายนอก

ขั้นตอนแรกที่สําคัญคือการแยกแยะตารางที่มีการจัดการจากภายนอกใน Synapse Hive Metastore ของคุณ

  • ตารางภายนอก: หากข้อมูลอยู่ในรูปแบบ ADLS Gen2 ในรูปแบบเดลต้า ให้สร้างทางลัด OneLake ไปยังเส้นทาง ADLS Gen2 โดยตรง ไม่จําเป็นต้องเคลื่อนย้ายข้อมูล
  • ตารางที่มีการจัดการ: ข้อมูลจะถูกเก็บไว้ในไดเรกทอรีคลังสินค้าภายในของ Synapse คุณต้องสร้างทางลัด OneLake ไปยังเส้นทางนี้ หรือคัดลอกข้อมูลไปยังตําแหน่งที่ตั้ง ADLS Gen2 ที่สามารถเข้าถึงได้

เส้นทางไดเรกทอรีคลังสินค้าตารางที่มีการจัดการ Synapse:

abfss://<container>@<storage>.dfs.core.windows.net/synapse/workspaces/<workspace>/warehouse

เวิร์กโฟลว์การโยกย้าย

Microsoft ให้บริการสมุดบันทึกการส่งออก/นําเข้าสําหรับการโยกย้าย Hive Metastore กระบวนการนี้มีสองขั้นตอน

สําหรับคู่มือการโยกย้าย HMS ฉบับเต็ม โปรดดู โยกย้ายข้อมูลเมตาของ Hive Metastore

ระยะที่ 1: ส่งออกข้อมูลเมตาจาก Synapse

  1. นําเข้าสมุดบันทึกการส่งออก HMS ไปยังพื้นที่ทํางาน Azure Synapse ของคุณ สมุดบันทึกนี้สืบค้นและส่งออกข้อมูลเมตา HMS ของฐานข้อมูล ตาราง และพาร์ติชันไปยังไดเร็กทอรีระดับกลางใน OneLake

  2. กําหนดค่าพารามิเตอร์ ตั้งชื่อพื้นที่ทํางาน Synapse ชื่อฐานข้อมูลที่จะส่งออก และเลคเฮาส์ OneLake เป้าหมายสําหรับการจัดเตรียม API แค็ตตาล็อกภายในของ Spark ใช้เพื่ออ่านออบเจ็กต์แค็ตตาล็อก

  3. เรียกใช้การส่งออก เรียกใช้เซลล์สมุดบันทึกทั้งหมด ข้อมูลเมตาจะถูกเขียนลงในส่วนไฟล์ของ Fabric Lakehouse ของคุณในลําดับชั้นของโฟลเดอร์ที่มีโครงสร้าง

ระยะที่ 2: นําเข้าข้อมูลเมตาไปยัง Fabric Lakehouse

  1. สร้างทางลัดสําหรับการเข้าถึงข้อมูล สร้างทางลัดภายในส่วนไฟล์ของ Lakehouse โดยชี้ไปที่ไดเรกทอรีคลังสินค้า Synapse Spark สิ่งนี้ทําให้ Fabric สามารถเข้าถึงข้อมูลตารางที่มีการจัดการได้

  2. ตั้งค่าคอนฟิกการแม็ปคลังสินค้า สําหรับตารางที่มีการจัดการ ให้ระบุ WarehouseMappings เพื่อแทนที่เส้นทางไดเรกทอรีคลังสินค้า Synapse เก่าด้วยเส้นทางทางลัดใน Fabric ตารางที่มีการจัดการทั้งหมดจะถูกแปลงเป็นตารางภายนอกในระหว่างการนําเข้า

  3. เรียกใช้สมุดบันทึกการนําเข้า ใน Fabric เพื่อสร้างออบเจ็กต์แค็ตตาล็อก (ฐานข้อมูล ตาราง พาร์ติชัน) ใน Lakehouse โดยใช้ API แค็ตตาล็อกภายในของ Spark

  4. ตรวจสอบ ตรวจสอบว่าตารางที่นําเข้าทั้งหมดแสดงอยู่ในส่วน ตาราง ของ Lakehouse explorer UI

ข้อจํากัดและข้อควรพิจารณา

  • สคริปต์การย้ายข้อมูลใช้ API แค็ตตาล็อกภายในของ Spark ไม่ใช่การเชื่อมต่อฐานข้อมูล HMS โดยตรง สิ่งนี้อาจปรับขนาดได้ไม่ดีสําหรับแค็ตตาล็อกขนาดใหญ่มาก — สําหรับสภาพแวดล้อมขนาดใหญ่ ให้พิจารณาแก้ไขตรรกะการส่งออกเพื่อสืบค้นฐานข้อมูล HMS โดยตรง

  • ไม่มีการรับประกันการแยกระหว่างการส่งออก หากการประมวลผล Synapse Spark แก้ไข metastore พร้อมกัน อาจมีการนําข้อมูลที่ไม่สอดคล้องกันมาใช้ กําหนดเวลาการโยกย้ายระหว่างกรอบเวลาการบํารุงรักษา

  • ฟังก์ชันจะไม่รวมอยู่ในสคริปต์การย้ายข้อมูลปัจจุบัน

  • หลังจากการโยกย้าย ทางลัด OneLake จะให้การเข้าถึงข้อมูลอย่างต่อเนื่อง หาก Synapse ยังคงเขียนไปยังเส้นทาง ADLS Gen2 เดิม Fabric จะเห็นข้อมูลที่อัปเดตผ่านทางลัดโดยอัตโนมัติ (การซิงค์ระดับข้อมูล) อย่างไรก็ตาม ตารางหรือการเปลี่ยนแปลงสคีมาใหม่ใน Synapse HMS จะไม่แพร่กระจายโดยอัตโนมัติ — คุณต้องรันสคริปต์ย้ายข้อมูลใหม่หรือสร้างตารางใหม่ด้วยตนเองใน lakehouse ใน Fabric

  • เมตาสโตร์ไฮฟ์ภายนอก (Azure SQL DB / MySQL):พื้นที่ทํางาน Synapse บางแห่งใช้ HMS ภายนอกที่สนับสนุนโดย Azure SQL Database หรือ Azure Database for MySQL เพื่อคงข้อมูลเมตาของแค็ตตาล็อกไว้นอกพื้นที่ทํางานและแชร์กับ HDInsight หรือ Databricks Fabric ไม่รองรับการเชื่อมต่อกับ Hive Metastore ภายนอก แต่ใช้แคตตาล็อก Lakehouse เท่านั้น หากคุณใช้ HMS ภายนอก คุณต้องย้ายข้อมูลเมตาไปยังแค็ตตาล็อก Fabric Lakehouse คุณสามารถทําได้โดยการสืบค้นฐานข้อมูล HMS ภายนอกโดยตรง (ผ่าน JDBC) เพื่อเอ็กซ์พอร์ตนิยามตาราง แล้วสร้างใหม่ใน Fabric โดยใช้ Spark SQL หรือสมุดบันทึกการนําเข้า HMS โปรดทราบว่าการสนับสนุน HMS ภายนอกใน Synapse เลิกใช้หลังจาก Spark 3.4

เคล็ดลับ

สําหรับการซิงโครไนซ์อย่างต่อเนื่องเมื่อทั้ง Synapse และ Fabric ทํางานอยู่: ใช้ทางลัด OneLake สําหรับการซิงค์ระดับข้อมูล (อัตโนมัติ) และกําหนดเวลาการเรียกใช้ซ้ําเป็นระยะของสมุดบันทึกการส่งออก/นําเข้า HMS หรือสร้างสมุดบันทึกการกระทบยอดเพื่อตรวจหาและซิงค์ตารางใหม่

ตัวเลือกการย้ายข้อมูล

คุณมีข้อมูลใน ADLS Gen2 ที่เชื่อมโยงกับ workspace Synapse ซึ่งต้องทําให้เข้าถึงได้ในบ้านริมทะเลสาบใน Fabric โดยไม่ต้องมีข้อมูลซ้ําโดยไม่จําเป็น เลือกจากวิธีการต่อไปนี้

  • ทางลัด OneLake (แนะนํา ไม่มีสําเนา):สร้างทางลัดใน Fabric Lakehouse โดยชี้ไปยังเส้นทาง ADLS Gen2 ที่มีอยู่ของคุณ ข้อมูลรูปแบบเดลต้าในส่วน ตาราง จะลงทะเบียนอัตโนมัติในแค็ตตาล็อก Lakehouse ข้อมูล CSV/JSON/Parquet จะอยู่ในส่วนไฟล์ ไม่จําเป็นต้องเคลื่อนย้ายข้อมูล

  • MSsparkutils fastcp: สําหรับการคัดลอกข้อมูลจาก ADLS Gen2 ไปยัง OneLake ภายในสมุดบันทึก

  • AzCopy: ยูทิลิตี้บรรทัดคําสั่งสําหรับการคัดลอกข้อมูลจํานวนมากจาก ADLS Gen2 ไปยัง OneLake

  • กิจกรรมการคัดลอกจากโรงงานข้อมูล: ใช้ Fabric Data Factory (หรือไปป์ไลน์ ADF/Synapse ที่มีอยู่) เพื่อคัดลอกข้อมูลไปยังเลคเฮาส์

  • Azure Storage Explorer: เครื่องมือภาพสําหรับย้ายไฟล์จาก ADLS Gen2 ไปยัง OneLake

เคล็ดลับ

เลือกทางลัดมากกว่าการเคลื่อนย้ายข้อมูลทุกครั้งที่ทําได้ ทางลัดจะหลีกเลี่ยงการทําซ้ําข้อมูลและค่าใช้จ่ายในการจัดเก็บ และตารางเดลต้าในส่วน ตาราง สามารถค้นพบได้โดยอัตโนมัติในจุดสิ้นสุดการวิเคราะห์ SQL และ Power BI