SQL-adatbázis forrásvezérlési integrációja a Microsoft Fabric

A következőre vonatkozik:SQL-adatbázis a Microsoft Fabric rendszerben

Ebben az oktatóanyagban megtudhatja, hogyan használhatja az SQL-adatbázist a Fabricbena Fabric git integrációs forrásvezérlőjével.

A Microsoft Fabricben található SQL-adatbázisok forrásvezérlési integrációval vagy "git-integrációval" is rendelkeznek, így a felhasználók nyomon követhetik az adatbázis-objektumaik definícióit. Ez az integráció lehetővé teszi a csapat számára a következőket:

  • Véglegesítse az adatbázist a forrásvezérlőre, amely automatikusan kóddá alakítja az élő adatbázist a konfigurált forrásvezérlő-adattárban (például Azure DevOps).
  • Frissítse az adatbázis-objektumokat a forrásvezérlő tartalmából, amely ellenőrzi a forrásvezérlő-adattár kódját, mielőtt különbségi módosítást alkalmaz az adatbázisra.

Az élő adatbázis és a forrásvezérlő közötti egyszerű véglegesítési és frissítési ciklus diagramja.

Ha nem ismeri a gitet, íme néhány ajánlott erőforrás:

Ez a cikk számos hasznos forgatókönyvet mutat be, amelyeket önállóan vagy kombinálva használhat a fejlesztési folyamat sql-adatbázissal való kezeléséhez a Fabricben:

A cikkben szereplő forgatókönyveket a Közzétett adatok egy epizódja ismerteti. Tekintse meg a videót a Fabric forrásvezérlési integrációjának áttekintéséhez:

Megjegyzés

Az adatbázisszintű beállítások, például a rendezés és a kompatibilitási szint jelenleg nem szerepelnek a forrásvezérlési és üzembehelyezési folyamatok integrációjában. Az adatbázis-beállítások esetében, amelyeket az adatbázis létrehozása után a T-SQL használatával állíthat be, az üzembe helyezés után szkriptekkel módosíthatja az adatbázist.

Előfeltételek

Beállítás

Ez az adattár-kapcsolat a munkaterület szintjén érvényes, így az adattár egyetlen ága is hozzá van rendelve ehhez a munkaterülethez. Az adattár több ágból is rendelkezhet, de csak a munkaterület beállításai között kijelölt ág kódja befolyásolja közvetlenül a munkaterületet.

A munkaterület forrásvezérlő adattárhoz való csatlakoztatásának lépéseit a Git-integráció első lépései című témakörben találja. A munkaterület csatlakoztatható egy Azure DevOps vagy GitHub távoli adattárhoz.

A Fabric SQL-adatbázis hozzáadása a forrásvezérlőhöz

Ebben a forgatókönyvben az adatbázis-objektumokat a forrásvezérlőbe tölti fel. Előfordulhat, hogy olyan alkalmazást fejleszt, amelyben objektumokat hoz létre közvetlenül egy tesztadatbázisban, és az adatbázist a forrásvezérlőben követi nyomon, ugyanúgy, mint az alkalmazás kódját. Ennek eredményeképpen hozzáférhet az adatbázis-objektumdefiníciók előzményeihez, és a Git-fogalmak, például az elágaztatás és az egyesítés használatával testre szabhatja a fejlesztési folyamatot.

  1. Kapcsolódjon az SQL-adatbázishoz a Fabric SQL-szerkesztőben, SQL Server Management Studio, a Visual Studio Code-hoz készült MSSQL-bővítménnyel vagy más külső eszközökkel.
  2. Hozzon létre egy új táblát, tárolt eljárást vagy más objektumot az adatbázisban.
  3. A Forrás vezérlőelem gombra kattintva nyissa meg a forrás vezérlőpultját.
  4. Jelölje be a kívánt adatbázis melletti jelölőnégyzetet. Válassza a Véglegesítés lehetőséget. A Fabric szolgáltatás beolvassa az objektumdefiníciókat az adatbázisból, és beírja őket a távoli adattárba.
  5. Most már megtekintheti az adatbázis-objektumok előzményeit a kódtár forrásnézetében.

Ahogy folytatja az adatbázis szerkesztését, beleértve a meglévő objektumok szerkesztését is, az előző lépések végrehajtásával véglegesítse ezeket a módosításokat a forrásvezérlőben.

SQL-projektfájl

