跳至主内容区

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

  • keycertca - 加密连接所需的私钥、公钥证书及证书颁发机构。

  • pool — 连接池配置对象:

    • maxConnectedOrPooled (数字) — 连接池中活动或空闲连接的最大数量(默认值:10)。
    • maxPooledIdleTime (秒) — 空闲连接关闭前的等待时间(默认值:30)。
    • maxWaitTimeoutIfPoolExhausted (毫秒) - 连接耗尽时等待连接可用的最长时间(默认值:0,不等待)。要求 @sap/hana-client 版本为 2.27 或更高。
    • pingCheck (布尔值) — 使用前是否验证连接(默认值:false)。
    • poolCapacity (数字) — 保持可用的最大连接数(默认值:无限制)。

更多配置细节及 extra 属性请参阅 SAP HANA Client 官方文档:Node.js 连接属性

列类型

SAP HANA 2.0 与 SAP HANA Cloud 支持的数据类型略有差异,详细信息请查阅 SAP 帮助文档:

TypeORM 的 SapDriver 支持 tinyintsmallintintegerbigintsmalldecimaldecimalrealdoubledatetimeseconddatetimestampbooleancharncharvarcharnvarchartextalphanumshorttextarrayvarbinaryblobclobnclobst_geometryst_pointreal_vectorhalf_vector。其中部分类型在 SAP HANA Cloud 中已被弃用或移除,连接云端数据库时将自动转换为最接近的可用类型。

向量类型

real_vectorhalf_vector 数据类型分别于 SAP HANA Cloud 2024Q1 和 2025Q2 版本引入,同时要求使用受支持的 @sap/hana-client 客户端版本。

为保持与 PostgreSQL 向量支持的兼容性,TypeORM 提供了以下别名:

  • vectorreal_vector 的别名)- 将向量存储为 4 字节浮点数

  • halfvechalf_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[]
}

默认情况下,客户端会以高效的 fvecs/hvecs 格式返回 Buffer 对象。如需将值转换为 number[] 数组,可在连接选项中添加 { extra: { vectorOutputType: "Array" } }。有关 REAL_VECTORHALF_VECTOR 的详细信息,请参阅 SAP HANA Client 文档。

进行相似性搜索时请使用相应的向量函数