SqlPackage con datos en archivos Parquet (vista previa)
En este artículo se describe la compatibilidad con SqlPackage para interactuar con los datos almacenados en Azure Blob Storage que están en formato Parquet. Para SQL Server 2022 y Azure SQL Managed Instance, agrega compatibilidad con la versión preliminar para extraer y publicar con datos almacenados en archivos Parquet en Azure Blob Storage está disponible en SqlPackage 162.1.176 y versiones posteriores. No se admiten Azure SQL Database y SQL Server 2019. Las acciones de importación y exportación siguen estando disponibles para SQL Server, Azure SQL Managed Instance y Azure SQL Database. La compatibilidad con archivos Parquet en Azure Blob Storage sigue teniendo disponibilidad general para Azure Synapse Analytics.
Con extraer, el esquema de la 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. Los datos se almacenan en carpetas individuales denominadas con nombres de tabla de dos partes. CETAS se usa para escribir los archivos en Azure Blob Storage.
Con publicar, el esquema de la base de datos (archivo .dacpac
) se lee desde el cliente local que ejecuta SqlPackage y los datos se leen o escriben desde Azure Blob Storage en formato Parquet.
En las bases de datos SQL hospedadas en Azure, las operaciones de extracción y publicación con archivos Parquet ofrecen un rendimiento mejorado sobre las operaciones de importación y exportación con archivos .bacpac
en muchos escenarios.
Extracción (exportación de datos)
Para exportar datos desde una base de datos a Azure Blob Storage, la acción de extracción de SqlPackage se usa con las siguientes propiedades:
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageKey o /p:AzureSharedAccessSignatureToken
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.
El parámetro /p:AzureStorageRootPath
es opcional, el cual establece la ruta de acceso raíz del almacenamiento en el contenedor. 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. El número de archivos creados por tabla depende de MAXDOP y de los núcleos SQL disponibles en el momento de la exportación.
Por último, la propiedad /p:TableData
especifica qué tablas tienen sus datos exportados. Especifique el nombre de tabla con o sin corchetes en ambas partes del nombre en el siguiente formato schema_name.table_identifier. Esta propiedad se puede especificar varias veces para indicar diversas tablas.
Ejemplo
En el ejemplo siguiente se extrae una base de datos denominada databasename
de un servidor denominado yourserver
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 /SourceDatabaseName:databasename /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, 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
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/databasename/10-19-2023_11-09-56/
del contenedor.
SqlPackage /Action:Publish /SourceFile:databaseschema.dacpac /TargetServerName:yourserver /TargetDatabaseName:databasename /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey /p:AzureStorageRootPath="yourserver/databasename/10-19-2023_11-09-56/"
Consulte Publicación de SqlPackage para obtener más ejemplos de tipos de autenticación disponibles.
Limitaciones
Polybase
Polybase es necesario para las operaciones SqlPackage con archivos Parquet. La consulta siguiente se puede usar para comprobar si Polybase está habilitado:
// configuration_id = 16397 is 'allow polybase export'
// configuration_id = 16399 is 'polybase enabled'
SELECT configuration_id, value_in_use FROM sys.configurations
WHERE configuration_id IN (16397, 16399)
Es posible que tenga que habilitar Polybase o la exportación de Polybase. La habilitación de Polybase en Azure SQL Managed Instance requiere PowerShell o la CLI de Azure. Se recomienda evaluar si habilitar Polybase es adecuado para su entorno antes de realizar cambios de configuración.
Tipos de tabla y datos
Los tipos de datos admitidos por CETAS son compatibles con las operaciones de extracción y publicación con archivos Parquet.
Las tablas de libro de contabilidad están habilitadas para las operaciones de extracción y publicación con archivos Parquet.
Los datos almacenados con Always Encrypted no se admiten para las operaciones de extracción y publicación con archivos Parquet.
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 la Firma de acceso compartido (SAS) de Azure Storage
- Más información sobre las claves de cuentas de Azure Storage