A forrásvezérlő adattárban található SQL-projektfájl az adatbázis metaadatait tartalmazza. A hálóforrás-vezérlés integrációja ezzel a fájllal további funkciókat biztosít a forrásvezérlési és üzembehelyezési folyamatokban. A hálóforrás-vezérlés integrációja automatikusan létrehozza és frissíti a projektfájlt. Kerülje a projektfájl manuális szerkesztését, mert a projektfájlban végzett módosításokat felülírja a Fabric következő véglegesítésének Fabric-forrásvezérlő integrációja. Ha azonban helyileg szeretne SQL-projektet létrehozni olyan SQL-eszközökkel, mint az SQL Server Management Studio vagy a Visual Studio Code SQL-projektek bővítménye, hozzáadhat egy hivatkozást a master.dacpac projektfájlban lévő fájlhoz.

Az SQL-projektek hálóintegrációja a következő metaadat-tulajdonságokat adja hozzá a projektfájlhoz:

A rendszerobjektum-hivatkozások funkció automatikusan be van állítva, és nincs szükség műveletre. A Háló lekérdezésszerkesztője az üzembe helyezés előtti és az üzembe helyezés utáni szkripteket a Megosztott lekérdezések mappában biztosítja.

A Fabric SQL-adatbázis frissítése a forrásvezérlőből

Ebben a forgatókönyvben kódként hoz létre adatbázis-objektumokat a Visual Studio Code SQL-projektbővítményében, majd véglegesíti a fájlokat a forrásvezérlőben, mielőtt frissíti a Fabric SQL-adatbázist a forrásvezérlő-integrációból. Ez a forgatókönyv olyan fejlesztőknek szól, akik szívesebben dolgoznak a Visual Studio Code-ban, sql-projekteket használó meglévő alkalmazásokkal rendelkeznek, vagy fejlettebb CI-/CD-folyamatkövetelményekkel rendelkeznek.

  1. Győződjön meg arról, hogy telepíti a Visual Studio Code legújabb kiadását, valamint a Visual Studio Code MSSQL- és SQL-projektbővítményeit.
  2. Hozzon létre egy új SQL-adatbázist a munkaterületen, és véglegesítse azt a forrásvezérlőben objektumok hozzáadása nélkül. Ez a lépés hozzáadja az üres SQL-projekt és az SQL-adatbáziselem metaadatait az adattárhoz.
  3. Klónozza a forrásvezérlő adattárat a helyi gépre.
    • Ha Azure DevOps használ, válassza a forrásvezérlő projekt ... helyi menüjét. Válassza a Clone lehetőséget a Azure DevOps adattár helyi gépre másolásához. Ha új az Azure DevOpsban, tekintse meg az Azure DevOps Code with git útmutatóját.
    • Ha GitHub használ, válassza a Code gombot az adattárban, és másolja az URL-címet az adattár klónozásához a helyi gépre. Ha még nem ismeri a GitHubot, tekintse meg az egy adattár klónozásához útmutatót.
  4. Nyissa meg a klónozott mappát Visual Studio Code. Előfordulhat, hogy a munkaterülethez társított ág nem az alapértelmezett. Az ág váltása után meg kell jelennie egy Visual Studio Code-nak elnevezett <yourdatabase>.SQLDatabase mappának.
  5. Hozzon létre egy .sql fájlt legalább egy olyan táblához, amelyet létre szeretne hozni az adatbázis mappastruktúrájában. A fájlnak tartalmaznia kell a táblára vonatkozó CREATE TABLE utasítást. Hozzon létre például egy fájlt MyTable.sql a mappában dbo/Tables a következő tartalommal:
    CREATE TABLE dbo.MyTable
    (
        Id INT PRIMARY KEY,
        ExampleColumn NVARCHAR(50)
    );
    
  6. A szintaxis érvényességének ellenőrzéséhez ellenőrizze az adatbázismodellt az SQL-projekttel. A fájlok hozzáadása után használja az Adatbázisprojektek nézetet a Visual Studio Code-ban a projekt létrehozásához .
  7. Sikeres build után commitálja a fájlokat a forráskódvezérlésbe, a Visual Studio Code forrásvezérlő nézetével vagy az Ön által preferált helyi Git-felület segítségével.
  8. A véglegesítés leküldése/szinkronizálása a távoli adattárba. Ellenőrizze, hogy az új fájlok megjelennek-e az Azure DevOpsban vagy a GitHubon.
  9. Térjen vissza a Fabric webes felületére, és nyissa meg a Forrás vezérlőpultot a munkaterületen. Lehet, hogy már van egy riasztása, amely szerint "a gitben függőben vannak módosítások". A Frissítés (Az összes frissítése) gombra kattintva alkalmazza az SQL-projekt kódját az adatbázisra.
    • Előfordulhat, hogy az adatbázis azonnal jelzi, hogy a frissítés után "Véglegesítetlen". Ez az állapot azért fordul elő, mert a Git Integration szolgáltatás közvetlenül összehasonlítja az elemdefinícióhoz létrehozott összes fájltartalmat, és lehetséges néhány véletlen eltérés. Ilyenek például az oszlopok soros attribútumai. Ezekben az esetekben vissza kell küldenie a forráskezelőbe a Fabric webes felületén, hogy szinkronizálja a definíciót a véglegesítési művelet részeként létrehozottakkal.
  10. A frissítés befejeződése után egy tetszőleges eszközzel csatlakozzon az adatbázishoz. Az SQL-projekthez hozzáadott objektumok láthatók az adatbázisban.

