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 连接属性。
列类型
SAP HANA 2.0 与 SAP HANA Cloud 支持的数据类型略有差异,详细信息请查阅 SAP 帮助文档:
TypeORM 的 SapDriver 支持 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[]
}
默认情况下,客户端会以高效的 fvecs/hvecs 格式返回 Buffer 对象。如需将值转换为 number[] 数组,可在连接选项中添加 { extra: { vectorOutputType: "Array" } }。有关 REAL_VECTOR 和 HALF_VECTOR 的详细信息,请参阅 SAP HANA Client 文档。
进行相似性搜索时请使用相应的向量函数。