พัฒนาโครงการคลังสินค้าใน Visual Studio Code

นําไปใช้กับ: < / c0 >< c1 / >คลังสินค้าใน Microsoft Fabric

เรียนรู้วิธีตั้งค่าโครงการฐานข้อมูลสําหรับ Fabric คลังข้อมูล ใน Visual Studio Code คุณสร้างโปรเจกต์ใหม่ กําหนดอ็อบเจ็กต์สคีมา สร้างและตรวจสอบโปรเจกต์ และเผยแพร่ไปยังคลังข้อมูลของคุณ

สําคัญ

คุณลักษณะนี้อยู่ในตัวอย่าง

ข้อกําหนดเบื้องต้น

ก่อนที่คุณจะเริ่ม โปรดตรวจสอบให้แน่ใจว่าคุณ:

  • มีสิทธิ์เข้าถึงสินค้าคลังสินค้าที่มีอยู่ภายในพื้นที่ทํางาน Fabric ที่มีสิทธิ์ ผู้สนับสนุน หรือสูงกว่า
  • ติดตั้ง Visual Studio Code บนเวิร์กสเตชันของคุณ
  • ติดตั้ง SDK .NET เพื่อสร้างและเผยแพร่โครงการฐานข้อมูล
  • ติดตั้งส่วนขยาย Visual Studio Code สองรายการ: SQL Database Projects และ SQL Server (mssql)
    • คุณสามารถติดตั้งส่วนขยายที่จําเป็นได้โดยตรงจากภายใน Visual Studio Code marketplace โดยค้นหา "โครงการฐานข้อมูล SQL" หรือ "SQL Server (mssql)"

สร้างโครงการฐานข้อมูลใหม่

คุณสามารถสร้างโปรเจกต์ฐานข้อมูลใหม่ตั้งแต่ต้นหรือจากคลังสินค้าที่มีอยู่

ตัวเลือกที่ 1: สร้างโครงการฐานข้อมูลใหม่จากจานคําสั่งใน Visual Studio Code

  1. เปิด Visual Studio Code

  2. เปิด จานคําสั่ง (Ctrl+Shift+P หรือ Cmd+Shift+P บน Mac)

  3. ค้นหาโครงการฐานข้อมูล: ใหม่

  4. เลือก ชนิดโครงการฐานข้อมูล เป็น SQL Server ฐานข้อมูล

  5. เลือกชื่อโปรเจ็กต์และเลือกตําแหน่งโฟลเดอร์ในเครื่อง

  6. เลือก Synapse คลังข้อมูล ใน Microsoft Fabric เป็นแพลตฟอร์มเป้าหมาย

  7. เมื่อได้รับแจ้ง ให้เลือก ใช่ (แนะนํา) สําหรับโปรเจ็กต์สไตล์ SDK

    สําคัญ

    รองรับเฉพาะโปรเจ็กต์ SDK-style สําหรับ Fabric คลังข้อมูล

  8. เลือก ใช่ สําหรับคําถาม คุณต้องการกําหนดค่าการสร้างโครงการ SQL เป็นการกําหนดค่าบิลด์เริ่มต้นสําหรับโฟลเดอร์นี้หรือไม่

  9. เลือก ใช่ เพื่อเชื่อถือผู้เขียนไฟล์ในโฟลเดอร์นี้

ตัวเลือกที่ 2: สร้างโครงการฐานข้อมูลใหม่จากส่วนขยายโครงการฐานข้อมูล

  1. ใน Visual Studio Code ให้เลือกไอคอนส่วนขยาย Database Projects จาก Activity Bar

  2. ในบานหน้าต่าง โครงการฐานข้อมูล ให้เลือก สร้างใหม่

    ภาพหน้าจอจาก Visual Studio Code ที่แสดงบานหน้าต่างส่วนขยายโครงการฐานข้อมูลและปุ่มสร้างใหม่

  3. เลือก ชนิดโครงการฐานข้อมูล เป็น SQL Server ฐานข้อมูล

  4. เลือกชื่อโปรเจ็กต์และเลือกตําแหน่งโฟลเดอร์ในเครื่อง

  5. เลือก Synapse คลังข้อมูล ใน Microsoft Fabric เป็นแพลตฟอร์มเป้าหมาย

  6. เมื่อได้รับแจ้ง ให้เลือก ใช่ (แนะนํา) สําหรับโปรเจ็กต์สไตล์ SDK รองรับเฉพาะโปรเจ็กต์ SDK-style สําหรับ Fabric คลังข้อมูล

  7. เลือก ใช่ สําหรับคําถาม คุณต้องการกําหนดค่าการสร้างโครงการ SQL เป็นการกําหนดค่าบิลด์เริ่มต้นสําหรับโฟลเดอร์นี้หรือไม่

  8. เลือก ใช่ เพื่อเชื่อถือผู้เขียนไฟล์ในโฟลเดอร์นี้