Megjegyzés

Ha módosítja a helyi SQL-projektet, ha szintaxishiba vagy nem támogatott funkciók használata van a Fabricben, az adatbázis frissítése meghiúsul. A folytatáshoz manuálisan kell visszaállítania a módosítást a forrásvezérlőben.

Egy SQL-adatbázis frissítése a Fabricben a forrásvezérlőből egyesíti az SQL-projekt buildelési és az SqlPackage-közzétételi műveletet. Az SQL-projekt összeállítása ellenőrzi az SQL-fájlok szintaxisát, és létrehoz egy .dacpac fájlt. Az SqlPackage közzétételi művelet határozza meg az adatbázis frissítéséhez szükséges módosításokat a .dacpac fájlnak megfelelően. A Fabric felület egyszerűsített jellege miatt a rendszer a következő beállításokat alkalmazza az SqlPackage közzétételi műveletére:

  • /p:ScriptDatabaseOptions = false
  • /p:DoNotAlterReplicatedObjects = false
  • /p:IncludeTransactionalScripts = true
  • /p:GenerateSmartDefaults = true

A forrásvezérelt SQL-projektet a helyi gépre is klónozhatja szerkesztés céljából a Visual Studio Code-ban, az SQL Server Management Studióban vagy más SQL-projekteszközökön. Hozza létre helyileg az SQL-projektet a módosítások ellenőrzéséhez, mielőtt véglegesíti őket a forrásvezérlésre.

Ágmunkaterület létrehozása

Ebben a forgatókönyvben egy új fejlesztési környezetet állít be a Fabricben úgy, hogy a Fabric a forrásvezérlő definíciója alapján duplikált erőforráskészletet hoz létre. Az ismétlődő adatbázis tartalmazza a forrásvezérlőbe beadott adatbázis-objektumokat. Ez a forgatókönyv azoknak a fejlesztőknek szól, akik folytatják az alkalmazásfejlesztési életciklusukat a Fabricben, és a Fabric forrásvezérlési integrációját használják.

  1. Végezze el azt a forgatókönyvet , amely a Fabric SQL-adatbázist kódmá alakítja a forrásvezérlőben.
    • Egy SQL-projekttel és a Fabric objektum metaadataival rendelkező forrásvezérlő adattárban kell lennie egy ágnak.
  2. A Fabric munkaterületen nyissa meg a forráskód-vezérlő panelt. A Forrás-vezérlés menü Ágak lapján válassza az Elágazás új munkaterülethez lehetőséget.
  3. Adja meg a létrehozni kívánt ág és munkaterület nevét. Az új ág a forrásvezérlő adattárban jön létre, és azzal a munkaterülettel társított ág committelt tartalmával van feltöltve, ahonnan az elágaztatás történik. A munkaterület a Fabricben jön létre.
  4. Lépjen az újonnan létrehozott munkaterületre a Fabricben. Az adatbázis létrehozása után az újonnan létrehozott adatbázis mostantól tartalmazza a kódtárban megadott objektumokat. Ha megnyitja a Háló lekérdezésszerkesztőt, és az Objektumkezelőben navigál, az adatbázis új (üres) táblákkal és egyéb objektumokkal rendelkezik.

