Hace una semana escribí acerca de un buen conjunto de novedades de Azure Synapse, aquí. Si bien, la fiesta continua y hoy os presento una solución en preview que viene a hacer la vida más fácil a las organizaciones que quieren modernizar sus almacenes de datos moviéndolos al Cloud de Microsoft y sobre todo, dotándolos de las extraordinarias capacidades de analítica de Synapse. Se trata de Azure Synapse Pathway.
Actualmente Azure Synapse Pathway se encuentra en desarrollo, si bien, la idea de negocio es muy buena, pues permitirá acelerar la migración de soluciones de analítica traduciendo millones de líneas de código SQL en TSQL compatible con Azure Synapse. Algo que sin duda mitigará los dolores de cabeza de muchos CDOs.

En la actualidad, este servicio está disponible para los siguientes componentes tanto on premise como cloud:
- Amazon Redshift
- Google BigQuery
- Teradata
- Snowflake
- IBM Netezza
- Microsoft SQL Server
El proceso se fundamenta en tres pasos y tiene por objeto ser capaz de mantener la funcionalidad del código original. Para ello, incluso el uso de los metadatos es tenido en cuenta de cara a ofrecer la máxima calidad de la traducción.
En la primera fase se ejecuta un proceso de tokenización del código SQL, algo que no es nuevo pues existen multitud de servicios de terceros que ejecutan dicho proceso. La idea extraer las distintas piezas lógicas, entenderlas y finalmente planificar la ejecución de las mismas de cara a garantizar que el resultado sea exitoso. Esto corresponde a la segunda fase, donde todos los tokens se agrupan dando lugar a un esqueleto de instrucciones que deberán ser traducidas, que es la última de las fases incluidas en el proceso. En ella , nuestro Pathway conoce la sintaxis propia del código TSQL de Synapse, por lo que el proceso se fundamenta en convertir los fragmentos de código en instrucciones legibles.
Puedes descargar Azure Synapse Pathway desde aquí.
Voy a realizar una primera prueba para Microsoft SQ Server, para ello, además de descargar Azure Synapse Pathway debo verificar que tengo .NET 5.0 Desktop Runtime instalado en mi máquina.
Para esta demo inicial, creo un sencillo ejemplo de CREATE TABLE en la carpeta ‘Pathway Input’ y configuro la salida de la traducción hacia la carpeta ‘Pathway Output’, como vemos en la imagen de abajo.

Acto seguido, pulso sobre el botón «Translate» y obtengo este resumen

Código de origen
CREATE TABLE [dbo].[Ward]
(
Id INT IDENTITY(1,1) PRIMARY KEY,
BPID NVARCHAR(100) NULL,
Name NVARCHAR(100) NULL,
IsActive BIT NOT NULL,
PhoneNumber NVARCHAR(100) NULL,
FaxNumber NVARCHAR(100) NULL,
NHBPID NVARCHAR(100) NULL,
SapNoOfBeds INT NULL,
SapNoOfIncoBeds INT NULL,
Name2 NVARCHAR(100) NULL,
Name4 NVARCHAR(100) NULL
);
Código traducido
CREATE TABLE [dbo].[Ward]
(
[Id] INT IDENTITY(1, 1) PRIMARY KEY NONCLUSTERED NOT ENFORCED
, [BPID] NVARCHAR(100) NULL
, [Name] NVARCHAR(100) NULL
, [IsActive] BIT NOT NULL
, [PhoneNumber] NVARCHAR(100) NULL
, [FaxNumber] NVARCHAR(100) NULL
, [NHBPID] NVARCHAR(100) NULL
, [SapNoOfBeds] INT NULL
, [SapNoOfIncoBeds] INT NULL
, [Name2] NVARCHAR(100) NULL
, [Name4] NVARCHAR(100) NULL
);
CONCLUSIÓN
En el proceso he tenido que eliminar las CONTRAINTS para alguno de los campos en la tabla origen, puesto que me devolvía un error. Por lo que deberá, sí o sí, seguir mejorando. No obstante como indiqué al comienzo, será una genial herramienta si finalmente desde Microsoft consiguen cubrir un amplio rango de soluciones, instrucciones y funciones. Por lo que, sigamos de cerca a Azure Synapse Pathway.
Foto de portada gracias a Karolina Grabowska en Pexels