Share via


SqlPackage voor SQL-database in Microsoft Fabric

Van toepassing op:SQL-database in Microsoft Fabric

In deze zelfstudie leert u hoe u met SqlPackage kunt werken in uw SQL-database in Fabric.

SqlPackage is een CLI die databaseportabiliteit en database-implementaties biedt.

  • De draagbaarheid (import/export) van een database die wordt beheerd in Azure of in Fabric zorgt ervoor dat uw gegevens overdraagbaar zijn naar andere platforms als u later wilt migreren. - Portability omvat verplaatsing van en naar SQL Server, Azure SQL Database, Azure SQL Managed Instance en SQL-database in Fabric via zelfstandige databasekopieën (.bacpac of .dacpac bestanden).

SqlPackage kan ook eenvoudige database-implementaties van incrementele wijzigingen in databaseobjecten mogelijk maken (nieuwe kolommen in tabellen, wijzigingen in bestaande opgeslagen procedures, enzovoort).

  • SqlPackage kan een .dacpac bestand met de definities van objecten in een database extraheren en een .dacpac bestand publiceren om die objectstatus toe te passen op een nieuwe of bestaande database.
  • De publicatiebewerking kan ook worden geïntegreerd met SQL-projecten, waardoor offline en dynamischere ontwikkelingscycli voor SQL-databases mogelijk zijn.

Vereisten

Instellingen

SqlPackage is beschikbaar voor Windows, macOS en Linux als een dotnet-hulpprogramma. U kunt deze installeren met behulp van de volgende opdracht:

dotnet tool install --global Microsoft.SqlPackage

Als globaal dotnet-hulpprogramma is SqlPackage beschikbaar in uw terminal, net als sqlpackage in elke map.

Een database importeren met SqlPackage

A .bacpac is een draagbare kopie van een database, handig voor sommige migratie- en testscenario's. U kunt deze .bacpac in een lege SQL-database met SqlPackage-import.

Notitie

Een .bacpac is geen back-up of een vervanger van capaciteiten voor back-up/herstel. Zie Automatische back-ups in SQL Database in Microsoft Fabric en Herstellen vanuit een back-up in SQL Database in Microsoft Fabric in Microsoft Fabric voor meer informatie over back-ups voor SQL Database in Fabric.

  1. Als u een .bacpac uit een omgeving van Azure of SQL Server gebruikt, moet u mogelijk de brondatabase wijzigen zodat het voldoet aan de SQL-database op het T-SQL-oppervlaktegebied van Fabric. Zie extraheren en publiceren van draagbaarheid voor een alternatieve methode waarmee SqlPackage-eigenschappen bepaalde niet-ondersteunde objecten kunnen overslaan.

  2. Maak uw nieuwe SQL-database in Fabric zoals gebruikelijk via de Fabric-interface.

  3. Kopieer de verbindingsreeks uit instellingen.

    Schermopname van de Fabric-portal met de pagina Verbindingsreeksen van de SQL-database.

  4. Gebruik de opdracht importeren vanuit terminal in de map sqlpackage. Geef uw eigenaar <servername> en <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"
    
    • Vervang uw verbindingsreeks in het dialoogvenster sql-databaseinstellingen.
    • Vervang de sourcefile waarde door de .bacpac naam (DatabaseName) en location op uw lokale computer.
  5. Volg het importeren met een kopieertaak in Data Factory in Microsoft Fabric. Zie Quickstart: Een kopieertaak maken om aan de slag te gaan.

Een database exporteren met SqlPackage

Het exporteren van een .bacpac is de omgekeerde bewerking, waar u targetfile een .bacpac en uw sourceconnectionstring kunt vinden in het dialoogvenster sql-databaseinstellingen, zoals in het vorige voorbeeld. Geef uw eigenaar <servername> en <database_name>. Voorbeeld:

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"

Zie SqlPackage-export voor meer informatie over exporteren.

Extraheren en publiceren

Diagram van hoe SQL-databaseprojecten schemawijzigingen kunnen verplaatsen.

Een .dacpac is een databaseschemamodelbestand met definities voor de tabellen, opgeslagen procedures en andere objecten in de brondatabase. Dit bestand kan worden gemaakt op basis van een bestaande database met SqlPackage of vanuit een SQL-databaseproject.

SqlPackage kan een .dacpac nieuwe (lege) database implementeren of een bestaande database incrementeel bijwerken zodat deze overeenkomt met de gewenste .dacpac status.

  • Extraheren maakt een .dacpac of SQL-bestanden uit een bestaande database.
  • Hiermee wordt een .dacpac implementatie naar een database geïmplementeerd.

De SqlPackage publiceren en syntaxis extraheren is vergelijkbaar met de import-/exportopdrachten.

Waarschuwing

Het gebruik van SqlPackage voor het implementeren van een SQL-project of .dacpac in SQL Database in Fabric wordt aanbevolen. Het implementeren van een .dacpac vanuit Visual Studio is mogelijk mislukt.

Als u een .dacpac wilt implementeren die is gemaakt op basis van Azure SQL Database, SQL Server of een SQL-project dat is gericht op een ander platform dan SQL Database in Fabric, voegt u de eigenschap /p:AllowIncompatiblePlatform=true toe aan de opdracht SqlPackage Publish.

Portabiliteit extraheren en publiceren

Hoewel de sqlPackage-opdrachten voor importeren/exporteren gericht zijn op gegevensportabiliteit met de .bacpac indeling, zijn de opdrachten voor extraheren en publiceren geschikt voor gegevensoverdracht met de .dacpac indeling. Eigenschappen extraheren en publiceren kunnen worden gebruikt om het gedrag van de extract- en publicatiebewerkingen te beheren en om meer flexibiliteit te bieden voor conversies tussen platforms.

Gebruik de eigenschap om een .dacpac gegevens te extraheren en op te nemen. Met de extractiebewerking wordt een .dacpac bewerking gemaakt die zowel het schema als de gegevens uit de brondatabase bevat. De eigenschap /p:ExtractReferencedServerScopedElements=false sluit elementen met serverbereik uit, die niet worden ondersteund in SQL Database in Fabric. Met de volgende opdracht wordt een .dacpac met gegevens uit een bestaande SQL-database in Fabric geëxtraheerd:

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

Voor het publiceren van een .dacpac die is geëxtraheerd met de gegevens, zijn er geen extra eigenschappen vereist. Er kunnen echter verschillende eigenschappen worden gebruikt om het gedrag van de publicatiebewerking te bepalen:

  • /p:AllowIncompatiblePlatform=true staat de implementatie toe van een .dacpac platform dat is geëxtraheerd vanaf een ander platform (bijvoorbeeld Azure SQL Database, SQL Server).
  • /p:ExcludeObjectTypes=Logins;Users sluit objecttypen uit die compatibiliteitsproblemen kunnen ondervinden bij het publiceren naar SQL Database in Fabric. Zie SqlPackage publish voor een volledige lijst met objecttypen die kunnen worden uitgesloten.

Net als bij de SqlPackage-importopdracht moet u, voordat u een .dacpac SQL-database in Fabric publiceert, eerst de database in Fabric maken. U kunt de database maken via de Fabric-portal of een andere Fabric-interface. Met de volgende opdracht wordt de geëxtraheerde .dacpac naar een lege SQL-database in Fabric gepubliceerd:

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