SuperAPI AI 工具集

scylladb

数据与分析

查看项目

更新于 10-15 20:31

技能介绍

用途:该技能面向 ScyllaDB 的数据建模与操作,核心原则是“按查询建模”(query-first),而非按 ER 图设计。分区键决定数据分布与热点,聚簇键决定分区内顺序;ScyllaDB 不是带 join 的关系型 SQL。

主要能力:覆盖 CQL 的 DDL/DML、keyspace(RF 与复制策略)、表(分区键+聚簇+负载)、物化视图/额外表(用于替代访问模式)。规则包括:生产查询必须限制分区键,聚簇列按前缀使用;热路径避免 ALLOW FILTERING;需要多种读取模式时反规范化并重复写入;一致性级别需权衡延迟与持久性/可见性;TTL 与删除会产生 tombstone,需规划 compaction 与分区大小。

使用方式:示例建表语句为 CREATE KEYSPACE IF NOT EXISTS app WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': 3}; 以及 CREATE TABLE app.messages_by_room (... PRIMARY KEY ((room_id), sent_at, message_id)) WITH CLUSTERING ORDER BY (sent_at DESC, message_id ASC);。Go 集成使用 golang-scylladb,本技能聚焦与语言无关的数据模型与操作。

适用场景:设计消息、时序等按访问模式组织的表;处理分区大小与热点(按时间分桶、逻辑分片);选择一致性级别(LOCAL_QUORUM、LOCAL_ONE 等);分页与多分区扇出;TTL 与 tombstone 管理。

限制与反模式:避免 3NF 建模后在应用层“发现 join”、无分区键查询、热路径 ALLOW FILTERING、单租户巨型分区、高基数二级索引、滥用 LWT、把 Scylla 当队列而不控制 tombstone/TTL。计数器类型有局限,优先 append/rollup。完成标准:每条生产查询对应一张表/访问模式,分区与聚簇键有依据,一致性级别按操作记录,分区有合理上界或分桶,设计考虑 tombstone/TTL,关键路径无 ALLOW FILTERING。