ScyllaDB Column Family REST API 完全指南:从元数据查询到运维控制与监控指标
【免费下载链接】scylladbNoSQL data store using the Seastar framework, compatible with Apache Cassandra and Amazon DynamoDB项目地址: https://gitcode.com/GitHub_Trending/sc/scylladb
ScyllaDB 在兼容 Apache Cassandra 协议之外,还内置了一套基于 Seastar HTTP Server 的 RESTful 管理 API,其中Column Family(列族)相关接口是日常运维、监控与调优的核心入口。本文以仓库中的 API 规范文档 docs/reference/api/column-family.rst 及其引用的 Swagger 规范 api/api-doc/column_family.json 为骨架,结合路由实现 api/column_family.cc,系统梳理该组接口的端点、参数、实现原理与典型用法,帮助你快速上手用 REST 方式管理 ScyllaDB 的表(Table,即传统 Cassandra 语境中的 Column Family)。
说明:本文涉及的端点、参数与行为均以当前仓库中的 Swagger 规范与源码实现为准;不同 ScyllaDB 版本之间接口细节可能存在差异,请以你所部署版本为准。
一、认识 Column Family API:文档如何被渲染出来
1.1 文档占位符与 Swagger 规范
column-family.rst 本体只有短短几行,通过 Sphinx 自定义指令.. scylladb_swagger::将完整的 Swagger 1.2 规范 api/api-doc/column_family.json 渲染为可读的 API 文档页:
:exclude-doctools: Column Family ============= .. scylladb_swagger_inc:: .. scylladb_swagger:: :spec: api/api-doc/column_family.json也就是说,这份文档的"真身"是约 3000 行的column_family.json,它按 Swagger 1.2 格式定义了resourcePath: /column_family下的全部操作(operation)、路径参数(path parameter)与查询参数(query parameter),以及 4 个响应模型:mapper、column_family_info、toppartitions_record、toppartitions_query_results。所有端点统一produces: application/json,basePath由{{Protocol}}://{{Host}}占位。
1.2 路由注册与生命周期
REST 端点由 api/column_family.cc 中的set_column_family(http_context& ctx, routes& r, sharded<replica::database>& db)统一注册(约 第400行),并在unset_column_family()中对称注销(约 第1227行)。每个端点背后都操作replica::database,大量统计类端点通过map_reduce_cf/map_reduce_cf_raw在 Seastar 多 shard 之间并行聚合数据后返回,这解释了为什么单表指标能够反映整个集群视图。
1.3 名称格式:keyspace:name 与 %3A 转义
几乎所有端点都要求路径参数name采用keyspace:column_family全限定格式。源码 parse_fully_qualified_cf_name() 的解析逻辑非常关键:
- 优先查找 URL 编码的冒号
%3A作为分隔符(兼容将ks:cf直接拼进 URL 路径的场景); - 若未找到
%3A,再查找原始冒号:; - 两者都找不到则抛出
bad_param_exception,错误信息为 "Column family name should be in keyspace:column_family format"。
因此调用时既可写/column_family/.../mykeyspace%3Amycf,也可写mykeyspace:mycf,但务必保证冒号被正确传递。
二、表枚举与元数据查询端点
以下端点无需任何参数,用于发现集群中存在哪些表:
| 端点 | 方法 | 返回 | 说明 |
|---|---|---|---|
/column_family/ | GET | array<column_family_info> | 返回所有表的ks、cf、type(恒为"ColumnFamilies") |
/column_family/name | GET | array<string> | 返回所有表的keyspace:name字符串列表 |
/column_family/name/keyspace | GET | array<string> | 返回全部 keyspace 名称列表 |
实现上,三个端点都直接遍历db.local().get_tables_metadata()或get_all_keyspaces()(见 get_column_family_name / get_column_family / get_column_family_name_keyspace 的注册代码),属于轻量级查询,适合脚本化巡检。
三、运维控制端点:压缩、GC 与数据加载
这一组端点直接对表执行运维动作,是 Column Family API 的"控制面"。
3.1 强制 Major Compaction
POST /column_family/major_compaction/{name}参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
name | path | 是 | — | keyspace:name格式 |
flush_memtables | query | 否 | true | 压缩前是否先 flush memtable;设为false可跳过自动 flush(例如已显式 flush 过表) |
consider_only_existing_data | query | 否 | false | 设为true时 flush 全部 memtable,并强制 tombstone GC 只检查参与压缩的 sstables,不检查 memtable、commitlog 与未参与压缩的 sstables |
split_output | query | 否 | — | 若为 true,则 major compaction 输出被拆分为多个 sstable |
实现细节(force_major_compaction 路由):
- 当同时满足
!flush && !consider_only_existing_data时,会以compaction::flush_mode::skip跳过 flush; - 请求会创建并等待一个
compaction::major_keyspace_compaction_task_impl任务完成,属于异步长任务,在压缩完成前请求不会返回; - 当前版本中
split_output一旦被设置会直接fail(unimplemented::cause::API),说明该参数在规范中已声明但实现尚未支持。
3.2 压缩阈值(Compaction Threshold)
三个相关端点,均以keyspace:name为路径参数:
| 端点 | 方法 | 参数 | 说明 |
|---|---|---|---|
/column_family/minimum_compaction/{name} | POST | value(long,必填) | 设置触发压缩所需的最小 sstable 排队数 |
/column_family/minimum_compaction/{name} | GET | — | 读取该最小值 |
/column_family/maximum_compaction/{name} | POST | value(long,必填) | 设置触发压缩所需的最大 sstable 排队数 |
/column_family/maximum_compaction/{name} | GET | — | 读取该最大值 |
/column_family/compaction/{name} | POST | maximum、minimum(long,必填) | 一次同时设置最大与最小阈值 |
3.3 压缩策略(Compaction Strategy)
POST /column_family/compaction_strategy/{name} (参数 class_name,必填) GET /column_family/compaction_strategy/{name}GET 返回当前压缩策略的类名。POST 将表的压缩策略切换为指定类名,实现上调用cf.set_compaction_strategy(compaction::compaction_strategy::type(strategy))(见 set_compaction_strategy_class),并在所有 shard 上同步生效。可用的策略类型定义在 compaction/compaction_strategy_type.hh 中:size_tiered、leveled、time_window、in_memory、incremental(另有null内部占位)。例如class_name=SizeTieredCompactionStrategy对应size_tiered类型。
3.4 压缩参数、CRC 与压缩比
| 端点 | 方法 | 参数 | 说明 |
|---|---|---|---|
/column_family/compression_parameters/{name} | GET | — | 读取压缩参数(当前实现返回空 map,见 get_compression_parameters) |
/column_family/compression_parameters/{name} | POST | opts(必填) | 设置压缩参数(当前为unimplemented()占位) |
/column_family/crc_check_chance/{name} | POST | check_chance(double,必填) | 设置 CRC 检查概率(当前为unimplemented()占位) |
/column_family/metrics/compression_ratio/{name} | GET | — | 返回压缩比:对所有 sstable 的压缩比求平均,未压缩的表返回 0(实现见 get_compression_ratio) |
从源码可见,压缩参数与 CRC 检查概率的"写"接口在规范中已定义但实现尚为占位,直接调用会命中unimplemented();读取压缩比则是真实可用的。
3.5 自动压缩开关(Autocompaction)
GET /column_family/autocompaction/{name} POST /column_family/autocompaction/{name} # 启用 DELETE /column_family/autocompaction/{name} # 禁用GET 通过!cf.is_auto_compaction_disabled_by_user()判断是否启用(见 get_auto_compaction)。启停操作在 shard 0 上通过autocompaction_toggle_guard(api/column_family.cc#L94-L110)加互斥保护,防止并发开关互相覆盖,然后对所有 shard 上的表逐个调用enable_auto_compaction()/disable_auto_compaction()。storage_service API 中还有对应的 keyspace 级批量开关POST /storage_service/auto_compaction等端点复用同一套set_tables_autocompaction逻辑。
3.6 Tombstone GC 开关
GET /column_family/tombstone_gc/{name} # 查询是否启用 POST /column_family/tombstone_gc/{name} # 启用 DELETE /column_family/tombstone_gc/{name} # 禁用实现与 autocompaction 类似(get_tombstone_gc 等路由),通过t.tombstone_gc_enabled()查询、t.set_tombstone_gc_enabled(bool)设置,并在所有 shard 上生效。
3.7 键估值与内置索引
| 端点 | 方法 | 说明 |
|---|---|---|
/column_family/estimate_keys/{name} | GET | 返回估算的键数量(long) |
/column_family/built_indexes/{name} | GET | 返回当前存储中已构建的列索引名称列表 |
/column_family/droppable_ratio/{name} | GET | 返回可丢弃 tombstone 与真实列(含不可丢弃 tombstone)的比值(double),用于评估压缩时 tombstone 清理收益 |
3.8 SSTable 定位与层级信息
GET /column_family/sstables/by_key/{name}?key=... GET /column_family/sstables/unleveled/{name} GET /column_family/sstables/per_level/{name} GET /column_family/load/sstable/{name} # POST- by_key:查询参数
key为分区键;复合键场景下用:分隔各列。实现调用get_sstables_by_partition_key(key)后返回包含该键的 sstable 文件名集合(见 get_sstables_for_key),并在所有 shard 上合并去重,可用于诊断某个热点分区落在哪些 sstable 中。 - unleveled:返回 L0 层 sstable 数量;未启用 Leveled 压缩时恒为 0(规范原文 "Always return 0 if Leveled compaction is not enabled")。
- per_level:返回每个层级(level)的 sstable 数量数组;非 Leveled 压缩时空数组。
- load/sstable:POST 扫描该表的 data 目录,判定哪些 sstable 应被加载并加载它们,常用于外部数据灌入场景。
3.9 Toppartitions 查询
GET /column_family/toppartitions/{name}?duration=<ms>&list_size=<n>&capacity=<n>用于统计指定时长内读写最热的分区(类似nodetool toppartitions的 REST 版本):
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
name | path | 是 | — | keyspace:name |
duration | query | 是 | — | 监控时长(毫秒) |
list_size | query | 否 | 10 | 列出多少个 Top 分区 |
capacity | query | 否 | 256 | Stream Summary 容量,决定查询处理时使用的资源量 |
注意:该路径版本duration在规范中标记为必填;而 storage_service 上还有通用的/storage_service/toppartitions端点,其duration默认1000ms、capacity默认256、list_size默认10(见 rest_toppartitions_generic),并额外支持table_filters与keyspace_filters逗号分隔过滤。返回模型toppartition_query_results包含read_cardinality、read、write_cardinality、write四个字段,其中每个 record 包含partition(分区键)、count(读写操作次数)与error(计数误差指示,来自 Stream Summary 的近似统计)。
四、Memtable 监控端点
Memtable 是写入路径的第一站,ScyllaDB 为每个 shard 维护各自的 memtable,因此这些端点分为"单表(带{name})"与"全部表(不带{name},聚合所有 shard)"两类:
| 端点(单表 / 全部) | 返回 | 说明 |
|---|---|---|
/column_family/metrics/memtable_columns_count[/{name}] | long | 活动 memtable 中的分区数量(实现使用partition_count) |
/column_family/metrics/memtable_on_heap_size[/{name}] | long | 活动 memtable 的堆内大小(当前实现返回 0) |
/column_family/metrics/memtable_off_heap_size[/{name}] | long | 活动 memtable 的堆外(off-heap)占用 |
/column_family/metrics/memtable_live_data_size[/{name}] | long | 活动 memtable 的有效数据大小 |
/column_family/metrics/all_memtables_on_heap_size[/{name}] | long | 活动与非活动 memtable 的堆内大小(当前实现返回 0) |
/column_family/metrics/all_memtables_off_heap_size[/{name}] | long | 全部 memtable 的堆外占用 |
/column_family/metrics/all_memtables_live_data_size[/{name}] | long | 全部 memtable 的有效数据大小 |
/column_family/metrics/memtable_switch_count[/{name}] | long | memtable 切换(flush 换新)次数 |
实现要点(api/column_family.cc#L427-L525):堆外大小通过active_memtable.region().occupancy().total_space()统计,有效数据大小通过used_space()统计,分区数量通过partition_count累加;"全部表"版本用map_reduce_cf跨 shard 求和。代码注释(FIXME)也指出部分端点如estimated_row_size_histogram实际统计的是分区(partition)而非行(row),阅读数据时需留意这一口径差异。
五、读写统计与延迟直方图端点
5.1 读写计数
| 端点 | 方法 | 返回 | 说明 |
|---|---|---|---|
/column_family/metrics/read/{name} | GET | long | 该表的读操作次数 |
/column_family/metrics/read/ | GET | array | 所有表各 shard 的读次数(per shard 数组) |
/column_family/metrics/write/{name} | GET | long | 该表的写操作次数 |
/column_family/metrics/write/ | GET | array | 所有表各 shard 的写次数 |
5.2 延迟统计
延迟相关端点较为丰富,覆盖累计值、直方图与滑动平均直方图:
| 端点 | 返回类型 | 说明 |
|---|---|---|
/column_family/metrics/read_latency/{name} | long | 读延迟累计值 |
/column_family/metrics/read_latency | long | 全部表读延迟累计 |
/column_family/metrics/write_latency/{name}、/column_family/metrics/write_latency | long | 写延迟累计值 |
/column_family/metrics/range_latency/{name}、/column_family/metrics/range_latency | long | 范围扫描延迟累计 |
/column_family/metrics/read_latency/histogram/{name}、/column_family/metrics/read_latency/histogram/ | histogram/ array | 读延迟直方图(规范中标记为 deprecated 名称get_read_latency_histogram_depricated) |
/column_family/metrics/write_latency/histogram/{name}、.../histogram/ | histogram/ array | 写延迟直方图 |
/column_family/metrics/read_latency/moving_average_histogram/{name}、.../moving_average_histogram/ | rate_moving_average_and_histogram/ array | 读延迟滑动平均直方图(含速率) |
/column_family/metrics/write_latency/moving_average_histogram/{name}、.../moving_average_histogram/ | rate_moving_average_and_histogram/ array | 写延迟滑动平均直方图 |
/column_family/metrics/read_latency/estimated_histogram/{name} | estimated_histogram | 读延迟估计直方图 |
/column_family/metrics/read_latency/estimated_recent_histogram/{name} | estimated_histogram | 读延迟近期估计直方图 |
/column_family/metrics/write_latency/estimated_histogram/{name}、.../estimated_recent_histogram/{name} | estimated_histogram | 写延迟估计/近期直方图 |
/column_family/metrics/range_latency/estimated_histogram/{name}、.../estimated_recent_histogram/{name} | estimated_histogram | 范围延迟估计/近期直方图 |
累计值计算方式值得注意:源码 get_cf_stats_sum 用count / 1000.0 * mean估算总和,并注释说明直方图只是实际负载的采样,估算结果以微秒为单位("gather in nano second, but reported in micro")。
5.3 CAS(Compare-And-Swap)延迟
轻量级事务(LWT)的三阶段延迟分别对应三个端点,每类都提供普通直方图与估计直方图变体:
/column_family/metrics/cas_prepare/{name}、.../cas_prepare/estimated_histogram/{name}、.../cas_prepare/estimated_recent_histogram/{name}/column_family/metrics/cas_propose/{name}及 estimated 变体/column_family/metrics/cas_commit/{name}及 estimated 变体
实现分别取stats.cas_prepare、stats.cas_accept、stats.cas_learn的直方图(api/column_family.cc#L900-L916)。
5.4 扫描与等待统计
| 端点 | 说明 |
|---|---|
/column_family/metrics/tombstone_scanned_histogram/{name} | 读路径扫描到的 tombstone 数量直方图 |
/column_family/metrics/live_scanned_histogram/{name} | 读路径扫描到的存活数据直方图 |
/column_family/metrics/sstables_per_read_histogram/{name} | 单次读涉及的 sstable 数量估计直方图 |
/column_family/metrics/col_update_time_delta_histogram/{name} | 列更新时间差直方图(当前为unimplemented()占位) |
/column_family/metrics/waiting_on_free_memtable | 等待空闲 memtable 空间的直方图(协调器级) |
/column_family/metrics/coordinator/read | 协调器读延迟直方图(集群级) |
/column_family/metrics/coordinator/scan | 协调器扫描延迟直方图(集群级) |
六、存储、缓存与过滤结构指标端点
6.1 磁盘空间与 sstable 计数
| 端点 | 返回 | 说明 |
|---|---|---|
/column_family/metrics/live_ss_table_count/{name}、.../live_ss_table_count | long | 存活 sstable 数量 |
/column_family/metrics/live_disk_space_used/{name}、.../live_disk_space_used | long | 存活 sstable 占用的磁盘空间 |
/column_family/metrics/total_disk_space_used/{name}、.../total_disk_space_used | long | 总磁盘占用(含已压缩未删除的 sstable,实现使用get_sstables_including_compacted_undeleted(),见 count_bytes_on_disk) |
/column_family/metrics/pending_flushes/{name}、.../pending_flushes | long | 待处理的 flush 数 |
/column_family/metrics/pending_compactions/{name}、.../pending_compactions | long | 待处理的压缩数(实现调用cf.estimate_pending_compactions()) |
/column_family/metrics/snapshots_size/{name}、.../true_snapshots_size | long | 快照真实大小 |
6.2 分区大小统计(min / max / mean row size)
/column_family/metrics/min_row_size/{name}、.../min_row_size/column_family/metrics/max_row_size/{name}、.../max_row_size/column_family/metrics/mean_row_size/{name}、.../mean_row_size
代码注释明确这些统计基于 sstable 元数据中的estimated_partition_size,因此统计对象是分区而非行;均值与 Cassandra 3.x 一致按整数截断(api/column_family.cc#L238-L262)。另有:
/column_family/metrics/estimated_row_size_histogram/{name}:分区大小估计直方图/column_family/metrics/estimated_row_count/{name}:估计行(分区)数/column_family/metrics/estimated_column_count_histogram/{name}:估计列数直方图
6.3 Bloom Filter 指标
| 端点 | 说明 |
|---|---|
/column_family/metrics/bloom_filter_false_positives/{name}、.../bloom_filter_false_positives | 误报累计次数 |
/column_family/metrics/recent_bloom_filter_false_positives/{name}、... | 近期误报次数 |
/column_family/metrics/bloom_filter_false_ratio/{name}、... | 误报率(double) |
/column_family/metrics/recent_bloom_filter_false_ratio/{name}、... | 近期误报率 |
/column_family/metrics/bloom_filter_disk_space_used/{name}、... | Bloom Filter 磁盘占用 |
/column_family/metrics/bloom_filter_off_heap_memory_used/{name}、... | Bloom Filter 堆外内存占用 |
误报率通过filter_get_false_positive() / (false_positive + true_positive)计算(filter_false_positive_as_ratio_holder)。
6.4 索引与缓存指标
| 端点 | 说明 |
|---|---|
/column_family/metrics/index_summary_off_heap_memory_used/{name}、... | 索引摘要(index summary)堆外内存占用,实现取sst->get_summary().memory_footprint() |
/column_family/metrics/compression_metadata_off_heap_memory_used/{name}、... | 压缩元数据堆外内存占用(当前实现返回 0,源码注明缺少 off-heap 计算) |
/column_family/metrics/key_cache_hit_rate/{name}、... | 键缓存命中率(当前为unimplemented()占位) |
/column_family/metrics/row_cache_hit/{name}、.../row_cache_hit | 行缓存命中率(滑动平均速率) |
/column_family/metrics/row_cache_miss/{name}、.../row_cache_miss | 行缓存未命中率 |
/column_family/metrics/row_cache_hit_out_of_range/{name}、... | 行缓存越界命中(当前为占位) |
/column_family/metrics/speculative_retries/{name}、... | 推测性重试计数(当前为占位) |
七、实战:用 curl 调用 Column Family API
ScyllaDB 的 REST API 默认监听在api_port: 10000、api_address: 127.0.0.1(见 conf/scylla.yaml 第 224、227 行),可通过启动参数覆盖。以下示例假设 API 地址为127.0.0.1:10000:
# 1. 列出所有表 curl -s http://127.0.0.1:10000/column_family/ # 2. 列出所有 keyspace:name curl -s http://127.0.0.1:10000/column_family/name # 3. 查询指定表是否开启自动压缩 curl -s http://127.0.0.1:10000/column_family/autocompaction/myks%3Amycf # 4. 临时关闭某表的自动压缩(大流量导入/迁移前) curl -s -X DELETE http://127.0.0.1:10000/column_family/autocompaction/myks%3Amycf # 5. 重新开启自动压缩 curl -s -X POST http://127.0.0.1:10000/column_family/autocompaction/myks%3Amycf # 6. 强制 major compaction(等待完成) curl -s -X POST "http://127.0.0.1:10000/column_family/major_compaction/myks%3Amycf" # 7. 跳过 memtable flush 的 major compaction curl -s -X POST "http://127.0.0.1:10000/column_family/major_compaction/myks%3Amycf?flush_memtables=false" # 8. 查看表当前压缩策略 curl -s http://127.0.0.1:10000/column_family/compaction_strategy/myks%3Amycf # 9. 切换为 Leveled 压缩策略 curl -s -X POST "http://127.0.0.1:10000/column_family/compaction_strategy/myks%3Amycf?class_name=LeveledCompactionStrategy" # 10. 查看读写计数与磁盘占用 curl -s http://127.0.0.1:10000/column_family/metrics/read/myks%3Amycf curl -s http://127.0.0.1:10000/column_family/metrics/write/myks%3Amycf curl -s http://127.0.0.1:10000/column_family/metrics/live_disk_space_used/myks%3Amycf curl -s http://127.0.0.1:10000/column_family/metrics/total_disk_space_used/myks%3Amycf # 11. 查看 Bloom Filter 误报率 curl -s http://127.0.0.1:10000/column_family/metrics/bloom_filter_false_ratio/myks%3Amycf # 12. 定位包含某分区键的 sstable 文件 curl -s "http://127.0.0.1:10000/column_family/sstables/by_key/myks%3Amycf?key=some_partition_key" # 13. 运行 5 秒 toppartitions 查询,列出前 20 个热点分区 curl -s "http://127.0.0.1:10000/column_family/toppartitions/myks%3Amycf?duration=5000&list_size=20"几点使用提醒:
- URL 编码:
keyspace:name中的冒号建议编码为%3A,避免与 URL 路径语义冲突; - 长任务:
major_compaction是同步等待的异步任务,压缩耗时较长时 curl 会长时间挂起,生产环境建议在运维窗口执行或配合超时使用; - 占位端点:
compression_parameters(POST)、crc_check_chance、key_cache_hit_rate、speculative_retries、col_update_time_delta_histogram、split_output等在当前版本中仍是unimplemented()占位,调用前应先在目标版本上验证; - 口径差异:
estimated_row_count、min/max/mean_row_size等实际统计的是分区,read_latency累计值是基于直方图采样的估算值,解读指标时需结合代码注释理解。
八、与 storage_service 端点的关系
api/column_family.cc 中同时注册了部分storage_service命名空间的端点,它们复用了相同的底层实现,但作用域不同:
POST/DELETE /storage_service/auto_compaction:按 keyspace(可选指定表列表)批量启停自动压缩;POST/DELETE /storage_service/tombstone_gc:按 keyspace 批量启停 tombstone GC;GET /storage_service/toppartitions:支持table_filters、keyspace_filters过滤的通用 toppartitions 查询;GET /storage_service/load与/storage_service/metrics/load:基于live_disk_space_used.on_disk的集群负载统计;GET /storage_service/keyspaces:按type(user / non_local_strategy / 全部)与replication(all / tablets)过滤 keyspace 列表;POST /storage_service/flush、POST /storage_service/keyspace_flush:全库 / 指定 keyspace 的 flush;POST /system/drop_sstable_caches:全库丢弃 sstable 缓存。
这些端点与/column_family/前缀的接口互为补充:前者面向 keyspace/集群维度批量操作,后者面向单表精细控制。
九、总结与速查
Column Family REST API 可以归纳为四类能力:
- 发现:
/column_family/、/column_family/name、/column_family/name/keyspace,快速枚举表与 keyspace; - 控制:major compaction、压缩阈值、压缩策略、autocompaction、tombstone GC、sstable 加载,覆盖日常运维动作;
- 诊断:sstables by_key、per_level、unleveled、droppable_ratio、toppartitions,定位热点与存储布局问题;
- 监控:memtable、读写计数、延迟直方图、CAS 三阶段延迟、磁盘占用、Bloom Filter、行缓存等数十个指标端点。
其文档骨架是 docs/reference/api/column-family.rst 指向的 api/api-doc/column_family.json Swagger 规范,行为实现在 api/column_family.cc。理解规范中声明的参数与源码中实际实现状态的差异(尤其是标记为unimplemented()或返回 0 的占位端点),是正确使用这套 API 的关键前提。通过 REST 方式,你可以把 ScyllaDB 的表级运维与监控无缝接入现有的自动化脚本、监控大盘与巡检系统中。
【免费下载链接】scylladbNoSQL data store using the Seastar framework, compatible with Apache Cassandra and Amazon DynamoDB项目地址: https://gitcode.com/GitHub_Trending/sc/scylladb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考