ตัวเลือกที่ 3: สร้างโครงการฐานข้อมูลจากคลังสินค้าที่มีอยู่

  1. ขั้นแรก ให้สร้างโพรไฟล์การเชื่อมต่อใหม่สําหรับคลังสินค้าของคุณใน Visual Studio Code

    1. เลือกส่วนขยาย SQL Server ใน Visual Studio Code จาก Activity Bar
    2. ระบุชื่อโปรไฟล์ เลือกพารามิเตอร์
    3. กรอกชื่อเซิร์ฟเวอร์ ในพอร์ทัล Fabric ในการตั้งค่าของคลังข้อมูลของคุณ ให้เลือก SQL สายอักขระการเชื่อมต่อ แล้วคัดลอก string ที่ให้มา สตริงนี้คือชื่อเซิร์ฟเวอร์ของคลังข้อมูลของคุณ และแตกต่างจากปลายทาง SQL analytics ดูเหมือนว่า <server unique ID>.datawarehouse.fabric.microsoft.com.
    4. สําหรับ ประเภทการรับรองความถูกต้อง ให้ใช้ Microsoft Entra ID - Universal with MFA support รับรองความถูกต้องด้วย Microsoft Entra ID ของคุณ
    5. ระบุข้อมูลอื่น ๆ เป็นค่าเริ่มต้นหรือต้องการ แล้วเลือก เชื่อมต่อ
  2. ใน Visual Studio Code ให้เลือกไอคอนส่วนขยาย Database Projects จากแถบกิจกรรม

  3. เลือกปุ่ม...ตัวเลือกจากบานหน้าต่างโครงการฐานข้อมูล แล้วเลือกตัวเลือกสร้างโครงการจากฐานข้อมูล

    ภาพหน้าจอจาก Visual Studio Code แสดงไฟล์ สร้างโครงการจากฐานข้อมูล ตัวเลือก

  4. เลือกคลังสินค้าของคุณจากโปรไฟล์การเชื่อมต่อที่มีอยู่

  5. ป้อนชื่อโครงการและเลือกโฟลเดอร์โครงการบนเวิร์กสเตชันของคุณ

  6. สําหรับโครงสร้างโฟลเดอร์ ให้เลือก Schema / ประเภทวัตถุ (แนะนํา)

  7. สําหรับ รวมสิทธิ์ในโปรเจ็กต์ ให้เลือก ไม่ (ค่าเริ่มต้น)

  8. สําหรับโปรเจ็กต์สไตล์ SDK ให้เลือก ใช่ (แนะนํา)

  9. เลือก ใช่ สําหรับคําถาม คุณต้องการกําหนดค่าการสร้างโครงการ SQL เป็นการกําหนดค่าบิลด์เริ่มต้นสําหรับโฟลเดอร์นี้หรือไม่

  10. Visual Studio Code แยกไฟล์โครงการจากโครงการคลังสินค้า

    ภาพหน้าจอจาก Visual Studio Code ที่แสดงการแจ้งเตือนความคืบหน้าของไฟล์โปรเจ็กต์การแยกข้อมูล

  11. เมื่อแตกไฟล์สําเร็จ คุณจะเห็นการแจ้งเตือนดังนี้: "แตกไฟล์โปรเจกต์: สําเร็จแล้ว เสร็จสมบูรณ์".

  12. เลือก ใช่ เพื่อเชื่อถือผู้เขียนไฟล์ในโฟลเดอร์นี้

โครงการฐานข้อมูลใหม่สําหรับคลังสินค้าของคุณ

โครงการฐานข้อมูลใหม่สําหรับคลังสินค้าของคุณจะแสดงในเมนูโครงการฐานข้อมูล SQL

