หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําไปใช้กับ: ✅ คลังสินค้าใน Microsoft Fabric
บทความนี้อธิบายวิธีการย้ายคลังข้อมูลในพูล SQL เฉพาะทาง Azure Synapse Analytics ไปยัง Microsoft Fabric คลังข้อมูล
เคล็ดลับ
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับกลยุทธ์และการวางแผนการโยกย้ายของคุณ โปรดดูที่การวางแผนการโยกย้าย : กลุ่ม Azure Synapse Analytics เฉพาะ SQL สําหรับ Fabric คลังข้อมูล
ประสบการณ์อัตโนมัติสําหรับการโยกย้ายจากกลุ่ม SQL เฉพาะของ Azure Synapse Analytics สามารถใช้งานได้โดยใช้ Fabric Migration Assistant สําหรับ คลังข้อมูล ส่วนที่เหลือของบทความนี้ประกอบด้วยขั้นตอนการโยกย้ายข้อมูลด้วยตนเองเพิ่มเติม
ตารางนี้จะสรุปข้อมูลสําหรับ Schema ข้อมูล (DDL) รหัสฐานข้อมูล (DML) และวิธีการโยกย้ายข้อมูล เราจะขยายเพิ่มเติมในแต่ละสถานการณ์ในภายหลังในบทความนี้ ซึ่งเชื่อมโยงในคอลัมน์ตัวเลือก
| หมายเลขตัวเลือก | ตัวเลือก | สิ่งที่ทำ | ทักษะ/การกําหนดลักษณะ | บทภาพยนตร์ |
|---|---|---|---|---|
| 1 | โรงงานข้อมูล | การแปลงเค้าร่าง (DDL) การดึงข้อมูล การนำเข้าข้อมูล |
ADF/ไปป์ไลน์ | ทําให้ทุกอย่างง่ายขึ้นในสคีมาหนึ่ง (DDL) และการโยกย้ายข้อมูล แนะนําสําหรับ ตารางมิติ |
| 2 | Data Factory พร้อมพาร์ติชัน | การแปลงเค้าร่าง (DDL) การดึงข้อมูล การนำเข้าข้อมูล |
ADF/ไปป์ไลน์ | การใช้ตัวเลือกการแบ่งพาร์ติชันเพื่อเพิ่มการทํางานแบบขนานในการอ่าน/เขียน ซึ่งมีอัตราความเร็วเทียบกับตัวเลือกที่ 1 สิบครั้ง แนะนําสําหรับตารางข้อเท็จจริง |
| 3 | Data Factory ที่มีรหัสเร่ง | การแปลงเค้าร่าง (DDL) | ADF/ไปป์ไลน์ | แปลงและโยกย้าย Schema (DDL) ก่อน จากนั้นใช้ CETAS เพื่อแยกและคัดลอก/โรงงานข้อมูลไปยังการนําเข้าข้อมูลเพื่อประสิทธิภาพการนําเข้าโดยรวมที่ดีที่สุด |
| 4 | โค้ดเร่งขั้นตอนที่จัดเก็บไว้ | การแปลงเค้าร่าง (DDL) การดึงข้อมูล การประเมินโค้ด |
T-SQL | ผู้ใช้ SQL ที่ใช้ IDE ที่มีการควบคุมงานที่ละเอียดมากขึ้นซึ่งพวกเขาต้องการใช้งาน ใช้คัดลอก/โรงงานข้อมูลเพื่อนําเข้าข้อมูล |
| 5 | ส่วนขยายโครงการฐานข้อมูล SQL สําหรับ Visual Studio Code | การแปลงเค้าร่าง (DDL) การดึงข้อมูล การประเมินโค้ด |
โครงการ SQL | โครงการฐานข้อมูล SQL สําหรับการปรับใช้ด้วยการรวมกันของตัวเลือกที่ 4 ใช้คัดลอกหรือโรงงานข้อมูลเพื่อนําเข้าข้อมูล |
| 6 | สร้างตารางภายนอกเป็นการเลือก (CETAS) | การดึงข้อมูล | T-SQL | ค่าใช้จ่ายในการแยกข้อมูลที่มีประสิทธิภาพและประสิทธิภาพสูงลงใน Azure Data Lake Storage (ADLS) Gen2 ใช้คัดลอก/โรงงานข้อมูลเพื่อนําเข้าข้อมูล |
| 7 | โยกย้ายโดยใช้ dbt | การแปลงเค้าร่าง (DDL) การแปลงรหัสฐานข้อมูล (DML) |
dbt | ผู้ใช้ dbt ที่มีอยู่สามารถใช้ตัวปรับต่อ dbt Fabric เพื่อแปลง DDL และ DML ของพวกเขาได้ จากนั้นคุณต้องโยกย้ายข้อมูลโดยใช้ตัวเลือกอื่นในตารางนี้ |
เลือกปริมาณงานสําหรับการโยกย้ายเบื้องต้น
เมื่อตัดสินใจว่าจะเริ่มต้นจากจุดเริ่มต้นของพูล SQL เฉพาะของ Synapse เพื่อ Fabric คลังข้อมูล โครงการย้ายข้อมูล ให้เลือกพื้นที่งานที่คุณสามารถ:
- พิสูจน์ความเป็นไปได้ในการย้ายไปยัง Fabric คลังข้อมูล ด้วยการส่งมอบประโยชน์จากสภาพแวดล้อมใหม่อย่างรวดเร็ว เริ่มต้นจากสิ่งเล็ก ๆ เรียบง่าย และเตรียมรับมือกับการย้ายข้อมูลเล็ก ๆ หลายครั้ง
- ช่วยให้พนักงานด้านเทคนิคของคุณจะได้รับประสบการณ์ที่เกี่ยวข้องกับกระบวนการและเครื่องมือที่พวกเขาใช้เมื่อโยกย้ายข้อมูลไปยังพื้นที่อื่น ๆ
- สร้างเทมเพลตสําหรับการโยกย้ายเพิ่มเติมที่เฉพาะเจาะจงกับสภาพแวดล้อม Synapse ต้นทาง และเครื่องมือและกระบวนการเพื่อช่วย
เคล็ดลับ
สร้างคลังวัตถุที่จําเป็นต้องโยกย้าย และจัดทําเอกสารกระบวนการโยกย้ายตั้งแต่ต้นจนจบ เพื่อให้สามารถทําซ้ําสําหรับพูล SQL หรือปริมาณงานอื่นๆ โดยเฉพาะได้
ปริมาณข้อมูลที่ย้ายในครั้งแรกควรมีมากพอที่จะแสดงความสามารถและประโยชน์ของสภาพแวดล้อม Fabric คลังข้อมูล แต่ไม่ควรมากจนแสดงคุณค่าได้อย่างรวดเร็ว ขนาดในช่วง 1-10 เทราไบต์เป็นเรื่องปกติ
การย้ายข้อมูลด้วยโรงงานข้อมูล Fabric
ในส่วนนี้ เราจะกล่าวถึงตัวเลือกโดยใช้ Data Factory สําหรับ persona แบบ low-code/no-code ที่คุ้นเคยกับ Azure Data Factory และ Synapse Pipeline ตัวเลือก UI แบบลากแล้วปล่อยนี้จะให้ขั้นตอนง่ายๆ ในการแปลง DDL และโยกย้ายข้อมูล
โรงงานข้อมูลผ้าสามารถทํางานต่อไปนี้:
- แปลงสคีมา (DDL) เป็นไวยากรณ์ Fabric คลังข้อมูล
- สร้างสคีมา (DDL) บน Fabric คลังข้อมูล
- ย้ายข้อมูลไปยัง Fabric คลังข้อมูล
ตัวเลือกที่ 1 การโยกย้าย Schema/ข้อมูล - ตัวช่วยสร้างการคัดลอกและกิจกรรมการคัดลอกของ ForEach
วิธีนี้ใช้ผู้ช่วย Data Factory Copy เพื่อเชื่อมต่อกับพูล SQL เฉพาะของแหล่งที่มา แปลงไวยากรณ์ DDL ของพูล SQL เฉพาะเป็น Fabric และคัดลอกข้อมูลไปยัง Fabric คลังข้อมูล คุณสามารถเลือกตารางเป้าหมายอย่างน้อยหนึ่งตาราง (สําหรับ TPC-DS ชุดข้อมูลมี 22 ตาราง) จะสร้าง ForEach เพื่อวนรอบผ่านรายการของตารางที่เลือกใน UI และสร้างเธรดกิจกรรมการคัดลอกแบบขนาน 22 รายการ
- 22 คิวรี SELECT (หนึ่งคิวรีสําหรับแต่ละตารางที่เลือก) ถูกสร้างขึ้นและดําเนินการในกลุ่ม SQL เฉพาะ
- ตรวจสอบให้แน่ใจว่า คุณมี DWU และคลาสทรัพยากรที่เหมาะสมเพื่ออนุญาตให้คิวรีที่สร้างขึ้นเพื่อดําเนินการ สําหรับกรณีนี้ คุณจําเป็นต้องมี DWU1000
staticrc10ขั้นต่ําเพื่อให้มีคิวรีได้สูงสุด 32 คิวรีสําหรับการจัดการ 22 คิวรีที่ส่ง - การคัดลอกข้อมูลโดยตรงจาก Data Factory จากพูล SQL เฉพาะไปยัง Fabric คลังข้อมูล จําเป็นต้องมีการจัดขั้นตอน (staging) กระบวนการรับเข้าประกอบด้วยสองขั้นตอน
- ระยะแรกจะประกอบด้วยการดึงข้อมูลจากพูล SQL เฉพาะลงใน ADLS และเรียกว่าการจัดเตรียม
- เฟสที่สองจะรับข้อมูลจากการสเตจเข้าสู่ Fabric คลังข้อมูล เวลาการนําเข้าข้อมูลส่วนใหญ่อยู่ในระยะการจัดเตรียม โดยสรุป สเตจจิ้งมีผลต่อประสิทธิภาพการนําเข้าอย่างมาก
การใช้งานที่แนะนำ
การใช้ตัวช่วยสร้างสําเนาเพื่อสร้าง ForEach ให้ UI ง่าย ๆ ในการแปลง DDL และนําเข้าตารางที่เลือกจากพูล SQL เฉพาะไปยัง Fabric คลังข้อมูล ในขั้นตอนเดียว
อย่างไรก็ตาม การดําเนินการนี้ไม่เหมาะสมกับปริมาณงานโดยรวม ข้อกําหนดในการใช้การจัดเตรียม ความจําเป็นในการอ่านและการเขียนแบบขนานสําหรับขั้นตอน "แหล่งที่มาไปยังลําดับขั้น" เป็นปัจจัยหลักสําหรับเวลาแฝงด้านประสิทธิภาพการทํางาน ขอแนะนําให้ใช้ตัวเลือกนี้สําหรับตารางมิติเท่านั้น
ตัวเลือกที่ 2 DDL/การโยกย้ายข้อมูล - ไปป์ไลน์โดยใช้ตัวเลือกพาร์ติชัน
หากต้องการปรับปรุงปริมาณงานเพื่อโหลดตารางข้อเท็จจริงที่ใหญ่ขึ้นโดยใช้ไปป์ไลน์ Fabric ขอแนะนําให้ใช้กิจกรรมการคัดลอกสําหรับแต่ละตารางข้อเท็จจริงพร้อมตัวเลือกพาร์ติชัน ซึ่งมีประสิทธิภาพที่ดีที่สุดด้วยกิจกรรมการคัดลอก
คุณมีตัวเลือกในการใช้การแบ่งพาร์ติชันจริงของตารางต้นทาง ถ้ามี ถ้าตารางไม่มีพาร์ติชันจริง คุณต้องระบุคอลัมน์พาร์ติชันและใส่ค่าต่ําสุด/สูงสุดเพื่อใช้การแบ่งพาร์ติชันแบบไดนามิก ในภาพหน้าจอต่อไปนี้ ตัวเลือก แหล่งที่มา ของไปป์ไลน์กําลังระบุช่วงไดนามิกของพาร์ติชันตาม ws_sold_date_sk คอลัมน์
ในขณะที่ใช้พาร์ติชันสามารถเพิ่มปริมาณงานด้วยขั้นตอนการแบ่งระยะ มีข้อควรพิจารณาเพื่อทําการปรับเปลี่ยนที่เหมาะสม:
- ซึ่งอาจใช้สล็อตพร้อมกันทั้งหมดเนื่องจากอาจสร้างคิวรีมากกว่า 128 คิวรีบนพูล SQL เฉพาะ ทั้งนี้ขึ้นอยู่กับช่วงของพาร์ติชันของคุณ
- คุณจําเป็นต้องปรับมาตราส่วนเป็น DWU6000 น้อยที่สุดเพื่อให้สามารถดําเนินการคิวรีทั้งหมดได้
- ตัวอย่างเช่น สําหรับตาราง TPC DS
web_salesคิวรี 163 รายการจะถูกส่งไปยังกลุ่ม SQL เฉพาะ ที่ DWU6000 มีการดําเนินการคิวรี 128 รายการในขณะที่มีคิวคิวรี 35 รายการ - พาร์ติชันแบบไดนามิกจะเลือกพาร์ติชันช่วงโดยอัตโนมัติ ในกรณีนี้ เป็นช่วง 11 วันสําหรับแต่ละคิวรี SELECT ที่ส่งไปยังกลุ่ม SQL เฉพาะ ตัวอย่าง:
WHERE [ws_sold_date_sk] > '2451069' AND [ws_sold_date_sk] <= '2451080') ... WHERE [ws_sold_date_sk] > '2451333' AND [ws_sold_date_sk] <= '2451344')
การใช้งานที่แนะนำ
สําหรับตารางข้อเท็จจริง เราแนะนําให้ใช้ Data Factory กับตัวเลือกการแบ่งพาร์ติชันเพื่อเพิ่มปริมาณงาน
อย่างไรก็ตาม การอ่านแบบขนานที่เพิ่มขึ้นต้องการ SQL pool เฉพาะเพื่อขยาย DWU ให้สูงขึ้นเพื่อให้คําสั่งดึงข้อมูลสามารถดําเนินการได้ ด้วยการใช้การแบ่งพาร์ติชัน อัตราค่าจะดีขึ้นสิบเท่าเมื่อเทียบกับตัวเลือกที่ไม่มีพาร์ติชัน คุณสามารถเพิ่ม DWU เพื่อเพิ่มอัตราการส่งข้อมูลผ่านทรัพยากรคอมพิวเตอร์ แต่พูล SQL เฉพาะอนุญาตให้มีคําสั่งค้นหาที่ใช้งานได้สูงสุด 128 คําสั่ง
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการแม็ป Synapse DWU ไปยัง Fabric โปรดดู บล็อก: การแมปพูล SQL เฉพาะของ Azure Synapse กับการคํานวณ Fabric คลังข้อมูล
ตัวเลือกที่ 3 การโยกย้าย DDL - ตัวช่วยสร้างการคัดลอกกิจกรรมการคัดลอกของ ForEach
ตัวเลือกสองข้อก่อนหน้านี้เป็นตัวเลือกการโยกย้ายข้อมูลที่ยอดเยี่ยมสําหรับฐานข้อมูลที่มีขนาดเล็กลง แต่ถ้าคุณต้องการปริมาณงานที่สูงขึ้น เราขอแนะนําให้เลือกตัวเลือกอื่น:
- แยกข้อมูลจากกลุ่ม SQL เฉพาะเป็น ADLS ดังนั้นจึงลดค่าใช้จ่ายด้านประสิทธิภาพการทํางานของขั้นตอน
- ใช้ Data Factory หรือคําสั่ง COPY เพื่อนําเข้าข้อมูลเข้าสู่คลังของคุณ
การใช้งานที่แนะนำ
คุณสามารถใช้ Data Factory เพื่อแปลง Schema (DDL) ของคุณได้ต่อไป ด้วยการใช้ตัวช่วยสร้างสําเนา คุณสามารถเลือกตารางเฉพาะหรือ ตารางทั้งหมดได้ โดยการออกแบบ การดําเนินการนี้จะย้าย Schema และข้อมูลในขั้นตอนเดียว การแยก schema โดยไม่มีแถวโดยใช้เงื่อนไข TOP 0 เท็จในคําสั่งคิวรี
ตัวอย่างรหัสต่อไปนี้ครอบคลุมการโยกย้าย schema (DDL) ด้วย Data Factory
ตัวอย่างโค้ด: การย้าย Schema (DDL) ด้วย Data Factory
คุณสามารถใช้ Fabric Pipelines เพื่อย้าย DDL (schema) สําหรับวัตถุในตารางจากแหล่งที่มา Azure SQL Database หรือพูล SQL เฉพาะได้อย่างง่ายดาย ท่อนี้ย้ายสคีมา (DDL) สําหรับตารางพูล SQL เฉพาะแหล่งที่มาไปยัง Fabric คลังข้อมูล
การออกแบบไปป์ไลน์: พารามิเตอร์
ไปป์ไลน์นี้ยอมรับพารามิเตอร์ SchemaNameซึ่งช่วยให้คุณสามารถระบุสคีมาที่จะย้ายได้ เค้าร่าง dbo เป็นค่าเริ่มต้น
ในเขตข้อมูล ค่าเริ่มต้น ให้ใส่รายการแบบคั่นด้วยจุลภาคของ Schema ตารางที่ระบุว่า Schema ใดที่จะโยกย้าย: 'dbo','tpch' เพื่อให้สอง schema dbo และtpch
การออกแบบไปป์ไลน์: กิจกรรมการค้นหา
สร้างกิจกรรมการค้นหา และตั้งค่าการเชื่อมต่อเพื่อชี้ไปยังฐานข้อมูลต้นทางของคุณ
ในแท็บ การตั้งค่า :
ตั้งค่าชนิดที่เก็บข้อมูลเป็นภายนอก
การเชื่อมต่อ คือกลุ่ม SQL เฉพาะของ Azure Synapse ของคุณ ชนิดการเชื่อมต่อคือ Azure Synapse Analytics
ใช้คิวรีถูกตั้งค่าเป็นคิวรี
ฟิลด์ Query จําเป็นต้องถูกสร้างโดยใช้นิพจน์แบบไดนามิก เพื่อให้สามารถใช้พารามิเตอร์
SchemaNameนี้ในคําสั่งที่ส่งคืนรายการตารางต้นทางเป้าหมายได้ เลือก คิวรี จากนั้นเลือก เพิ่มเนื้อหาแบบไดนามิกนิพจน์นี้ภายในกิจกรรม LookUp สร้างคําสั่ง SQL เพื่อคิวรีมุมมองระบบเพื่อเรียกใช้รายการของสคีมาและตาราง มันอ้างอิงพารามิเตอร์เพื่อ
SchemaNameอนุญาตให้กรองในสคีมา SQL ผลลัพธ์ของนี่คืออาร์เรย์ของ SCHEMA SQL และตารางที่จะใช้เป็นข้อมูลป้อนเข้าในกิจกรรม ForEachใช้รหัสต่อไปนี้เพื่อแสดงรายการตารางผู้ใช้ทั้งหมดที่มีชื่อแผนการ
@concat(' SELECT s.name AS SchemaName, t.name AS TableName FROM sys.tables AS t INNER JOIN sys.schemas AS s ON t.type = ''U'' AND s.schema_id = t.schema_id AND s.name in (',coalesce(pipeline().parameters.SchemaName, 'dbo'),') ')
การออกแบบไปป์ไลน์: ForEach Loop
สําหรับ ForEach Loop ให้กําหนดค่าตัวเลือกต่อไปนี้ใน แท็บ การตั้งค่า :
- ปิดใช้งาน ตามลําดับ เพื่ออนุญาตให้มีการวนซ้ําหลายๆ ครั้งเพื่อเรียกใช้พร้อมกัน
- กําหนด จํานวน ชุดงานเป็น
50โดยจํากัดจํานวนสูงสุดของการทําซ้ําที่เกิดขึ้นพร้อมกัน - เขตข้อมูลรายการจําเป็นต้องใช้เนื้อหาแบบไดนามิกเพื่ออ้างอิงผลลัพธ์ของกิจกรรม LookUp ใช้ส่วนย่อยของโค้ดต่อไปนี้:
@activity('Get List of Source Objects').output.value
การออกแบบไปป์ไลน์: คัดลอกกิจกรรมภายใน ForEach Loop
ภายในกิจกรรม ForEach เพิ่มกิจกรรมการคัดลอก เมธอดนี้ใช้ Dynamic Expression Language ภายใน pipeline เพื่อสร้าง และ SELECT TOP 0 * FROM <TABLE> ย้ายเฉพาะสคีมาที่ไม่มีข้อมูลไปยังคลังข้อมูล
ในแท็บ แหล่งข้อมูล :
- ตั้งค่าชนิดที่เก็บข้อมูลเป็นภายนอก
- การเชื่อมต่อ คือกลุ่ม SQL เฉพาะของ Azure Synapse ของคุณ ชนิดการเชื่อมต่อคือ Azure Synapse Analytics
- ตั้งค่า ใช้คิวรี เป็น คิวรี
- ใน เขตข้อมูลคิวรี ให้วางในคิวรีเนื้อหาแบบไดนามิกและใช้นิพจน์นี้ซึ่งจะส่งกลับแถวศูนย์ เฉพาะสคีมาของตาราง:
@concat('SELECT TOP 0 * FROM ',item().SchemaName,'.',item().TableName)
ใน แท็บปลายทาง :
- ตั้งค่าประเภทที่เก็บข้อมูลเป็นพื้นที่ทํางาน
- ประเภทที่เก็บข้อมูล Workspace คือ คลังข้อมูล และ คลังข้อมูล ถูกตั้งค่าเป็น warehouse
- สคีมาและชื่อของตารางปลายทางจะถูกกําหนดโดยใช้เนื้อหาแบบไดนามิก
- Schema หมายถึงฟิลด์
SchemaNameของรอบปัจจุบัน โดยมี snippet:@item().SchemaName - ตารางจะอ้างอิง TableName ด้วยส่วนย่อย:
@item().TableName
- Schema หมายถึงฟิลด์
การออกแบบไปป์ไลน์: จม
สําหรับอ่างล้างหน้า ให้ชี้ไปที่คลังสินค้าของคุณและอ้างอิง Schema ต้นทางและชื่อตาราง
เมื่อคุณเรียกใช้ไปป์ไลน์นี้ คุณจะเห็นคลังข้อมูลของคุณที่เติมด้วยแต่ละตารางในแหล่งข้อมูลของคุณด้วยสคีมาที่เหมาะสม
การโยกย้ายโดยใช้ขั้นตอนที่จัดเก็บไว้ในพูล SQL เฉพาะ Synapse
ตัวเลือกนี้ใช้ขั้นตอนที่จัดเก็บไว้เพื่อดําเนินการ Fabric Migration
คุณสามารถรับตัวอย่างโค้ดได้ที่ microsoft/fabric-migration บน GitHub.com โค้ดนี้ถูกแชร์เป็นโอเพนซอร์ส (Open Source) ดังนั้นอย่าลังเลที่จะมีส่วนร่วมในการทํางานร่วมกันและช่วยเหลือชุมชน
ขั้นตอนการโยกย้ายที่เก็บไว้สามารถทําอะไรได้บ้าง:
- แปลงสคีมา (DDL) เป็นไวยากรณ์ Fabric คลังข้อมูล
- สร้างสคีมา (DDL) บน Fabric คลังข้อมูล
- แยกข้อมูลจากพูล SQL เฉพาะ Synapse ไปยัง ADLS
- ค่าสถานะไวยากรณ์ Fabric ที่ไม่รองรับสําหรับรหัส T-SQL (กระบวนงานที่เก็บไว้ ฟังก์ชัน มุมมอง)
การใช้งานที่แนะนำ
นี่เป็นตัวเลือกที่ยอดเยี่ยมสําหรับผู้ที่:
- คุ้นเคยกับ T-SQL
- ต้องการใช้สภาพแวดล้อมการพัฒนาแบบรวม เช่น SQL Server Management Studio (SSMS)
- ต้องการควบคุมอย่างละเอียดมากขึ้นว่างานใดที่พวกเขาต้องการใช้งาน
คุณสามารถดําเนินการกระบวนงานที่จัดเก็บเฉพาะสําหรับการแปลง Schema (DDL) การแยกข้อมูล หรือการประเมินรหัส T-SQL
สําหรับการย้ายข้อมูล คุณต้องใช้เครื่องมือใดแบบหนึ่งCOPY INTOหรือ Fabric Data Factory เพื่อนําเข้าข้อมูลเข้าสู่คลังข้อมูลของคุณ
โยกย้ายโดยใช้โครงการฐานข้อมูล SQL
Microsoft Fabric คลังข้อมูล ได้รับการสนับสนุนในส่วนขยายโครงการฐานข้อมูล SQL ที่มีอยู่ภายใน Visual Studio Code
ส่วนขยายนี้พร้อมใช้งานภายใน Visual Studio Code คุณลักษณะนี้ช่วยให้สามารถควบคุมแหล่งข้อมูล การทดสอบฐานข้อมูล และการตรวจสอบเค้าร่างได้
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการควบคุมซอร์สโค้ด ดูที่ ภาพรวมการพัฒนาและการปรับใช้
การใช้งานที่แนะนำ
นี่เป็นตัวเลือกที่ยอดเยี่ยมสําหรับผู้ที่ต้องการใช้โครงการฐานข้อมูล SQL สําหรับการปรับใช้ของพวกเขา ตัวเลือกนี้ทําการผสานรวมกระบวนการจัดเก็บ Fabric Migration ในโครงการฐานข้อมูล SQL เพื่อมอบประสบการณ์การโยกย้ายข้อมูลที่ราบรื่น
โครงการฐานข้อมูล SQL สามารถ:
- แปลงสคีมา (DDL) เป็นไวยากรณ์ Fabric คลังข้อมูล
- สร้างสคีมา (DDL) บน Fabric คลังข้อมูล
- แยกข้อมูลจากพูล SQL เฉพาะ Synapse ไปยัง ADLS
- ตั้งค่าสถานะไวยากรณ์ที่ไม่รองรับสําหรับรหัส T-SQL (กระบวนงานที่เก็บไว้ ฟังก์ชัน มุมมอง)
สําหรับการย้ายข้อมูล คุณจะใช้ COPY INTO เครื่องมือ Data Factory เพื่อนําเข้าข้อมูลเข้าสู่คลังข้อมูลของคุณ
ทีมงาน Microsoft Fabric CAT ได้จัดเตรียมชุดสคริปต์ PowerShell เพื่อจัดการการแยก การสร้าง และการปรับใช้สคีมา (DDL) และรหัสฐานข้อมูล (DML) ผ่านโครงการฐานข้อมูล SQL สําหรับการฝึกปฏิบัติของการใช้โครงการฐานข้อมูล SQL ด้วยสคริปต์ PowerShell ที่เป็นประโยชน์ของเรา โปรดดูที่ microsoft/fabric-migration บน GitHub.com
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับโครงการฐานข้อมูล SQL โปรดดู เริ่มต้นใช้งานส่วนขยายโครงการฐานข้อมูล SQL และ สร้างโครงการฐานข้อมูลจากบรรทัดคําสั่ง
การโยกย้ายข้อมูลด้วย CETAS
คําสั่ง T-SQL CREATE EXTERNAL TABLE AS SELECT (CETAS) มีวิธีการที่คุ้มค่าและเหมาะสมที่สุดในการดึงข้อมูลจากพูล SQL เฉพาะ Synapse ไปยัง Azure Data Lake Storage (ADLS) Gen2
CETAS ทําอะไรได้บ้าง:
- แยกข้อมูลลงใน ADLS
- ตัวเลือกนี้กําหนดให้ผู้ใช้สร้างสคีมา (DDL) ในคลังข้อมูลของคุณก่อนนําเข้าข้อมูล พิจารณาตัวเลือกในบทความนี้เพื่อโยกย้าย schema (DDL)
ข้อดีของตัวเลือกนี้คือ:
- ส่งคิวรีเดียวต่อตารางกับกลุ่ม SQL เฉพาะ Synapse ต้นทางเท่านั้น การดําเนินการนี้จะไม่ใช้ช่องสัญญาณพร้อมกันทั้งหมด และจะไม่บล็อก ETL/คิวรีการผลิตของลูกค้าพร้อมกัน
- ไม่จําเป็นต้องปรับขนาดไปยัง DWU6000 เนื่องจากมีการใช้สล็อตพร้อมกันเดียวสําหรับแต่ละตาราง เพื่อให้ลูกค้าสามารถใช้ DWUs ที่ต่ํากว่าได้
- การแยกจะทํางานควบคู่ไปกับโหนดการคํานวณทั้งหมด และนี่คือกุญแจสําคัญในการปรับปรุงประสิทธิภาพการทํางาน
การใช้งานที่แนะนำ
ใช้ CETAS เพื่อแยกข้อมูลไปยังไฟล์ ADLS เป็นไฟล์ Parquet ไฟล์ Parquet ให้ประโยชน์ของพื้นที่จัดเก็บข้อมูลที่มีประสิทธิภาพพร้อมการบีบอัดแบบคอลัมน์ซึ่งจะใช้แบนด์วิดธ์น้อยกว่าเมื่อย้ายผ่านเครือข่าย นอกจากนี้ เนื่องจาก Fabric จัดเก็บข้อมูลเป็นรูปแบบ Delta parquet การนําเข้าข้อมูลจะเร็วขึ้น 2.5 เท่าเมื่อเทียบกับรูปแบบไฟล์ข้อความ เนื่องจากไม่มีการแปลงเป็นค่าใช้จ่ายของรูปแบบ Delta ในระหว่างการนําเข้า
เมื่อต้องการเพิ่มปริมาณงาน CETAS:
- เพิ่มการดําเนินการ CETAS แบบขนาน เพิ่มการใช้ช่องสัญญาณพร้อมกัน แต่ให้ปริมาณงานเพิ่มขึ้น
- ปรับมาตราส่วน DWU บนพูล SQL เฉพาะ Synapse
การโยกย้ายผ่าน dbt
ในส่วนนี้ เราจะกล่าวถึงตัวเลือก dbt สําหรับลูกค้าที่กําลังใช้ dbt ในสภาพแวดล้อมพูล SQL เฉพาะของ Synapse ปัจจุบัน
dbt ทําอะไรได้บ้าง:
- แปลงสคีมา (DDL) เป็นไวยากรณ์ Fabric คลังข้อมูล
- สร้างสคีมา (DDL) บน Fabric คลังข้อมูล
- แปลงรหัสฐานข้อมูล (DML) เป็นไวยากรณ์ Fabric
เฟรมเวิร์ก dbt สร้าง DDL และ DML (สคริปต์ SQL) ในระหว่างเดินทางพร้อมกับการดําเนินการแต่ละครั้ง ด้วยไฟล์แบบจําลองที่แสดงในคําสั่ง SELECT สามารถแปล DDL/DML ได้ทันทีไปยังแพลตฟอร์มเป้าหมายใด ๆ โดยการเปลี่ยนโปรไฟล์ (สายอักขระการเชื่อมต่อ) และประเภทอะแด็ปเตอร์
การใช้งานที่แนะนำ
เฟรมเวิร์ก dbt คือแนวทางแรกสําหรับโค้ด ข้อมูลต้องถูกโยกย้ายโดยใช้ตัวเลือกที่แสดงในเอกสารนี้ เช่น CETAS หรือ COPY/Data Factory
อะแดปเตอร์ dbt สําหรับ Microsoft Fabric คลังข้อมูล ช่วยให้โครงการ dbt ที่มีอยู่ซึ่งมุ่งเป้าไปยังแพลตฟอร์มต่าง ๆ เช่น Synapse dedicated SQL pools, Snowflake, Databricks, Google Big Query หรือ Amazon Redshift สามารถย้ายไปยังคลังสินค้าได้ด้วยการเปลี่ยนแปลงการตั้งค่าง่าย ๆ
หากต้องการเริ่มต้นโครงการ dbt ที่มุ่งเป้าไปที่ Fabric คลังข้อมูล ดูที่ Tutorial: Set up dbt for Fabric คลังข้อมูล เอกสารนี้ยังแสดงรายการตัวเลือกเพื่อย้ายระหว่างคลังสินค้า/แพลตฟอร์มต่างๆ
การนําเข้าข้อมูลเข้าสู่ Fabric คลังข้อมูล
สําหรับการนําเข้าข้อมูลเข้าสู่ Fabric คลังข้อมูล ให้ใช้COPY INTOหรือ Fabric Data Factory ตามความชอบของคุณ ทั้งสองวิธีเป็นตัวเลือกที่แนะนําและมีประสิทธิภาพดีที่สุดเนื่องจากมีปริมาณงานประสิทธิภาพที่เทียบเท่าเนื่องจากข้อกําหนดเบื้องต้นที่ไฟล์ได้รับการแยกออกเป็น Azure Data Lake Storage (ADLS) Gen2 แล้ว
ปัจจัยหลายประการที่ควรทราบเพื่อให้คุณสามารถออกแบบกระบวนการของคุณเพื่อประสิทธิภาพการทํางานสูงสุด:
- กับ Fabric จะไม่มีการแย่งชิงทรัพยากรเมื่อโหลดหลายตารางจาก ADLS ไปยัง Fabric คลังข้อมูล พร้อมกัน ผลที่ได้คือไม่มีประสิทธิภาพการทํางานลดลงเมื่อโหลดเธรดขนาน ปริมาณการนําเข้าข้อมูลสูงสุดจะถูกจํากัดด้วยกําลังการคํานวณของความจุ Fabric ของคุณเท่านั้น
- การจัดการปริมาณงานผ้ามีการแยกทรัพยากรที่จัดสรรสําหรับการโหลดและคิวรี ไม่มีการช่วงระยะของทรัพยากรในขณะที่คิวรีและข้อมูลกําลังโหลดที่ดําเนินการในเวลาเดียวกัน