SqlPackage para Azure Synapse Analytics

En este artículo se trata 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 archivos de .bacpac. SqlPackage admite Azure Synapse Analytics con archivos de .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, tal 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 de 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 se autoriza mediante 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.

Hay un parámetro adicional opcional, que establece la ruta de acceso raíz del almacenamiento en el contenedor:

  • /p:AzureStorageRootPath

Sin esta propiedad, el valor predeterminado de la ruta de acceso es servername/databasename/timestamp/. Los datos se almacenan en carpetas individuales denominadas con nombres de tabla de dos 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 Extracción de SqlPackage para obtener más ejemplos de tipos de autenticación disponibles.

Publicación (importación de datos)

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

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

El acceso para la publicación 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 desde el 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 a partir de 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 desde carpetas individuales por tabla en la ruta de acceso yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/ del 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 son compatibles con las acciones de extracción y publicación. El área expuesta de T-SQL de los grupos de SQL sin servidor se limita por diseño a tablas externas, vistas externas, procedimientos almacenados, funciones, estadísticas y credenciales. Las características siguientes se incluyen en la compatibilidad con grupos de SQL sin servidor:

  • Formato de archivo externo delta
  • Proveedor OPENROWSET en CosmosDB con PROVIDER, CONNECTION, OBJECT y CREDENTIAL o SERVER_CREDENTIAL especificados
  • Cláusula with () en OPENROWSET

Pasos siguientes