ภาพหน้าจอจาก Visual Studio Code แสดงโครงการฐานข้อมูลใหม่สําหรับ AdventureWorksDW2022.

โครงสร้างโครงการของคุณมีลักษณะดังนี้:

 | Project Name
 ├── Database References
 ├── SQLCMD Variables
 ├── .vscode/
 └── schema/
     ├── Functions
     ├── Tables
     └── Views

กําหนดค่าโครงการฐานข้อมูล

  1. คลิกขวาที่โครงการแล้วเลือกแก้ไขไฟล์ .sqlproj

    สกรีนช็อตจาก Visual Studio Code และเมนูบริบทของโครงการฐานข้อมูล ตัวเลือกแก้ไขไฟล์ sqlproj ถูกไฮไลต์

  2. ตรวจสอบว่าไฟล์มีเวอร์ชันล่าสุดของ Microsoft Build.SQL SDK ตัวอย่างเช่น เปลี่ยนเวอร์ชันสําหรับ Microsoft.Build.Sql เป็น 2.3.0 ใน .sqlproj ไฟล์

       <Sdk Name="Microsoft.Build.Sql" Version="2.3.0" />
    
  3. ตรวจสอบ Microsoft.SqlServer.Dacpacs.FabricDw รุ่นล่าสุด และเพิ่มการอ้างอิงภายในโหนด Project/ItemGroup XML เช่น:

       <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.4">
           <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
           <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
       </PackageReference>
    

    สําคัญ

    หากคุณเพิ่มการอ้างอิงแพ็กเกจโดยไม่มีDatabaseVariableLiteralValueเมตาดาต้า การสร้างโปรเจกต์จะสําเร็จ แต่sqlpackageการดําเนินการ Publish และ Script อาจล้มเหลวทันทีที่โค้ดของคุณอ้างอิงวัตถุในsysสคีมา เช่นsys.views ในกรณีนั้น คุณจะเห็นข้อผิดพลาดเช่นนี้:

    Error SQL72033: This deployment may encounter errors during execution because [<schema>].[<procedure>] depends on [sys].[views].[schema_id] and [sys].[views].[schema_id] does not exist in the target database.

    นี่คือลักษณะของโครงการฐานข้อมูลสําหรับคลังสินค้าของคุณหลังจากการอัปเดต

     <?xml version="1.0" encoding="utf-8"?>
     <Project DefaultTargets="Build">
       <Sdk Name="Microsoft.Build.Sql" Version="2.3.0" />
       <PropertyGroup>
         <Name>DatabaseProject715wh</Name>
         <ProjectGuid>{2E278BCC-F118-4DDB-9255-94697F2930B4}</ProjectGuid>
         <DSP>Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider</DSP>
         <ModelCollation>1033, CI</ModelCollation>
       </PropertyGroup>
       <ItemGroup>
         <None Include=".vscode\tasks.json" />
         <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.4">
           <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
           <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
         </PackageReference>
       </ItemGroup>
       <Target Name="BeforeBuild">
         <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
       </Target>
     </Project>
    
  4. บันทึกไฟล์ของคุณ.sqlproj ในพร้อมท์ให้โหลดโครงการฐานข้อมูลของคุณใหม่ ให้เลือก ใช่

สําคัญ

ทีม Fabric คลังข้อมูล มักจะเผยแพร่แพ็คเกจ NuGet เวอร์ชันใหม่บ่อยครั้ง เนื่องจากค่าเวอร์ชันเริ่มต้นใน.sqlprojไฟล์อาจเปลี่ยนแปลงได้ตามเวลา ให้อัปเดตในโปรเจกต์ท้องถิ่นของคุณเพื่อให้สอดคล้องกับเวอร์ชันล่าสุดที่มีจาก NuGet for MicrosoftSqlServer.Dacpacs.FabricDw.

เพิ่มหรือปรับปรุงวัตถุฐานข้อมูล

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

ภายใต้โฟลเดอร์สําหรับสคีมา เช่น dboเพิ่มหรือลบ หรือทําการเปลี่ยนแปลงข้อกําหนด T-SQL ของออบเจ็กต์ในคลังสินค้าของคุณ เมื่อต้องการแก้ไขวัตถุที่มีอยู่ ให้เปิด .sql แฟ้มที่เกี่ยวข้องและปรับปรุงข้อกําหนดตามต้องการ

