Zdieľať cez


SqlPackage pre databázu SQL v službe Microsoft Fabric

Vzťahuje sa na:databáza SQL v službe Microsoft Fabric

V tomto kurze sa naučíte pracovať s balíkom SqlPackage v databáze SQL v službe Fabric.

SqlPackage je CLI, ktoré poskytuje prenosnosť databázy a nasadenie databáz.

  • Prenosnosť (import a export) databázy spravovanej v službe Azure alebo v službe Fabric zabezpečí, že vaše údaje budú prenosné na iné platformy, ktoré by ste mali chcieť migrovať neskôr.
    • Prenosnosť zahŕňa pohyb medzi SQL Serverom, Azure SQL databázou, Azure SQL Managed Instance a SQL databázou vo Fabric prostredníctvom samostatných databázových kópií (.bacpac alebo .dacpac súborov).

SqlPackage tiež môže umožniť jednoduché nasadenie databázových prírastkových zmien do databázových objektov (nové stĺpce v tabuľkách, zmeny existujúcich uložených procedúr atď.).

  • SqlPackage môže extrahovať .dacpac súbor obsahujúci definície objektov v databáze a publikovať .dacpac súbor, ktorý použije tento stav objektu na novú alebo existujúcu databázu.
  • Operácia publikovania sa tiež integruje s projektmi SQL, ktoré umožňujú offline a dynamickejšie vývojové cykly pre databázy SQL.

Požiadavky

Inštalácia

SqlPackage je k dispozícii pre Windows, macOS a Linux ako nástroj dotnet. Môžete ju nainštalovať pomocou nasledujúceho príkazu:

dotnet tool install --global Microsoft.SqlPackage

Ako globálny nástroj dotnet je sqlPackage vo vašom termináli k dispozícii ako sqlpackage z ľubovoľného priečinka.

Importovanie databázy pomocou balíka SqlPackage

A .bacpac je prenosná kópia databázy, užitočná v prípade niektorých scenárov migrácie a testovania. Môžete to .bacpac do prázdnej databázy SQL pomocou importu SqlPackage.

Poznámka

A .bacpac nie je záloha ani náhrada pre možnosti zálohovania a obnovenia. Ďalšie informácie o zálohách pre databázu SQL v službe Fabric nájdete v téme Automatické zálohovanie v databáze SQL v službe Microsoft Fabric a obnovenie zo zálohy v databáze SQL v službe Microsoft Fabric.

  1. Ak používate prostredie .bacpac zo služby Azure alebo SQL Server, môže byť potrebné zmeniť zdrojovú databázu tak, aby spĺňala databázu SQL v oblasti povrchu T-SQL služby Fabric. Pozrite si časť extrahovanie a publikovanie prenosnosti pre alternatívnu metódu, ktorá vlastnosti SqlPackage umožňuje vynechať niektoré nepodporované objekty.

  2. Vytvorte novú databázu SQL v službe Fabric ako zvyčajne prostredníctvom rozhrania služby Fabric.

  3. Skopírujte reťazec pripojenia z nastavení.

    Snímka obrazovky z portálu služby Fabric zobrazujúca stránku Reťazce pripojenia v databáze SQL.

  4. Použite príkaz importu z terminálu v priečinku sqlpackage. Zadajte svojho vlastníka <servername> a <database_name>.

    sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
    
    • Nahraďte reťazec pripojenia v dialógovom okne Nastavenia databázy SQL.
    • sourcefile Nahraďte hodnotu názvom .bacpac (DatabaseName) a location v lokálnom počítači.
  5. Po importe použite úlohu kopírovania v službe Data Factory v službe Microsoft Fabric. Ak chcete začať, pozrite si tému Rýchly štart: Vytvorenie úlohy kopírovania.

Exportovanie databázy pomocou balíka SqlPackage

