Zum Hauptinhalt springen

SAP HANA

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Installation

TypeORM nutzt @sap/hana-client zum Aufbau der Datenbankverbindung:

npm install @sap/hana-client

Bei TypeORM 0.3.25 oder älter wird zusätzlich hdb-pool für das Pool-Management benötigt.

Datenquellen-Optionen

Allgemeine Datenquellen-Optionen finden Sie unter Data Source Options.

  • host - Der Hostname des SAP HANA-Servers. Zum Beispiel "localhost".

  • port - Die Portnummer des SAP HANA-Servers. Zum Beispiel 30015.

  • username - Der Benutzername für die Verbindung zum SAP HANA-Server. Zum Beispiel "SYSTEM".

  • password - Das Passwort für die Verbindung zum SAP HANA-Server. Zum Beispiel "password".

  • database - Der Name der Datenbank, zu der verbunden werden soll. Zum Beispiel "HXE".

  • encrypt - Legt fest, ob die Verbindung verschlüsselt werden soll. Zum Beispiel true.

  • sslValidateCertificate - Legt fest, ob das SSL-Zertifikat validiert werden soll. Zum Beispiel true.

  • key, cert und ca - Privater Schlüssel, öffentliches Zertifikat und Zertifizierungsstelle für die verschlüsselte Verbindung.

  • pool — Konfigurationsobjekt für den Verbindungspool:

    • maxConnectedOrPooled (number) — Maximale aktive oder gepoolte Verbindungen im Pool (Standard: 10).
    • maxPooledIdleTime (Sekunden) — Zeit bis zum Schließen inaktiver Verbindungen (Standard: 30).
    • maxWaitTimeoutIfPoolExhausted (Millisekunden) - Wartezeit bei erschöpftem Pool (Standard: 0, kein Warten). Erfordert @sap/hana-client Version 2.27 oder höher.
    • pingCheck (boolean) — Prüfung der Verbindungen vor Verwendung (Standard: false).
    • poolCapacity (number) — Maximale Anzahl verfügbar gehaltener Verbindungen (Standard: keine Begrenzung).

Weitere Details sowie die extra-Eigenschaften finden Sie in der offiziellen SAP HANA Client-Dokumentation: Node.js Connection Properties.

Spaltentypen

SAP HANA 2.0 und SAP HANA Cloud unterstützen leicht unterschiedliche Datentypen. Konsultieren Sie die SAP-Hilfeseiten:

Der SapDriver von TypeORM unterstützt 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 und half_vector. Einige dieser Typen sind in SAP HANA Cloud veraltet oder entfernt und werden dort in die nächstgelegene verfügbare Alternative konvertiert.

Vektortypen

Die Datentypen real_vector und half_vector wurden in SAP HANA Cloud eingeführt (jeweils 2024Q1 und 2025Q2) und erfordern ebenfalls eine unterstützte Version von @sap/hana-client.

Für Konsistenz mit der Vektorunterstützung von PostgreSQL bietet TypeORM zusätzlich Aliase an:

  • vector (Alias für real_vector) - speichert Vektoren als 4-Byte-Floats

  • halfvec (Alias für half_vector) - speichert Vektoren als 2-Byte-Floats für höhere Speichereffizienz

@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[]
}

Standardmäßig gibt der Client einen Buffer im fvecs- bzw. hvecs-Format zurück, was effizienter ist. Durch Hinzufügen von { extra: { vectorOutputType: "Array" } } zu den Verbindungsoptionen kann der Treiber die Werte in ein number[] konvertieren. Weitere Details finden Sie in der SAP HANA Client-Dokumentation zu REAL_VECTOR und HALF_VECTOR.

Verwenden Sie die passenden Vektorfunktionen für Ähnlichkeitssuchen.