Vai al contenuto principale

SAP HANA

Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

Installazione

TypeORM utilizza @sap/hana-client per stabilire la connessione al database:

npm install @sap/hana-client

Se stai utilizzando TypeORM 0.3.25 o versioni precedenti, è richiesto anche hdb-pool per gestire il pool.

Opzioni Data Source

Consulta Opzioni del Data Source per le opzioni comuni dei data source.

  • host - Il nome host del server SAP HANA. Ad esempio, "localhost".

  • port - Il numero di porta del server SAP HANA. Ad esempio, 30015.

  • username - Il nome utente per connettersi al server SAP HANA. Ad esempio, "SYSTEM".

  • password - La password per connettersi al server SAP HANA. Ad esempio, "password".

  • database - Il nome del database a cui connettersi. Ad esempio, "HXE".

  • encrypt - Indica se cifrare la connessione. Ad esempio, true.

  • sslValidateCertificate - Indica se validare il certificato SSL. Ad esempio, true.

  • key, cert e ca - Chiave privata, certificato pubblico e autorità di certificazione per la connessione cifrata.

  • pool — Oggetto di configurazione del pool di connessioni:

    • maxConnectedOrPooled (number) — Numero massimo di connessioni attive o inattive nel pool (predefinito: 10).
    • maxPooledIdleTime (secondi) — Tempo prima che una connessione inattiva venga chiusa (predefinito: 30).
    • maxWaitTimeoutIfPoolExhausted (millisecondi) - Tempo di attesa per una connessione disponibile (predefinito: 0, nessuna attesa). Richiede @sap/hana-client versione 2.27 o successiva.
    • pingCheck (boolean) — Indica se validare le connessioni prima dell'uso (predefinito: false).
    • poolCapacity (number) — Numero massimo di connessioni mantenute disponibili (predefinito: nessun limite).

Consulta la documentazione ufficiale di SAP HANA Client per maggiori dettagli e le proprietà extra: Node.js Connection Properties.

Tipi di Colonna

SAP HANA 2.0 e SAP HANA Cloud supportano tipi di dati leggermente diversi. Consulta le pagine di assistenza SAP per maggiori informazioni:

Il SapDriver di TypeORM supporta 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 e half_vector. Alcuni di questi tipi di dati sono stati deprecati o rimossi in SAP HANA Cloud e verranno convertiti nell'alternativa disponibile più vicina quando ci si connette a un database Cloud.

Tipi Vector

I tipi di dati real_vector e half_vector sono stati introdotti in SAP HANA Cloud (rispettivamente nel 2024Q1 e 2025Q2) e richiedono anche una versione supportata di @sap/hana-client.

Per coerenza con il supporto ai vettori di PostgreSQL, TypeORM fornisce anche degli alias:

  • vector (alias per real_vector) - memorizza i vettori come float a 4 byte

  • halfvec (alias per half_vector) - memorizza i vettori come float a 2 byte per efficienza di 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[]
}

Per impostazione predefinita, il client restituirà un Buffer nel formato fvecs/hvecs, che è più efficiente. È possibile configurare il driver per convertire i valori in un number[] aggiungendo { extra: { vectorOutputType: "Array" } } alle opzioni di connessione. Consulta la documentazione di SAP HANA Client per maggiori dettagli su REAL_VECTOR o HALF_VECTOR.

Utilizza le opportune funzioni vettoriali per le ricerche di similarità.