Exportovanie je reverzná .bacpac operácia, kde je targetfile vaša .bacpac a nájdete ju sourceconnectionstring v dialógovom okne Nastavenia databázy SQL, ako v predchádzajúcom príklade. Zadajte svojho vlastníka <servername> a <database_name>. Napríklad:

sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"

Ďalšie informácie o exporte nájdete v téme Export sqlpackage.

Extrahovanie a publikovanie

Diagram, ako môžu projekty databázy SQL premiestniť zmenu schémy.

A .dacpac je modelový súbor schémy databázy, ktorý obsahuje definície tabuliek, uložených procedúr a ďalších objektov v zdrojovej databáze. Tento súbor je možné vytvoriť z existujúcej databázy s sqlpackage alebo z projektu databázy SQL.

SqlPackage je schopný nasadiť .dacpac do novej (prázdnej) databázy alebo prírastkovo aktualizovať existujúcu databázu tak, aby zodpovedala požadovanému .dacpac stavu.

  • Extrahovanie vytvorí .dacpac alebo SQL súbory z existujúcej databázy.
  • Publikovanie nasadzuje .dacpac položku do databázy.

Syntax jazyka SQLPackage publikovanie a extrahovanie je podobná syntaxi príkazov importu/exportu.

Varovanie

Na nasadenie projektu SQL alebo .dacpac do databázy SQL v službe Fabric sa odporúča použitie služby SqlPackage. Nasadenie .dacpac z Visual Studia môže byť neúspešné.

Ak chcete nasadiť .dacpac vytvorenú z databázy Azure SQL, SQL Servera alebo projektu SQL zameraného na inú platformu ako databáza SQL v službe Fabric, pripojte vlastnosť /p:AllowIncompatiblePlatform=true do príkazu na publikovanie databázy SqlPackage.

Extrahovanie a publikovanie prenosnosti

Zatiaľ čo príkazy importu a exportu aplikácie SqlPackage sú zamerané na prenosnosť údajov pomocou .bacpac formátu, príkazy na extrahovanie a publikovanie dokážu prenášať údaje s daným formátom .dacpac . Extrahovanie a publikovanie vlastností sa dá použiť na ovládanie správania operácií extrahovania a publikovania a na zabezpečenie väčšej flexibility pri konverziách medzi platformami.

Ak chcete extrahovať.dacpac a zahrnúť údaje, použite /p:ExtractAllTableData=true vlastnosť . Operácia extrahovania vytvorí schému .dacpac a aj údaje zo zdrojovej databázy. Vlastnosť /p:ExtractReferencedServerScopedElements=false vylučuje prvky v rámci servera, ktoré nie sú podporované v databáze SQL v službe Fabric. Nasledujúci príkaz extrahuje .dacpac údaje z existujúcej databázy SQL v službe Fabric:

sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true  /p:ExtractReferencedServerScopedElements=false

Na publikovanie.dacpac extrahovanej pomocou údajov sa nevyžadujú žiadne ďalšie vlastnosti. Na ovládanie správania operácie publikovania však možno použiť niekoľko vlastností:

  • /p:AllowIncompatiblePlatform=true umožňuje nasadenie extrahovaného objektu .dacpac z inej platformy (napríklad databázy Azure SQL, SQL Servera).
  • /p:ExcludeObjectTypes=Logins;Users vylučuje typy objektov, u ktoré sa môžu vyskytnúť problémy s kompatibilitou pri publikovaní do databázy SQL v službe Fabric. Úplný zoznam typov objektov, ktoré možno vylúčiť, nájdete v téme Publikovanie balíka SqlPackage.

Podobne ako pri príkaze importu sqlpackage je pred publikovaním .dacpac databázy SQL v službe Fabric potrebné vytvoriť databázu v službe Fabric. Databázu môžete vytvoriť prostredníctvom portálu služby Fabric alebo iného rozhrania služby Fabric. Nasledujúci príkaz publikuje extrahované .dacpac do prázdnej databázy SQL v službe Fabric:

sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users