เมื่อคุณสร้างโปรเจ็กต์ ออบเจ็กต์ใหม่และที่อัปเดตทั้งหมดจะได้รับการตรวจสอบและรวมอยู่ในไฟล์ dacpac ที่สร้างขึ้นใน {project folder location}/bin/debug/{project name}.dacpac ไฟล์

การเปลี่ยนแปลงที่ทําในที่นี้เป็นเพียงโครงการฐานข้อมูลเท่านั้น และจะไม่แสดงใน Microsoft Fabric จนกว่าคุณจะ Build และ Publish โครงการของคุณ

สร้างและตรวจสอบความถูกต้องของโครงการ

  1. เปิดโปรเจกต์ฐานข้อมูลหากยังไม่ได้เปิดอยู่

  2. คลิกขวาที่โปรเจกต์แล้วเลือก สร้าง เพื่อสร้างโปรเจกต์ฐานข้อมูล

    ภาพหน้าจอจาก Visual Studio Code แสดงตัวเลือกในการสร้างโครงการฐานข้อมูล

  3. การสร้างควรจะประสบความสําเร็จ แก้ไขข้อผิดพลาดใด ๆ ตามข้อความที่แสดงในผลลัพธ์ของเหตุการณ์การสร้าง

Note

ปัจจุบัน เทอร์มินัลเริ่มต้นของ Visual Studio Code ของคุณต้องเป็น PowerShell เพื่อให้กระบวนการสร้างในส่วนขยาย Database Projects สําเร็จ ในแผงคําสั่ง ให้เลือก Terminal: เลือกโปรไฟล์เริ่มต้น แล้วเลือก PowerShell

เผยแพร่ไปยัง Fabric คลังข้อมูล

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

  1. คลิกขวาที่โปรเจ็กต์แล้วเลือกเผยแพร่

  2. เลือก เผยแพร่ไปยังเซิร์ฟเวอร์ SQL ที่มีอยู่

  3. สําหรับ เลือกโปรไฟล์การเผยแพร่ที่จะโหลด ในครั้งแรกที่คุณเผยแพร่ ให้เลือก อย่าใช้โปรไฟล์

    • บันทึกตัวเลือกสําหรับการเผยแพร่คลังสินค้าของคุณลงในโปรไฟล์การเผยแพร่ การแจ้งเตือน Visual Studio Code จะให้คุณเลือกบันทึกตัวเลือกการเผยแพร่ที่คุณใช้ไว้ในไฟล์โปรไฟล์การเผยแพร่
    • นําโปรไฟล์การเผยแพร่กลับมาใช้ใหม่ในอนาคตเมื่อคุณเผยแพร่โครงการไปยังคลังสินค้าของคุณ คุณอาจมีตัวเลือกโปรไฟล์ที่แตกต่างกันสําหรับคลังสินค้าที่แตกต่างกัน หรือสําหรับสภาพแวดล้อมที่แตกต่างกันในสภาพแวดล้อมการพัฒนาการพัฒนา/การทดสอบ/การยอมรับ/การผลิตของคุณ
  4. เลือกโปรไฟล์การเชื่อมต่อ Fabric คลังข้อมูล จากรายการ

  5. เลือกชื่อคลังสินค้าเป้าหมาย

  6. ในตัวเลือก เลือกการดําเนินการ คุณสามารถสร้าง สคริปต์ เพื่อตรวจสอบสคริปต์ก่อนเผยแพร่ หรือเผยแพร่โครงการไปยังคลังสินค้า - ครั้งแรกที่คุณต้องการปรับใช้การเปลี่ยนแปลง ให้ สร้างสคริปต์ อย่างละเอียดและตรวจสอบ T-SQL ที่ได้เพื่อนําไปใช้กับคลังข้อมูลเป้าหมาย การสร้างสคริปต์จะไม่เปลี่ยนแปลงคลังสินค้าเป้าหมาย

    • หากคุณเลือก เผยแพร่ กระบวนการจะเขียนการเปลี่ยนแปลงไปยังคลังข้อมูลเป้าหมายของคุณ

    ภาพหน้าจอจาก Visual Studio Code แสดงการแจ้งเตือนการปรับใช้ dacpac: อยู่ระหว่างดําเนินการ

  7. ในการแจ้งเตือน คุณต้องการบันทึกการตั้งค่าในโปรไฟล์ (.publish.xml) หรือไม่ ให้เลือก ใช่ และบันทึกตัวเลือกโปรไฟล์การเผยแพร่ของคุณสําหรับครั้งต่อไปที่คุณต้องการเผยแพร่

