Compartir a través de


SqlPackage para Azure Synapse Analytics

En este artículo se describe la compatibilidad de SqlPackage con Azure Synapse Analytics. Incluye información sobre los temas siguientes:

  • Integración con Azure Blob Storage para acceder a datos en archivos parquet
  • compatibilidad con grupos de SQL sin servidor

Los grupos de SQL dedicados y sin servidor no admiten las acciones de importación y exportación en SqlPackage o .bacpac archivos. SqlPackage admite Azure Synapse Analytics con archivos .dacpac y puede leer y escribir datos en archivos de formato parquet en Azure Blog Storage. Para importar o exportar datos desde un grupo de SQL dedicado, debe usar las acciones de publicación o extracción con datos como se detalla a continuación.

Extracción (exportación de datos)

Para exportar datos desde una base de datos de Azure Synapse Analytics a Azure Blob Storage, la acción de extracción sqlPackage se usa con las siguientes propiedades:

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

El acceso a la base de datos para acceder al contenedor de Blob Storage está autorizado a través de una clave de cuenta de almacenamiento. El esquema de base de datos (archivo .dacpac) se escribe en el cliente local que ejecuta SqlPackage y los datos se escriben en Azure Blob Storage en formato parquet.

Un parámetro adicional es opcional, que establece la ruta de acceso raíz de almacenamiento dentro del contenedor:

  • /p:AzureStorageRootPath

Sin esta propiedad, la ruta de acceso tiene como valor predeterminado servername/databasename/timestamp/. Los datos se almacenan en carpetas individuales denominadas con nombres de tabla de 2 partes.

Ejemplo

En el ejemplo siguiente se extrae una base de datos denominada databasename de un servidor denominado yourserver.sql.azuresynapse.net a un archivo local denominado databaseschema.dacpac en el directorio actual. Los datos se escriben en un contenedor denominado containername en una cuenta de almacenamiento denominada storageaccount mediante una clave de cuenta de almacenamiento denominada storageaccountkey. Los datos se escriben en la ruta de acceso predeterminada de servername/databasename/timestamp/ en el contenedor.

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

Consulte el extracto de SqlPackage para obtener más ejemplos de los tipos de autenticación disponibles.

Publicar (importar datos)

Para importar datos de archivos parquet en Azure Blob Storage a una base de datos de Azure Synapse Analytics, se usa la acción SqlPackagepublicar con las siguientes propiedades:

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

El acceso para publicar se puede autorizar a través de una clave de cuenta de almacenamiento o un token de firma de acceso compartido (SAS). El esquema de base de datos (archivo .dacpac) se lee del cliente local que ejecuta SqlPackage y los datos se leen desde Azure Blob Storage en formato parquet.

Ejemplo

En el ejemplo siguiente se publica una base de datos denominada databasename en un servidor denominado yourserver.sql.azuresynapse.net desde un archivo local denominado databaseschema.dacpac en el directorio actual. Los datos se leen desde un contenedor denominado containername en una cuenta de almacenamiento denominada storageaccount mediante una clave de cuenta de almacenamiento denominada storageaccountkey. Los datos se leen de carpetas individuales por tabla en la ruta de acceso yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/ en el contenedor.

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/"

Consulte Publicación de SqlPackage para obtener más ejemplos de tipos de autenticación disponibles.

Compatibilidad con grupos de SQL sin servidor

Los grupos de SQL sin servidor de Synapse se admiten para las acciones de extracción y publicación. El área expuesta de T-SQL de los grupos de SQL sin servidor está limitada por diseño a tablas externas, vistas externas, procedimientos almacenados, funciones, estadísticas y credenciales. Las siguientes características se incluyen en compatibilidad con grupos de SQL sin servidor:

  • Formato de archivo externo Delta
  • OPENROWSETproveedor CosmosDB con PROVIDER, CONNECTION, OBJECT y CREDENTIAL o SERVER_CREDENTIAL especificados
  • with () cláusula en OPENROWSET

Pasos siguientes