Перейти к основному содержанию

SAP HANA

Неофициальный Бета-перевод

Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →

Установка

TypeORM использует @sap/hana-client для установки соединения с базой данных:

npm install @sap/hana-client

Если вы используете TypeORM 0.3.25 или более раннюю версию, для управления пулом также требуется hdb-pool.

Параметры источника данных

См. Параметры источника данных для общих опций источника данных.

  • host — Имя хоста сервера SAP HANA. Например, "localhost".

  • port — Номер порта сервера SAP HANA. Например, 30015.

  • username — Имя пользователя для подключения к серверу SAP HANA. Например, "SYSTEM".

  • password — Пароль для подключения к серверу SAP HANA. Например, "password".

  • database — Имя базы данных для подключения. Например, "HXE".

  • encrypt — Определяет, нужно ли шифровать соединение. Например, true.

  • sslValidateCertificate — Определяет, нужно ли проверять SSL-сертификат. Например, true.

  • key, cert и ca — Закрытый ключ, публичный сертификат и центр сертификации для зашифрованного соединения.

  • pool — Объект конфигурации пула соединений:

    • maxConnectedOrPooled (число) — Максимум активных или простаивающих соединений в пуле (по умолчанию: 10).
    • maxPooledIdleTime (секунды) — Время до закрытия простаивающего соединения (по умолчанию: 30).
    • maxWaitTimeoutIfPoolExhausted (миллисекунды) — Время ожидания доступного соединения (по умолчанию: 0, без ожидания). Требуется @sap/hana-client версии 2.27 или выше.
    • pingCheck (логическое) — Проверять соединения перед использованием (по умолчанию: false).
    • poolCapacity (число) — Максимальное количество соединений в доступном состоянии (по умолчанию: без ограничений).

Подробнее о дополнительных свойствах (extra) см. в официальной документации SAP HANA Client: Node.js Connection Properties.

Типы столбцов

SAP HANA 2.0 и SAP HANA Cloud поддерживают немного разные типы данных. Для получения дополнительной информации обратитесь к справочным страницам SAP:

SapDriver из TypeORM поддерживает типы данных 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 и half_vector. Некоторые из этих типов устарели или удалены в SAP HANA Cloud и автоматически преобразуются в ближайший доступный аналог при подключении к облачной базе данных.

Векторные типы

Типы данных real_vector и half_vector были представлены в SAP HANA Cloud (в 2024Q1 и 2025Q2 соответственно) и требуют поддерживаемую версию @sap/hana-client.

Для согласованности с поддержкой векторов в PostgreSQL, TypeORM также предоставляет псевдонимы:

  • vector (псевдоним для real_vector) — хранит векторы как числа с плавающей запятой размером 4 байта

  • halfvec (псевдоним для half_vector) — хранит векторы как числа с плавающей запятой размером 2 байта для экономии памяти

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

По умолчанию клиент возвращает Buffer в формате fvecs/hvecs, что более эффективно. Можно настроить преобразование значений в number[] с помощью добавления { extra: { vectorOutputType: "Array" } } в параметры соединения. Дополнительные сведения см. в документации SAP HANA Client о REAL_VECTOR и HALF_VECTOR.

Для поиска схожести используйте соответствующие векторные функции.