หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ในบทความนี้ คุณจะได้เรียนรู้วิธีการสร้างแบบจําลองและปรับใช้การขึ้นต่อกันข้ามคลังสินค้าโดยใช้โครงการฐานข้อมูล SQL ใน Visual Studio Code คุณเริ่มต้นจากโครงการคลังสินค้าที่มีอยู่สองโครงการ และกําหนดค่าการขึ้นต่อกันทางเดียวระหว่างโครงการเหล่านั้นโดยใช้การอ้างอิงฐานข้อมูล และสคริปต์ก่อนการปรับใช้และหลังการปรับใช้หากจําเป็น
บทความนี้สร้างขึ้นจากแนวคิดใน พัฒนาโครงการคลังสินค้าใน Visual Studio Code และถือว่าคุณพอใจอยู่แล้วในการสร้างและเผยแพร่โครงการคลังสินค้าเดียว
ข้อกําหนดเบื้องต้น
ก่อนที่คุณจะเริ่ม โปรดตรวจสอบให้แน่ใจว่าคุณ:
- สร้าง คลังสินค้า Fabric สองแห่งใน พื้นที่ทํางานเดียวกัน
- เมื่อต้องการสร้างคลังสินค้าตัวอย่างใหม่ โปรดดู สร้างคลังสินค้าตัวอย่างใน Microsoft Fabric
- สร้างหรือแยก โครงการฐานข้อมูล สําหรับแต่ละคลังสินค้าใน Visual Studio Code
- เมื่อต้องการสร้างโครงการฐานข้อมูลสําหรับคลังสินค้าที่มีอยู่หรือคลังสินค้าใหม่ ให้ดูที่ พัฒนาโครงการคลังสินค้าใน Visual Studio Code
- ติดตั้ง Visual Studio Code บนเวิร์กสเตชันของคุณ
- ติดตั้ง .NET SDK เพื่อสร้างและเผยแพร่โครงการฐานข้อมูล
- ติดตั้งส่วนขยาย Visual Studio Code สองส่วนขยาย: โครงการฐานข้อมูล SQL และ SQL Server (mssql)
- คุณสามารถติดตั้งส่วนขยายที่จําเป็นได้โดยตรงจากภายใน Visual Studio Code marketplace โดยค้นหา "โครงการฐานข้อมูล SQL" หรือ "SQL Server (mssql)"
- โครงการคลังสินค้าตรวจสอบความถูกต้อง สร้าง และสามารถเผยแพร่ใน Visual Studio Code
Note
บทความนี้มุ่งเน้นไปที่ โครงการคลังสินค้า ใน Visual Studio Code และวิธีที่คุณกําหนดรุ่นใน Git เป็นโครงการโค้ดปกติ การรวม Fabric Git สําหรับพื้นที่ทํางานและสินค้าคลังสินค้าจะครอบคลุมแยกต่างหากในการควบคุมแหล่งที่มาด้วยเอกสารการรวม Fabric Data Warehouse และ Git บทความนี้ถือว่า พื้นที่ทํางาน Fabric ของคุณเป็นเป้าหมายการปรับใช้ และ Schema T-SQL อยู่ในโครงการ Visual Studio Code อย่างน้อยหนึ่งโครงการที่คุณควบคุมรุ่นใน Git
บทความนี้ไม่ครอบคลุมถึงการพัฒนาข้ามคลังสินค้าสําหรับจุดสิ้นสุดการวิเคราะห์ SQL ของ Lakehouse ตารางเลคเฮาส์และออบเจ็กต์ปลายทาง SQL ไม่ใช่ออบเจ็กต์ที่ติดตามในการควบคุมแหล่งที่มาในลักษณะเดียวกับโครงการคลังสินค้า ใช้รายการ คลังสินค้า กับโครงการฐานข้อมูลสําหรับการรวม git ที่สมบูรณ์และการสนับสนุนการปรับใช้ในประสบการณ์ดั้งเดิมของ Fabric และเครื่องมือไคลเอ็นต์
สถานการณ์สมมติ: คลังสินค้าข้ามโดเมนของ Zava Analytics
Zava Analytics ใช้โดเมนธุรกิจ 2 โดเมน ดังนี้
- ยอดขาย – ใบสั่งของลูกค้า รายได้ และเมตริกไปป์ไลน์
- การตลาด – แคมเปญ ช่องทาง และเมตริกการมีส่วนร่วม
แต่ละโดเมนมี:
คลังสินค้าผ้าในพื้นที่ทํางานเดียวกัน:
ZavaSalesWarehouseZavaMarketingWarehouse
โครงการฐานข้อมูลใน Visual Studio Code:
Zava.Sales.WarehouseZava.Marketing.Warehouse
ในการสร้าง ELT และการรายงานแบบครบวงจร แต่ละโดเมนต้องมี มุมมองแบบอ่านอย่างเดียว เพื่อเข้าถึงข้อมูลจากอีกโดเมนหนึ่ง
-
Salesต้องการการมีส่วนร่วมทางการตลาดโดยลูกค้า -
Marketingต้องการประสิทธิภาพการขายตามแคมเปญ
คุณจําเป็นต้อง:
- สร้างการ พึ่งพาข้ามคลังสินค้าทางเดียว ผ่านการอ้างอิงฐานข้อมูล
- หลีกเลี่ยงการพึ่งพาแบบวนซ้ํา
- ใช้ สคริปต์ก่อนและหลังการปรับใช้สําหรับ กรณีที่อ็อบเจ็กต์ในคลังสินค้าทั้งสองขึ้นอยู่กับกัน
ตรวจสอบให้แน่ใจว่าการพึ่งพาระหว่างคลังสินค้าเป็นแบบทางเดียว
สําหรับคลังสินค้าแต่ละคู่ ให้เลือก ทิศทางสําหรับการขึ้นต่อกันเชิงตรรกะ:
ตัวอย่าง:
-
Salesขึ้นอยู่กับMarketingข้อมูลการมีส่วนร่วม -
Marketingไม่ขึ้นอยู่กับSalesอ็อบเจ็กต์ใด ๆ ที่จําเป็นในเวลาปรับใช้
ในทางปฏิบัติ:
Zava.Sales.Warehouseมีการอ้างอิงฐานข้อมูลไปยังZava.Marketing.Warehouse
- T-SQL ใน
Salesคลังสินค้าสามารถใช้ชื่อสามส่วนเช่น:SELECT * FROM ZavaMarketingWarehouse.Marketing.CampaignEngagement -
Zava.Marketing.Warehouseไม่อ้างอิงSalesวัตถุที่จะบังคับให้มีวงจรการขึ้นต่อกันในเวลาปรับใช้
เคล็ดลับ
สําหรับคลังสินค้าแต่ละคู่ ให้วาดแผนภาพลูกศรอย่างง่าย (Sales → Marketing) หากคุณพบลูกศรชี้ไปทั้งสองทิศทางสําหรับ วัตถุประเภทเดียวกัน คุณอาจต้องปรับโครงสร้างใหม่หรือย้ายตรรกะบางอย่างไปยังสคริปต์ก่อนและหลังการปรับใช้
หลีกเลี่ยงการพึ่งพาแบบวนซ้ํา
การ ขึ้นต่อกันแบบวนซ้ํา เกิดขึ้นเมื่อคลังสินค้า A และคลังสินค้า B พึ่งพาซึ่งกันและกันในลักษณะที่กลไกจัดการไม่สามารถแก้ไขได้ในการปรับใช้ครั้งเดียว
ตัวอย่างปัญหา (อย่าทําเช่นนี้):
-
ZavaSalesWarehouse.dbo.CustomerRollupทิวทัศน์:CREATE VIEW dbo.CustomerRollup AS SELECT c.CustomerId, c.TotalRevenue, m.LastCampaignId FROM dbo.CustomerRevenue AS c LEFT OUTER JOIN ZavaMarketingWarehouse.dbo.CustomerEngagement AS m ON c.CustomerId = m.CustomerId; -
ZavaMarketingWarehouse.dbo.CampaignAttributionทิวทัศน์:CREATE VIEW dbo.CampaignAttribution AS SELECT m.CampaignId, SUM(s.TotalRevenue) AS RevenueAttributed FROM dbo.Campaigns AS m LEFT OUTER JOIN ZavaSalesWarehouse.dbo.CustomerRollup AS s ON m.CampaignId = s.LastCampaignId GROUP BY m.CampaignId;
ในรูปแบบต่อต้านนี้:
-
CustomerRollupใน ยอดขายขึ้นอยู่กับCustomerEngagementใน Marketing -
CampaignAttributionใน การตลาด ขึ้นอยู่กับCustomerRollupใน การขาย
รูปแบบต่อต้านนี้จะสร้างวงจร: มุมมองการขาย→มุมมองการตลาด→มุมมองการขายอีกครั้ง
การแนะแนว:
อย่าสร้างแบบจําลอง การพึ่งพาซึ่งกันและกัน ระหว่างคลังสินค้าเป็นออบเจ็กต์ระดับ Schema ปกติ หากคุณต้องการตรรกะประเภทนี้จริงๆ ให้ย้าย ด้านหนึ่ง ของการพึ่งพาไปที่:
- สคริปต์หลังการปรับใช้ หรือ
- แบบจําลองหรือรายงานความหมายปลายทางที่รวมคลังสินค้าทั้งสองในเวลาคิวรี
ใช้สคริปต์การปรับใช้ก่อนและหลังการปรับใช้สําหรับตรรกะข้ามคลังสินค้าที่ละเอียดอ่อนในการปรับใช้
เนื่องจากการปรับใช้คลังสินค้าเป็นการดําเนินการ schema diff แบบเต็ม (ไม่ใช่การปรับใช้บางส่วนต่อออบเจ็กต์) ให้ปฏิบัติต่อสินค้าข้ามคลังสินค้าอย่างระมัดระวัง:
หากทั้งคลังสินค้า A และคลังสินค้า B ต้องการออบเจ็กต์ที่ขึ้นอยู่กับกันและกัน:
- เก็บ ตารางหลักและมุมมองหลัก ในแต่ละโครงการคลังสินค้า
- ย้าย มุมมองบริดจ์หรือวัตถุยูทิลิตี้ ที่สร้างวงจรลงใน สคริปต์ก่อนหรือหลังการปรับใช้ใน โครงการเดียว
- ตรวจสอบให้แน่ใจว่าสคริปต์เหล่านั้นมี ศักยภาพและ ปลอดภัยในการเรียกใช้ซ้ํา
ตัวอย่างรูปแบบ:
- สคริปต์ก่อนการปรับใช้: วางมุมมองข้ามคลังสินค้าชั่วคราวก่อนที่จะใช้การเปลี่ยนแปลง Schema ที่จะทําให้เสีย
- สคริปต์หลังการปรับใช้: สร้างใหม่หรืออัปเดตมุมมองข้ามคลังสินค้าหลังจากปรับใช้คลังสินค้าทั้งสองแล้ว
รูปแบบที่ 1: การอ้างอิงข้ามคลังสินค้าโดยตรงผ่านการอ้างอิงฐานข้อมูล
ในรูปแบบนี้ คุณสร้างแบบจําลองการขึ้นต่อกันทางเดียวโดยตรงในโครงการฐานข้อมูลโดยใช้การอ้างอิงฐานข้อมูล
ขั้นตอนที่ 1: เริ่มต้นจากโครงการคลังสินค้าที่มีอยู่สองโครงการ
คุณควรมี:
-
Zava.Sales.Warehouse→ ปรับใช้เพื่อZavaSalesWarehouse -
Zava.Marketing.Warehouse→ ปรับใช้เพื่อZavaMarketingWarehouse
แต่ละโครงการถูกสร้างขึ้นหรือแยกโดยใช้ขั้นตอนใน พัฒนาโครงการคลังสินค้าใน Visual Studio Code
ขั้นตอนที่ 2: เพิ่มการอ้างอิงฐานข้อมูลจาก Sales ไปยัง Marketing
- ใน Visual Studio Code ให้เปิดมุมมอง โครงการฐานข้อมูล
- คลิกขวาที่
Zava.Sales.Warehouseโครงการ - เลือก เพิ่มการอ้างอิงฐานข้อมูล....
- เลือกอย่างใดอย่างหนึ่งต่อไปนี้
- โครงการฐานข้อมูลในพื้นที่ทํางานปัจจุบัน (โครงการฐานข้อมูลที่อ้างอิงด้วยวิธีนี้จะต้องเปิดใน Visual Studio Code ด้วย) หรือ
-
แอปพลิเคชันระดับข้อมูล (.dacpac) (สมมติว่าคุณได้สร้างถ้าคุณมีบิลด์
.dacpacสําหรับMarketingคลังสินค้า)
- ตั้งค่าตัวเลือกการอ้างอิง:
- ประเภทอ้างอิง: เซิร์ฟเวอร์เดียวกัน ฐานข้อมูลต่างกัน
-
ชื่อฐานข้อมูลหรือตัวแปร: ใช้ตัวแปร SQLCMD ตัวอย่างเช่น
[$(MarketingWarehouseName)]
- บันทึกและสร้างโครงการ Sales ใหม่
ใน .sqlproj ไฟล์ คุณควรเห็นรายการที่คล้ายกับ:
<ItemGroup>
<ArtifactReference Include="..\Zava.Marketing.Warehouse\bin\Debug\Zava.Marketing.Warehouse.dacpac">
<DatabaseVariableLiteralValue>$(MarketingWarehouseName)</DatabaseVariableLiteralValue>
</ArtifactReference>
</ItemGroup>
<ItemGroup>
<SqlCmdVariable Include="MarketingWarehouseName">
<DefaultValue>ZavaMarketingWarehouse</DefaultValue>
</SqlCmdVariable>
</ItemGroup>
เคล็ดลับ
การใช้ตัวแปร SQLCMD สําหรับ ชื่อคลังสินค้าระยะไกล ช่วยให้คุณสามารถนําโครงการเดียวกันกลับมาใช้ใหม่ในสภาพแวดล้อมทั้งหมดของคุณ เช่น Dev/Test/Prod ซึ่งชื่อคลังสินค้าอาจแตกต่างกัน
ขั้นตอนที่ 3: สร้างมุมมองข้ามคลังสินค้าใน Sales
ใน Sales โครงการ ให้เพิ่มมุมมองที่อ่านจาก Marketing คลังสินค้า:
-- schema/Views/dbo.CustomerEngagementFact.sql
CREATE VIEW [dbo].[CustomerEngagementFact] AS
SELECT
s.CustomerId,
s.TotalRevenue,
m.LatestChannel,
m.LastEngagementDate
FROM dbo.CustomerRevenue AS s
JOIN [$(MarketingWarehouseName)].[dbo].[CustomerEngagement] AS m
ON s.CustomerId = m.CustomerId;
ประเด็นสําคัญ:
- ชื่อ
[$(MarketingWarehouseName)].[dbo].[CustomerEngagement]สามส่วนตรงกับรูปแบบ T-SQL ที่ใช้สําหรับการสืบค้นข้ามคลังสินค้าในตัวแก้ไข Fabric SQL - DacFx แก้ไขฐานข้อมูลภายนอกผ่านการอ้างอิงฐานข้อมูล
สร้างโครงการเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดอ้างอิง SQL71501 ที่ยังไม่ได้รับการแก้ไข
ขั้นตอนที่ 4: เผยแพร่คลังสินค้าการตลาด จากนั้น การขาย
เพื่อหลีกเลี่ยงปัญหาการปรับใช้:
-
สร้างและเผยแพร่
Zava.Marketing.Warehouseที่หนึ่ง:- คลิกขวาที่โครงการ→สร้าง
- คลิกขวาที่โปรเจ็กต์→เผยแพร่ →เลือก
ZavaMarketingWarehouse
- เมื่อ
Marketingการปรับใช้สําเร็จ ให้ สร้างและเผยแพร่Zava.Sales.Warehouse:- คลิกขวาที่โครงการ→สร้าง
- คลิกขวาที่โปรเจ็กต์→เผยแพร่ →เลือก
ZavaSalesWarehouse
โฟลว์การปรับใช้ที่เป็นผลลัพธ์คือ:
Zava.Marketing.Warehouse (ไม่มีการพึ่งพาภายนอก) → Zava.Sales.Warehouse (ขึ้นอยู่กับ Marketing)
ตอนนี้ คิวรี T-SQL ใดๆ ใน ZavaSalesWarehouse สามารถใช้ dbo.CustomerEngagementFact มุมมอง ซึ่งอ่านภายในจาก Marketing คลังสินค้าโดยใช้ T-SQL ข้ามคลังสินค้า
รูปแบบที่ 2: การขึ้นต่อกันข้ามคลังสินค้าที่จัดการผ่านสคริปต์การปรับใช้ก่อนและหลังการปรับใช้
ในบางสถานการณ์ของ Zava Analytics ทั้งสองโดเมน อาจต้องการออบเจ็กต์รวมที่ขึ้นอยู่กับกันและกัน เช่น:
- ฝ่ายขายต้องการข้อมูลพร็อพเพอร์ตี้ที่ใช้ข้อมูลแคมเปญการตลาดเพื่อให้รายได้จากการขายต่อแคมเปญการตลาด
- ฝ่ายการตลาดต้องการมุมมองที่ใช้ข้อมูลรายได้จากการขายเพื่อเพิ่มประสิทธิภาพของแคมเปญการตลาด
คุณไม่ต้องการให้ออบเจ็กต์ทั้งสองนี้เป็นมุมมองปกติที่มีส่วนร่วมในการปรับใช้แบบจําลองแบบเต็ม เนื่องจากนั่นเสี่ยงต่อการขึ้นต่อกันแบบวนซ้ําหรือการสั่งซื้อการปรับใช้ที่เปราะบาง
แต่คุณ:
- รักษา โมเดลหลักของ คลังสินค้าแต่ละแห่งให้เป็นอิสระ
- ใช้ สคริปต์หลังการปรับใช้ใน โครงการเดียวเพื่อสร้างมุมมองข้ามคลังสินค้าเพิ่มเติมหลังจากมีสคีมาทั้งสองแล้ว
ขั้นตอนที่ 1: เพิ่มการอ้างอิงฐานข้อมูลสําหรับการตรวจสอบความถูกต้องของเวลาคอมไพล์
ตั้งค่าการอ้างอิงที่คล้ายกับรูปแบบ 1 แต่สําหรับ ทั้งสอง โปรเจ็กต์:
- ใน
Zava.Sales.Warehouseเพิ่มการอ้างอิงไปยัง การตลาดผ่าน[$(MarketingWarehouseName)] - ใน
Zava.Marketing.Warehouseเลือกเพิ่มการอ้างอิงไปยัง Sales ผ่านทาง[$(SalesWarehouseName)]ถ้าคุณต้องการตรวจสอบความถูกต้องของมุมมองข้ามคลังสินค้าที่ใช้ในสคริปต์ในเวลาคอมไพล์
ใน .sqlproj ไฟล์ คุณอาจตั้งค่า:
<SqlCmdVariable Include="SalesWarehouseName">
<DefaultValue>ZavaSalesWarehouse</DefaultValue>
</SqlCmdVariable>
ขั้นตอนที่ 2: สร้างออบเจ็กต์หลักเป็นออบเจ็กต์โปรเจ็กต์ปกติ
ตัวอย่าง:
Salesโครงการ:- ตาราง
dbo.CustomerRevenue -
dbo.SalesByCampaignมุมมอง (ใช้เฉพาะตารางภายในเครื่อง)
- ตาราง
Marketingโครงการ:- ตาราง
dbo.Campaigns -
dbo.CampaignStatsมุมมอง (ใช้เฉพาะตารางภายในเครื่อง)
- ตาราง
ออบเจ็กต์เหล่านี้ไม่ใช้คิวรีข้ามคลังสินค้า ในขั้นตอนต่อไป เราจะแนะนําการอ้างอิงข้ามคลังสินค้า
ขั้นตอนที่ 3: เพิ่มสคริปต์หลังการปรับใช้สําหรับมุมมองบริดจ์ข้ามคลังสินค้า
เลือกคลังสินค้า หนึ่งคลัง เพื่อโฮสต์วัตถุบริดจ์ โดยทั่วไปโดเมนที่ใช้เอาต์พุตรวมกันมากที่สุด สมมติ Sales ว่าเป็นโดเมนนั้น
- ในโปรเจ็ก
Salesต์: คลิกขวาที่โปรเจ็กต์ จากนั้นเพิ่มสคริปต์หลังการปรับใช้→ - ตั้งชื่อสคริปต์
PostDeployment_CrossWarehouse.sql - ในสคริปต์ ให้สร้างหรือแก้ไขมุมมองข้ามคลังสินค้าโดยใช้
IF EXISTS/ /DROPCREATEรูปแบบเพื่อให้เหมือนกัน
ตัวอย่างของสคริปต์ที่จะ Sales อ้างอิง Marketing ออบเจ็กต์คลังสินค้า:
-- PostDeployment_CrossWarehouse.sql
-- Ensure object can be recreated safely
IF OBJECT_ID('dbo.CampaignRevenueBridge', 'V') IS NOT NULL
DROP VIEW [dbo].[CampaignRevenueBridge];
GO
CREATE VIEW [dbo].[CampaignRevenueBridge] AS
SELECT
c.CampaignId,
c.CampaignName,
m.Channel,
SUM(s.TotalRevenue) AS Revenue
FROM [$(MarketingWarehouseName)].[dbo].[Campaigns] AS c
JOIN [$(MarketingWarehouseName)].[dbo].[CampaignEngagement] AS m
ON c.CampaignId = m.CampaignId
JOIN dbo.SalesByCampaign AS s
ON s.CampaignId = c.CampaignId
GROUP BY
c.CampaignId,
c.CampaignName,
m.Channel;
GO
ที่นี่:
- โครงการหลัก
SalesและMarketingคลังสินค้ายังคงเป็นอิสระและสามารถปรับใช้ได้ด้วยตัวเอง - มุมมองบริดจ์ถูกสร้างขึ้นหลังจากการปรับใช้ Schema ผ่านสคริปต์หลังการปรับใช้
- หากการปรับใช้ทํางานหลายครั้ง จะเป็น idempotent เนื่องจากสคริปต์จะดรอปและสร้างมุมมองใหม่อย่างปลอดภัย
ขั้นตอนที่ 4: (ไม่บังคับ) ใช้สคริปต์ก่อนการปรับใช้เพื่อป้องกันการพึ่งพาที่เปราะบาง
ในสถานการณ์ขั้นสูง คุณอาจ:
- ใช้ สคริปต์การปรับใช้ล่วงหน้า เพื่อวางหรือปิดใช้งานมุมมองข้ามคลังสินค้าที่อาจบล็อกการเปลี่ยนแปลง Schema (ตัวอย่างเช่น หากคุณกําลังเปลี่ยนชื่อคอลัมน์)
- ให้ DacFx ใช้ความแตกต่างของสคีมา
- ใช้ สคริปต์หลังการปรับใช้เพื่อ สร้างใหม่หรืออัปเดตมุมมองข้ามคลังสินค้า
สําคัญ
สคริปต์ก่อนและหลังการปรับใช้จะทํางานเป็นส่วนหนึ่งของแผนการปรับใช้ และต้อง:
- idempotent หมายความว่าปลอดภัยที่จะวิ่งได้หลายครั้ง
- เข้ากันได้กับ สคีมาขั้นสุดท้าย ที่ผลิตโดย DacFx
- ปราศจากการเปลี่ยนแปลงที่ทําลายล้างซึ่งขัดแย้งกับนโยบายของคุณ
BlockOnPossibleDataLoss
ขั้นตอนที่ 5: เผยแพร่ใบสั่งสําหรับการขึ้นต่อกันที่จัดการโดยสคริปต์
รูปแบบทั่วไปสําหรับ Zava Analytics:
- เผยแพร่โปรเจ็กต์พื้นฐาน:
-
Zava.Marketing.Warehouse(สคีมาหลัก) -
Zava.Sales.Warehouse(สคีมาหลัก + สคริปต์หลังการปรับใช้ข้ามคลังสินค้า)
-
- ให้สคริปต์หลังการปรับใช้ การขาย สร้างมุมมองบริดจ์ หลังจาก ปรับใช้ Schema ของตัวเองและ Schema ที่
Marketingอ้างอิง
หากคุณแนะนําคลังสินค้ามากกว่าสองแห่ง ให้ทําซ้ํารูปแบบนี้เป็นชั้นๆ อย่าสร้างการพึ่งพาแบบวัฏจักรผ่านออบเจ็กต์โครงการธรรมดา
เรียนรู้ต่อ
- รวมรูปแบบเหล่านี้กับ การควบคุมแหล่งที่มาและคําแนะนํา CI/CD ใน การควบคุมแหล่งที่มาด้วยเอกสารการรวม Fabric Data Warehouse และ Fabric git
- ขยายสถานการณ์ Zava Analytics เพื่อรวมสภาพแวดล้อม Dev/Test/Prod โดยใช้ไปป์ไลน์การปรับใช้หรือ CI/CD ภายนอกเพื่อประสานคําสั่งเผยแพร่ในคลังสินค้าหลายแห่ง