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
- Más información sobre Extract
- Más información sobre Publish
- Más información acerca de Azure Blob Storage
- Más información sobre las claves de cuentas de Azure Storage