Módosítások egyesítése egyik ágból a másikba

Ebben a forgatókönyvben a forrásvezérlő adattár használatával áttekintheti az adatbázis módosításait, mielőtt azok üzembe helyezésre elérhetők lennének. Ez a forgatókönyv olyan fejlesztők számára készült, akik csapatkörnyezetben dolgoznak, és forrásvezérlőt használnak az adatbázis-módosítások kezeléséhez.

Hozzon létre két munkaterületet a társított ágakkal ugyanabban az adattárban, az előző forgatókönyvben leírtak szerint.

  1. Ha az adatbázis a másodlagos ágon van, módosítsa az adatbázis-objektumokat.
    • Módosíthatja például egy meglévő tárolt eljárást, vagy létrehozhat egy új táblát.
  2. A Forrásvezérlő módosításainak beadása a Fabric forrásvezérlő paneljén található Véglegesítés gombbal.
  3. Az Azure DevOps vagy a GitHub használatával hozz létre egy lekérési kérelmet a másodlagos ágból az elsődleges ágba.
    • A lekéréses kérelemben láthatja az adatbázis kódjának változásait az elsődleges munkaterület és a másodlagos munkaterület között.
  4. Miután befejezi a pull requestet, a forrásvezérlő frissül, de a Fabric adatbázisa az elsődleges munkaterületen nem módosul. Az elsődleges adatbázis módosításához frissítse az elsődleges munkaterületet a forrásvezérlőről a Fabric forrásvezérlő paneljének Frissítés gombjával.

Statikus adatok kezelése üzembe helyezés utáni szkripttel

Ebben a forgatókönyvben a forrásvezérlővel vezérelheti az adatbázis keresési táblájának sorait. Az a képesség, amely lehetővé teszi ezt a funkciót, az üzembe helyezés előtti és az üzembe helyezés utáni szkripteket, az üzembehelyezési folyamatokra is vonatkozik, így ugyanazokkal a szkriptekkel kezelheti a statikus adatokat mindkét forgatókönyvben.

  1. A Fabricben lévő sql-adatbázisból, amely a forrásvezérlőhöz csatlakozik, azonosítsa vagy hozzon létre egy táblát, amelyhez statikus adatokat szeretne kezelni. Előfordulhat például, hogy rendelkezik egy dbo.Colors olyan táblával, amelyet az alkalmazás használ, és olyan ismert értékkészlettel rendelkezik, amely nem változik gyakran.

  2. Hozzon létre egy új lekérdezést a Fabric SQL-adatbázis-szerkesztőjében. A lekérdezésszerkesztőben adjon hozzá egy utasítást MERGE a Colors tábla tartalmának kezeléséhez. Például:

    MERGE dbo.Colors AS target
    USING (VALUES
        (1, 'Red'),
        (2, 'Green'),
        (3, 'Blue')
    ) AS source (Id, Name)
    ON target.Id = source.Id
    WHEN MATCHED THEN
        UPDATE SET Name = source.Name
    WHEN NOT MATCHED BY TARGET THEN
        INSERT (Id, Name) VALUES (source.Id, source.Name)
    WHEN NOT MATCHED BY SOURCE THEN
        DELETE;
    
  3. Nevezze át a lekérdezést, Post-Deployment-StaticData.sql és helyezze át a megosztott lekérdezésekbe.

  4. A Megosztott lekérdezések területen válassza a lekérdezés ... menüjét, és válassza a Beállítás üzembe helyezés utáni szkriptként lehetőséget.

Ez a lekérdezés automatikusan a forrásvezérlő vagy az üzembehelyezési folyamat központi telepítéséből származó frissítések részeként fut, így a forrásvezérlővel kezelheti a Colors táblában lévő statikus adatokat. A Fabric lekérdezésszerkesztőben szerkesztheti a lekérdezést, és véglegesítheti a módosításokat a forrásvezérlőben a statikus adatok időbeli változásainak kezeléséhez. Emellett mivel az üzembe helyezés előtti és az üzembe helyezés utáni szkriptek is szerepelnek az SQL-projektben, a lekérdezést a helyi gépről is szerkesztheti a Visual Studio Code vagy más SQL-projekteszközök használatával, majd véglegesítheti ezeket a módosításokat a forrásvezérlőben. További információ az üzembe helyezés előtti és az üzembe helyezés utáni szkriptekről az SQL-projektek dokumentációjában.