Delen via


SqlPackage voor Azure Synapse Analytics

In dit artikel wordt ondersteuning voor SqlPackage voor Azure Synapse Analytics behandeld. Het bevat informatie over de volgende onderwerpen:

  • integratie met Azure Blob Storage voor toegang tot gegevens in Parquet-bestanden
  • ondersteuning voor serverloze SQL-pools

Zowel toegewezen als serverloze SQL-pools bieden geen ondersteuning voor de import-/exportacties in SqlPackage of .bacpac bestanden. SqlPackage ondersteunt Azure Synapse Analytics met .dacpac bestanden en kan gegevens lezen en schrijven in parquet-indelingsbestanden in Azure Blog Storage. Als u gegevens uit een toegewezen SQL-pool wilt importeren of exporteren, moet u de acties publiceren of extraheren met gegevens zoals hieronder wordt beschreven.

Extraheren (gegevens exporteren)

Voor het exporteren van gegevens uit een Azure Synapse Analytics-database naar Azure Blob Storage wordt de actie SqlPackage-extract gebruikt met de volgende eigenschappen:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageKey

De toegang van de database tot de blobopslagcontainer wordt geautoriseerd via een opslagaccountsleutel. Het databaseschema (.dacpac-bestand) wordt geschreven naar de lokale client waarop SqlPackage wordt uitgevoerd en de gegevens worden geschreven naar Azure Blob Storage in parquet-indeling.

Een extra parameter is optioneel, waarmee het hoofdpad van de opslag in de container wordt ingesteld:

  • /p:AzureStorageRootPath

Zonder deze eigenschap wordt het pad standaard ingesteld op servername/databasename/timestamp/. Gegevens worden opgeslagen in afzonderlijke mappen die genoemd zijn naar 2-delige tabelnamen.

Voorbeeld

In het volgende voorbeeld wordt een database met de naam databasename opgehaald van een server met de naam yourserver.sql.azuresynapse.net naar een lokaal bestand met de naam databaseschema.dacpac in de huidige map. De gegevens worden naar een container geschreven met de naam containername in een opslagaccount met de naam storageaccount met behulp van een opslagaccountsleutel met de naam storageaccountkey. De gegevens worden naar het standaardpad van servername/databasename/timestamp/ in de container geschreven.

SqlPackage /Action:Extract /SourceServerName:yourserver.sql.azuresynapse.net /SourceDatabaseName:databasename /SourceUser:sqladmin /SourcePassword:{your_password} /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey

Zie SqlPackage-extract voor meer voorbeelden van beschikbare verificatietypen.

Publiceren (gegevens importeren)

Als u gegevens uit Parquet-bestanden in Azure Blob Storage wilt importeren in een Azure Synapse Analytics-database, wordt de publicatieactie SqlPackage gebruikt met de volgende eigenschappen:

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageRootPath
  • /p:AzureStorageKey of /p:AzureSharedAccessSignatureToken

Toegang voor publiceren kan worden geautoriseerd via een opslagaccountsleutel of een SAS-token (Shared Access Signature). Het databaseschema (.dacpac-bestand) wordt gelezen vanuit de lokale client waarop SqlPackage wordt uitgevoerd en de gegevens worden gelezen uit Azure Blob Storage in parquet-indeling.

Voorbeeld

In het volgende voorbeeld wordt een database met de naam databasename gepubliceerd naar een server met de naam yourserver.sql.azuresynapse.net van een lokaal bestand met de naam databaseschema.dacpac in de huidige map. De gegevens worden gelezen uit een container met de naam containername in een opslagaccount met de naam storageaccount met behulp van een opslagaccountsleutel met de naam storageaccountkey. De gegevens worden gelezen uit afzonderlijke mappen voor elke tabel onder het pad yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/ in de container.

SqlPackage /Action:Publish /SourceFile:databaseschema.dacpac /TargetServerName:yourserver.sql.azuresynapse.net /TargetDatabaseName:databasename /TargetUser:sqladmin /TargetPassword:{your_password} /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername  /p:AzureStorageKey=storageaccountkey /p:AzureStorageRootPath="yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/"

Zie SqlPackage publiceren voor meer voorbeelden van beschikbare verificatietypen.

Ondersteuning voor serverloze SQL-pools

Serverloze SQL-pools van Synapse worden ondersteund voor zowel de extract- als de publicatieacties. Het T-SQL-oppervlak van serverloze SQL-pools is beperkt tot externe tabellen, externe weergaven, opgeslagen procedures, functies, statistieken en referenties. De volgende functies zijn opgenomen in de ondersteuning voor serverloze SQL-pools:

Volgende stappen