Saltar al contenido principal

SAP HANA

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Instalación

TypeORM depende de @sap/hana-client para establecer la conexión a la base de datos:

npm install @sap/hana-client

Si estás utilizando TypeORM 0.3.25 o una versión anterior, hdb-pool también es necesario para gestionar el grupo de conexiones.

Opciones de Data Source

Consulta Opciones de Origen de Datos para ver las opciones comunes de origen de datos.

  • host - El nombre del host del servidor SAP HANA. Por ejemplo, "localhost".

  • port - El número de puerto del servidor SAP HANA. Por ejemplo, 30015.

  • username - El nombre de usuario para conectarse al servidor SAP HANA. Por ejemplo, "SYSTEM".

  • password - La contraseña para conectarse al servidor SAP HANA. Por ejemplo, "password".

  • database - El nombre de la base de datos a la que conectarse. Por ejemplo, "HXE".

  • encrypt - Indica si se debe cifrar la conexión. Por ejemplo, true.

  • sslValidateCertificate - Indica si se debe validar el certificado SSL. Por ejemplo, true.

  • key, cert y ca - Clave privada, certificado público y autoridad certificadora para la conexión cifrada.

  • pool — Objeto de configuración del grupo de conexiones:

    • maxConnectedOrPooled (número) — Máximo de conexiones activas o inactivas en el grupo (valor predeterminado: 10).
    • maxPooledIdleTime (segundos) — Tiempo antes de cerrar una conexión inactiva (valor predeterminado: 30).
    • maxWaitTimeoutIfPoolExhausted (milisegundos) - Tiempo de espera para que una conexión esté disponible (valor predeterminado: 0, sin espera). Requiere @sap/hana-client versión 2.27 o superior.
    • pingCheck (booleano) — Indica si se deben validar las conexiones antes de usarlas (valor predeterminado: false).
    • poolCapacity (número) — Número máximo de conexiones que se mantendrán disponibles (valor predeterminado: sin límite).

Consulta la documentación oficial de SAP HANA Client para más detalles y las propiedades extra: Propiedades de conexión para Node.js.

Tipos de Columna

SAP HANA 2.0 y SAP HANA Cloud admiten tipos de datos ligeramente diferentes. Consulta las páginas de ayuda de SAP para obtener más información:

El SapDriver de TypeORM admite tinyint, smallint, integer, bigint, smalldecimal, decimal, real, double, date, time, seconddate, timestamp, boolean, char, nchar, varchar, nvarchar, text, alphanum, shorttext, array, varbinary, blob, clob, nclob, st_geometry, st_point, real_vector y half_vector. Algunos de estos tipos de datos han quedado obsoletos o se han eliminado en SAP HANA Cloud, y se convertirán a la alternativa disponible más cercana al conectarse a una base de datos Cloud.

Tipos vectoriales

Los tipos de datos real_vector y half_vector se introdujeron en SAP HANA Cloud (2024Q1 y 2025Q2, respectivamente), y también requieren una versión compatible de @sap/hana-client.

Para mantener la coherencia con el soporte vectorial de PostgreSQL, TypeORM también proporciona alias:

  • vector (alias de real_vector) - almacena vectores como números flotantes de 4 bytes

  • halfvec (alias de half_vector) - almacena vectores como números flotantes de 2 bytes para mayor eficiencia de memoria

@Entity()
export class Document {
@PrimaryGeneratedColumn()
id: number

// Using SAP HANA native type names
@Column("real_vector", { length: 1536 })
embedding: Buffer | number[]

@Column("half_vector", { length: 768 })
reduced_embedding: Buffer | number[]

// Using cross-database aliases (recommended)
@Column("vector", { length: 1536 })
universal_embedding: Buffer | number[]

@Column("halfvec", { length: 768 })
universal_reduced_embedding: Buffer | number[]
}

Por defecto, el cliente devolverá un Buffer en formato fvecs/hvecs, que es más eficiente. Es posible configurar el controlador para que convierta los valores a un number[] agregando { extra: { vectorOutputType: "Array" } } a las opciones de conexión. Consulta la documentación de SAP HANA Client para más información sobre REAL_VECTOR o HALF_VECTOR.

Utiliza las funciones vectoriales apropiadas para búsquedas de similitud.