SuperAPI AI 工具集

neki

数据与分析

查看项目

更新于 10-16 08:06

技能介绍

用途:Neki 是 PlanetScale 提供的分布式(分片)Postgres,用于在大量分片之上使用标准 Postgres 客户端、驱动和 ORM 访问数据。每个分片都是真实的 Postgres,Neki 在其前面放置无状态路由器,并配合 sidecar 与控制平面(拓扑服务、admin、Replicator)完成路由、协调与运维,全部通过一个 5432 端口的 Postgres 连接串暴露,使用 sslmode=verify-full;没有独立的连接池端口(无 6432/PgBouncer),池化在 Neki 内部完成。

主要能力:数据拓扑由 JSON 描述数据库、分片、分片组(键范围)与分片索引(xxhash、modulo、range)决定数据位置与查询路由。支持参考表与 GSI,用于复制小型共享数据或按非分片键定位所属行。新数据库默认不分片,之后可分片;即使小型非分片库也可获得在线 DDL、零停机操作、连接池与在线版本升级。路由器支持单分片与 scatter 查询、读目标选择、直接分片定位;会话设置包括 __neki.target、__neki.fanout、__neki.tx_mode、__neki.shard 及 __neki.replica_recency/_locality/_affinity,需在 BEGIN 前设置。

使用方式:连接使用标准 Postgres 客户端在 5432 端口加 sslmode=verify-full。配置文件的 Postgres 参数作用于该配置文件上的每个分片;通过路由器发送的 VACUUM、ANALYZE、VACUUM FULL 会在所有分片执行,即使设置了 __neki.shard。分片层面的 VACUUM、WAL、内存、存储等仍是普通 Postgres,应使用 postgres 技能。

限制:Platform Preview(Beta,无 SLA),预览期不支持单实例、非 HA 配置。跨分片读不共享快照,跨分片写非原子,预览期不支持原子分布式事务,事务应保持单分片。其他 __neki.* 名称(如拼写错误的 __neki.transaction_mode)会被静默当作自定义参数接受,SET 与 SHOW 均成功但不生效,需用真实名称的 SHOW 确认。文档参考:https://planetscale.com/docs/neki 与 https://neki.dev/。