การตั้งค่าการปรับใช้ที่สําคัญสําหรับโครงการคลังสินค้า

เมื่อคุณปรับใช้โครงการฐานข้อมูลไปยัง Fabric คลังข้อมูล การตั้งค่าหลายอย่างจะควบคุมการเปลี่ยนแปลงสคีมาและอาจส่งผลต่อความปลอดภัยของข้อมูล ใช้ด้วยความระมัดระวัง

  • BlockOnPossibleDataLoss

    • หน้าที่: ป้องกันการปรับใช้หากมีความเสี่ยงที่ข้อมูลจะสูญหาย (ตัวอย่างเช่น การทิ้งคอลัมน์หรือตารางที่มีข้อมูล)
    • การแนะนํา: ตั้งค่าเป็น True ในการผลิตเสมอเพื่อปกป้องข้อมูลสําคัญ
    • ความระมัดระวัง: การตั้งค่าให้ False อนุญาตให้ปรับใช้ได้แม้ว่าข้อมูลจะสูญหายก็ตาม ใช้เฉพาะในสภาพแวดล้อมที่มีการควบคุม (เช่น ample, dev/test)
  • DropObjectsNotInSource

    • หน้าที่: วางวัตถุในฐานข้อมูลเป้าหมายที่ไม่มีอยู่ในแหล่งที่มาของโครงการ
    • การแนะนํา: ใช้ในสภาพแวดล้อมการพัฒนา/ทดสอบเพื่อล้างวัตถุที่เหลือ
    • ความระมัดระวัง: การใช้ DropObjectsNotInSource ในการผลิตสามารถ ลบวัตถุและข้อมูลที่สําคัญได้ ตรวจสอบอีกครั้งก่อนเปิดใช้งาน
  • PreDeploy สําหรับ สคริปต์ก่อนการปรับใช้

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

Tip

เมื่อกระบวนการปรับใช้หรือคําสั่งค้นหาเป็น idempotent คุณสามารถรันคําสั่งนั้นหลายครั้งโดยไม่ก่อให้เกิดปัญหาทางตรรกะหรือความล้มเหลว คําสั่ง idempotent ยังถูกเขียนในลักษณะที่สามารถนําไปใช้กับฐานข้อมูลหลายแห่งได้โดยไม่ต้องกําหนดสถานะล่วงหน้า

  • PostDeploy สําหรับ สคริปต์หลังการปรับใช้

    • หน้าที่: เรียกใช้สคริปต์ SQL แบบกําหนดเองหลังจากการปรับใช้ Schema
    • การใช้งานทั่วไป:
      • การค้นหาเมล็ดพันธุ์หรือข้อมูลอ้างอิง
      • เปิดใช้งานข้อจํากัดหรือทริกเกอร์อีกครั้ง
      • บันทึกประวัติการปรับใช้
    • ข้อควรระวัง: หลีกเลี่ยงการทํางานหนักบนโต๊ะขนาดใหญ่ในกระบวนการผลิต ตรวจสอบให้แน่ใจว่าสคริปต์สามารถรันได้หลายครั้งอย่างปลอดภัยหากจําเป็น

สําคัญ

ตรวจสอบสคริปต์และการตั้งค่าการปรับใช้ก่อนเผยแพร่เสมอ ทดสอบในสภาพแวดล้อมการพัฒนาหรือทดสอบก่อนเพื่อป้องกันการสูญหายของข้อมูลโดยไม่ได้ตั้งใจ สําหรับข้อมูลเพิ่มเติมและตัวอย่าง โปรดดู สคริปต์ก่อนการปรับใช้และหลังการปรับใช้สําหรับ Fabric คลังข้อมูล

ยืนยันการเผยแพร่

เชื่อมต่อกับคลังสินค้าและวัตถุสคริปต์ที่มีการเปลี่ยนแปลง หรือตรวจสอบโดยการรันวัตถุในแคตตาล็อกระบบ