Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tässä artikkelissa opit, miten mallintaa ja ottaa käyttöön varastoriippuvuuksia SQL-tietokantaprojekteilla Visual Studio Code -ohjelmassa. Aloitat kahdesta olemassa olevasta varastoprojektista ja konfiguroit yksisuuntaiset riippuvuudet niiden välillä käyttämällä tietokantaviitteitä.
Tämä artikkeli rakentaa Develop varastoprojektit Visual Studio Code konsepteille ja olettaa, että olet jo valmis rakentamaan ja julkaisemaan yhden varastoprojektin.
Ennakkovaatimukset
Ennen kuin aloitat, varmista, että:
- Luo kaksi kangasvarastoa samaan työtilaan.
- Uuden näytevaraston luomiseksi katso Luo näytevarasto Microsoft Fabric.
- Luo tai poimi tietokantaprojekti jokaiselle varastolle Visual Studio Code.
- Luodaksesi tietokantaprojektin nykyiselle varastollesi tai uudelle varastolle, katso Kehitä varastoprojektit Visual Studio Code.
- Asenna Visual Studio Code työasemallesi.
- Asenna .NET SDK rakentaaksesi ja julkaisaksesi tietokantaprojekteja.
- Asenna kaksi Visual Studio Code-laajennusta: SQL Database Projects ja SQL Server (mssql).
- Voit asentaa tarvittavat laajennukset suoraan Visual Studio Code -markkinapaikalta hakemalla "SQL Database Projects" tai "SQL Server (mssql)".
- Varastoprojektit validoivat, rakentavat ja voidaan julkaista Visual Studio Code-muodossa.
Note
Tämä artikkeli keskittyy varastoprojekteihin vuonna Visual Studio Code ja siihen, miten ne versiotaan Gitissä tavallisina koodiprojekteina. Fabric Git -integraatio työtiloille ja varasto-esineille käsitellään erikseen Development and Deployment- ja Git-integraatioissa. Artikkeli olettaa, että Fabric-työtilasi on käyttöönoton kohde ja T-SQL-skeema sijaitsee yhdessä tai useammassa Visual Studio Code -projektissa, joita versiota ohjaat Gitissä.
Tämä artikkeli ei käsitteleLakehousen SQL-analytiikan päätepisteen cross-warehouse-kehitystä. Lakehouse-taulukoita ja SQL-analytiikan päätepiste-objekteja ei seurata versiossa samalla tavalla kuin varastoprojekteja. Käytä Warehouse-elementtejä tietokantaprojektien kanssa täydelliseen git-integraatioon ja käyttöönottotukeen Fabricin natiivikokemuksissa ja asiakastyökaluissa.
Skenaario: Zava Analyticsin monitoimivarastot
Zava Analytics käyttää kahta liiketoiminta-aluetta:
- Myynti – asiakastilaukset, liikevaihto ja putkistomittarit.
- Markkinointi – kampanjat, kanavat ja sitoutumismittarit.
Jokaisella alueella on:
Kangasvarasto samassa työtilassa:
ZavaSalesWarehouseZavaMarketingWarehouse
tietokantaprojekti vuonna Visual Studio Code:
Zava.Sales.WarehouseZava.Marketing.Warehouse
Päästä päähän -ELT:n ja raportoinnin rakentamiseksi jokainen toimialue tarvitsee vain luku -näkymiä päästäkseen käsiksi toisen domainin tietoihin:
-
Salesvaatii asiakaskohtaista markkinointivuorovaikutusta. -
MarketingTarvitsee myyntituloksia kampanjan mukaan.
Sinun täytyy tehdä seuraavat asiat:
- Määritä yksisuuntaiset ristivarastoriippuvuudet tietokantaviitteiden avulla.
- Vältä syklisiä riippuvuuksia.
Varmista, että varastojen väliset riippuvuudet ovat yksisuuntaisia
Jokaiselle varastoparille valitse suunta loogiselle riippuvuudelle:
Esimerkki:
-
SalesRiippuuMarketingsitoutumisdatasta. -
Marketingei riipuSalesmistään käyttöönoton aikana tarvittavista objekteista.
Käytännössä:
Zava.Sales.Warehouseon tietokantaviittaus .Zava.Marketing.Warehouse
- T-SQL varastossa
Salesvoi käyttää kolmiosaisia nimiä, kuten:SELECT * FROM ZavaMarketingWarehouse.Marketing.CampaignEngagement -
Zava.Marketing.Warehouseei viittaaSalesobjekteihin, jotka pakottaisivat riippuvuussyklin käyttöönoton aikana.
Vihje
Jokaiselle varastoparille piirretään yksinkertainen nuolikaavio (Sales → Marketing). Jos löydät nuolia, jotka osoittavat molempiin suuntiin saman tyyppisessä objektissa, refaktoroi suunnittelu palauttaaksesi yksisuuntaisen riippuvuuden.
Vältä syklisiä riippuvuuksia
Syklinen riippuvuus syntyy, kun varasto A ja varasto B ovat molemmat riippuvaisia toisistaan tavalla, jota moottori ei pysty ratkaisemaan yhdellä käyttöönotolla.
Ongelmaesimerkki (älä tee tätä):
-
ZavaSalesWarehouse.dbo.CustomerRollupnäkymä: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.CampaignAttributionnäkymä: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;
Tässä anti-kuviossa:
-
CustomerRollupMyynnissä riippuuCustomerEngagementmarkkinoinnista. -
CampaignAttributionMarkkinoinnissa riippuuCustomerRollupmyynnistä.
Tämä anti-kuvio luo syklin: Myyntinäkymä → Markkinointinäkymä → Myyntinäkymä uudelleen.
Ohjaus:
Älä mallintaa varastojen välisiä keskinäisiä riippuvuuksia tavallisina skeematason objekteina. Jos todella tarvitset tällaista logiikkaa, siirrä toinen riippuvuuden puoli alavirran semanttiseen malliin tai raporttiin , joka yhdistää nämä kaksi varastoa hakuvaiheessa.
Suorat ristiinvarastoviittaukset tietokantaviitteiden kautta
Tässä mallissa mallinnat yksisuuntaisia riippuvuuksia suoraan tietokantaprojekteissa käyttäen Database Referencesia.
Vaihe 1: Aloita kahdesta olemassa olevasta varastoprojektista
Sinun pitäisi jo tietää:
-
Zava.Sales.Warehouse→ lähetettyZavaSalesWarehouse -
Zava.Marketing.Warehouse→ lähetettyZavaMarketingWarehouse
Jokainen projekti luotiin tai poimittiin Develop varastoprojektien Visual Studio Code vaiheilla.
Vaihe 2: Lisää tietokantaviite myynnistä markkinointiin
- Vuonna Visual Studio Code avaa Database Projects -näkymä.
- Napsauta
Zava.Sales.Warehouseprojektia oikealla. - Valitse Lisää tietokantaviite....
- Valitse jompi:
- tietokantaprojekti nykyisessä työtilassa (Tällä tavalla viitattu tietokantaprojekti on myös avattava Visual Studio Code), tai
-
Datatier-sovellus (.dacpac) (Oletetaan, että olet rakentanut, jos sinulla on varastolle rakennettu
.dacpacMarketing).
- Aseta viitevaihtoehdot:
- Viitetyyppi: Sama palvelin, eri tietokanta.
-
Tietokannan nimi tai muuttuja: Käytä SQLCMD-muuttujaa, esimerkiksi
[$(MarketingWarehouseName)].
- Tallenna ja rakenna myyntiprojekti uudelleen.
Tiedostossa .sqlproj pitäisi näkyä merkintä, joka on samankaltainen:
<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>
Vihje
SQLCMD-muuttujan käyttäminen etävaraston nimeksi antaa mahdollisuuden käyttää samaa projektia uudelleen kaikissa ympäristöissä, kuten Dev/Test/Prod, joissa varastojen nimet voivat vaihdella.
Vaihe 3: Luo varastoinvälinen näkymä myyntiin
Lisää projektiin Sales näkymä, joka näyttää varastosta 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;
Avainkohdat:
- Kolmiosainen nimi
[$(MarketingWarehouseName)].[dbo].[CustomerEngagement]vastaa T-SQL-mallia, jota käytetään Fabric SQL -editorissa poikkivarastokyselyissä. - DacFx ratkaisee ulkoisen tietokannan tietokantaviitteen kautta.
Rakenna projekti niin, ettei ole SQL71501 ratkaisemattomia viitevirheitä .
Vaihe 4: Julkaise markkinointivarasto ja sitten myynti
Välttääksesi käyttöönotto-ongelmia:
-
Rakenna ja julkaise
Zava.Marketing.Warehouseensimmäinen:- Napsauta hiiren oikealla Projekti → Rakenna.
- Napsauta hiiren oikealla projektia → Julkaise → valitse
ZavaMarketingWarehouse.
- Kun
Marketingkäyttöönotto onnistuu, rakenna ja julkaiseZava.Sales.Warehouse:- Napsauta hiiren oikealla Projekti → Rakenna.
- Napsauta hiiren oikealla projektia → Julkaise → valitse
ZavaSalesWarehouse.
Tuloksena syntyvä käyttöönotto on:
Zava.Marketing.Warehouse (ei ulkoisia riippuvuuksia) → Zava.Sales.Warehouse (riippuu Marketing)
Nyt mikä tahansa T-SQL-kysely ZavaSalesWarehouse voi käyttää dbo.CustomerEngagementFact näkymää, joka lukee Marketing sisäisesti varastosta cross-warehouse T-SQL:n avulla.
Jatka oppimista
- Yhdistä tämä kaava version version hallintaan ja CI/CD-ohjeisiinkehityksessä ja käyttöönotossa sekä Fabric git -integraatiodokumentaatiossa.
- Laajenna Zava Analytics -skenaariota kattamaan Dev/Test/Prod-ympäristöt , käyttäen käyttöönottoputkia tai ulkoista CI/CD:tä julkaisutilausten järjestämiseen useiden varastojen välillä.