Conexión Destino SAP ASE Sybase
Requisitos previos
Antes de configurar la conexión de destino SAP ASE en Crestone, asegúrese de contar con lo siguiente:
Requisito principal: Una instancia activa y accesible de SAP ASE (Sybase), versión 12.5.1 o superior, con un usuario que posea privilegios de escritura en la base de datos de destino. Las siguientes versiones están totalmente soportadas:
| Versión | Soporte |
|---|---|
| SAP ASE 12.5.x (< 12.5.1) | No soportado (SELECT TOP no está disponible) |
| SAP ASE 12.5.1+ | Soportado |
| SAP ASE 15.x | Soportado (recomendado) |
| SAP ASE 16.x | Soportado (recomendado, probado) |
| SAP IQ (Sybase IQ) | No soportado (motor y protocolo diferentes) |
| SAP SQL Anywhere | No soportado (motor diferente) |
Nota: Crestone se conecta a SAP ASE utilizando
pyodbccon el controlador de código abierto FreeTDS (versión de protocolo TDS 5.0). No se requiere ningún controlador ODBC con licencia de SAP en el servidor de Crestone.
Información requerida:
| Campo | Descripción |
|---|---|
| Server / Host | Dirección IP o nombre de host del servidor ASE (ej. 192.168.1.100 o ase.example.com) |
| Port | Puerto TCP donde escucha ASE. El valor predeterminado es 5000. |
| Database | Nombre de la base de datos ASE donde se cargarán los datos (ej. my_database) |
| Username | Usuario con privilegios CREATE TABLE, INSERT, DELETE y SELECT |
| Password | Contraseña correspondiente al usuario especificado |
Importante: En SAP ASE, los esquemas corresponden a usuarios de la base de datos. Crestone carga datos en tablas pertenecientes al usuario configurado (ej.
crestone_user.my_table). A diferencia de MySQL o PostgreSQL, ASE no crea esquemas automáticamente; el esquema (usuario) debe existir previamente en la base de datos antes de utilizarse como destino. Contacte a su DBA para crear el usuario si es necesario.
Paso de verificación previa
Antes de configurar la conexión en Crestone, recomendamos verificar sus credenciales utilizando un cliente SQL compatible como DBeaver, DataGrip o la interfaz CLI isql (incluida en FreeTDS). Esto garantiza que el servidor sea accesible y que las credenciales sean correctas antes de proceder.
Pasos de configuración
Siga estos pasos para crear una nueva conexión de destino SAP ASE en Crestone:
- Diríjase a Connections en la barra de navegación superior.
- Seleccione la pestaña Destination.
- Haga clic en el botón + para crear una nueva conexión.
- Complete el campo Connection Name con un nombre descriptivo (ej.
Mi Destino Sybase). - En el menú desplegable Destination Type, seleccione SAP ASE (Sybase).
- Complete el formulario de credenciales con los campos requeridos:
- Server — host o dirección IP de su instancia ASE
- Port — predeterminado
5000 - Database — nombre de la base de datos ASE donde se cargarán los datos
- Username — usuario de base de datos con privilegios de escritura
- Password — contraseña del usuario
- Haga clic en Test Connection para validar que Crestone pueda comunicarse con la base de datos exitosamente.
- Una vez aprobada la prueba, haga clic en Create Destination para guardar la conexión.
Edición de una conexión existente
Para actualizar las credenciales de una conexión de destino SAP ASE existente:
- Diríjase a Connections y localice su destino SAP ASE.
- Haga clic en Edit.
- Modifique los campos deseados en el formulario de credenciales.
- Haga clic en Test Connection para verificar las nuevas credenciales.
- Haga clic en Confirm para guardar los cambios.
Uso de SAP ASE como destino en un nodo de extracción
Una vez creada la conexión, puede utilizarla como destino en un nodo de extracción (Extraction Node):
- Abra o cree un Extraction Node y diríjase a la pestaña Destination.
- En Select Destinations, elija su conexión SAP ASE.
- En Select Schema, elija un esquema existente (usuario de base de datos) de la lista.
- En Select Table, elija una tabla existente o seleccione Create new table para que Crestone la cree automáticamente según la estructura de datos de origen.
- Opcionalmente, habilite Prefers to delete existing data and then insert new data si desea truncar la tabla antes de cada carga.
- Continúe a la pestaña Settings y guarde el nodo.
Nota sobre esquemas: La lista de esquemas muestra todos los usuarios de base de datos definidos en la base de datos ASE conectada. Crestone escribirá datos en tablas pertenecientes al usuario de esquema seleccionado. Si el esquema que requiere no aparece en la lista, solicite a su DBA que cree el usuario de base de datos correspondiente y le asigne los permisos apropiados.
Nota: Al seleccionar Create new table, Crestone infiere automáticamente los tipos de columna a partir de los datos de origen y ejecuta una sentencia
CREATE TABLEantes de insertar registros. Los nombres de columnas del origen se sanean para convertirse en identificadores válidos de ASE (alfanuméricos y guion bajo únicamente, en mayúsculas). El mapeo de tipos aplicado es:
Tipo de origen Polars Tipo ASE creado Int8,Int16SMALLINTInt32INTInt64BIGINTFloat32REALFloat64FLOATBooleanTINYINTDateDATETIMEDatetimeDATETIMEStringy otrosVARCHAR(255)
Saneamiento de nombres de columnas
SAP ASE impone reglas estrictas para identificadores. Crestone sanea automáticamente los nombres de columna del origen antes de crear tablas o insertar datos en ASE:
- Todos los caracteres no alfanuméricos (espacios,
/,-,., etc.) se reemplazan por_ - Los guiones bajos o dígitos iniciales se eliminan o se prefijan con
C_ - Todos los nombres se convierten a mayúsculas
- Los nombres duplicados tras el saneamiento se desambiguan con un sufijo numérico (ej.
NAME_1,NAME_2)
Por ejemplo:
| Nombre de columna origen | Nombre de columna ASE |
|---|---|
/BIC/MY_FIELD | BIC_MY_FIELD |
Sales Amount | SALES_AMOUNT |
2024_value | C_2024_VALUE |
Total/Net | TOTAL_NET |
Nota: Los nombres de columna saneados son los que aparecerán en la tabla de ASE. Si realiza uniones (joins) de esta tabla con otros sistemas, asegúrese de referenciar los nombres saneados.
Problemas comunes
| Problema | Causa posible | Solución |
|---|---|---|
| Tiempo de espera agotado (Connection timeout) | Firewall bloqueando el puerto 5000 | Permita conexiones entrantes en el puerto 5000 desde la IP del servidor Crestone |
Adaptive Server is unavailable or does not exist | Host, puerto o nombre de servidor incorrecto | Verifique el host y el puerto con su DBA; asegúrese de que el servidor ASE esté en ejecución |
| Error de autenticación | Nombre de usuario o contraseña incorrectos | Verifique las credenciales utilizando un cliente SQL (DBeaver, isql) |
| No se listan esquemas | No hay usuarios válidos en sysusers | Solicite a su DBA crear un usuario de base de datos para usarlo como esquema |
Permission denied en CREATE TABLE | El usuario carece de privilegios DDL | Otorgue CREATE TABLE al usuario (consulte Permisos requeridos) |
Permission denied en INSERT | El usuario carece de privilegios DML en la tabla destino | Otorgue INSERT en la tabla o esquema (consulte Permisos requeridos) |
Incorrect syntax near ... | Carácter no permitido en el nombre de tabla o esquema | Evite caracteres especiales; utilice únicamente caracteres alfanuméricos y guion bajo |
Can't open lib 'FreeTDS' | El controlador FreeTDS no está instalado | Es un problema a nivel de servidor; contacte al administrador de Crestone |
| Datos cargados pero los nombres de columna difieren del origen | Se aplicó el saneamiento de nombres | Comportamiento esperado — consulte la sección Saneamiento de nombres de columnas |
Permisos requeridos
El usuario de base de datos configurado en Crestone requiere como mínimo los siguientes privilegios para cargar datos como destino:
-- Permitir al usuario crear tablas en su propio esquema (predeterminado en ASE para el propietario del esquema)
-- El usuario es propietario automático de los objetos que crea, por lo que no se requiere un permiso adicional
-- para CREATE TABLE dentro de su propio esquema.
-- Otorgar INSERT, SELECT, DELETE en la base de datos destino al usuario:
GRANT INSERT, SELECT, DELETE ON my_table TO crestone_user
GO
-- Si el usuario requiere crear tablas en el esquema de otro usuario:
GRANT CREATE TABLE TO crestone_user
GONota: En SAP ASE, un usuario de base de datos tiene automáticamente el derecho de crear tablas dentro de su propio esquema (es decir, tablas de las cuales es propietario). No se requiere ninguna concesión adicional siempre que el esquema de destino coincida con el nombre de usuario configurado en Crestone. Por ejemplo, si el nombre de usuario es
crestone_user, Crestone escribirá encrestone_user.my_tablede forma predeterminada.
Importante: Crestone no crea esquemas (usuarios de base de datos) automáticamente. El esquema seleccionado en el nodo de extracción debe existir previamente como usuario de base de datos en ASE. Solicite a su DBA ejecutar:
sql-- Crear un nuevo usuario de base de datos (esquema) en ASE USE my_database GO sp_adduser 'crestone_user', 'crestone_user', 'null' GOEl usuario también debe existir como login en el servidor ASE:
sql-- Crear primero el login a nivel de servidor sp_addlogin 'crestone_user', 'strong_password' GO -- Luego agregarlo a la base de datos destino USE my_database GO sp_adduser 'crestone_user' GO