实时表
最后更新于
最后更新于
实时表 是 Manticore 中的主要表类型。它允许您添加、更新和删除文档,并且可以立即看到这些更改。您可以通过配置文件设置实时表,或使用 CREATE
、UPDATE
、DELETE
或 ALTER
等命令来操作。
在内部,实时表由一个或多个称为 chunk(块) 的 组成。chunk 分为两种类型:
多个 磁盘块 - 这些块保存到磁盘中,其结构类似于 。
一个 内存块 - 存储在内存中,收集所有的更改。
内存块的大小由 设置控制。一旦达到此限制,内存块将被传输到磁盘作为磁盘块。如果磁盘块过多,Manticore 会 以提高性能。
您可以通过两种方式创建新的实时表:使用 CREATE TABLE
命令,或通过 HTTP JSON API 的 。
您可以通过 SQL 和 HTTP 协议使用此命令:
通过 SQL 协议创建实时表:
通过 HTTP 使用 JSON 创建实时表:
通过PHP客户端创建实时表:
Python:
Javascript:
Java:
C#:
通过配置文件创建实时表:
您还可以通过 _mapping
端点创建一个新表。此端点允许您定义类似 Elasticsearch 的表结构,并将其转换为 Manticore 表。
请求的主体必须具有以下结构:
创建表时,Elasticsearch 数据类型将根据以下规则映射到 Manticore 类型:
aggregate_metric => json
binary => string
boolean => bool
byte => int
completion => string
date => timestamp
date_nanos => bigint
date_range => json
dense_vector => json
flattened => json
flat_object => json
float => float
float_range => json
geo_point => json
geo_shape => json
half_float => float
histogram => json
integer => int
integer_range => json
ip => string
ip_range => json
keyword => string
knn_vector => float_vector
long => bigint
long_range => json
match_only_text => text
object => json
point => json
scaled_float => float
search_as_you_type => text
shape => json
short => int
text => text
unsigned_long => int
version => string
通过 _mapping
端点创建一个实时表:
你可以创建一个实时表的副本,包含或不包含数据。如果表很大,复制数据可能会花费一些时间。复制操作是同步模式的,但如果连接中断,它会在后台继续执行。
示例:
示例 (WITH DATA):
使用 ALTER
命令在线更改表结构,如在线更新表结构 中所述。
下表列出了实时表中不同文件扩展名及其对应的描述:
.lock
锁文件,确保同一时间内只有一个进程可以访问该表。
.ram
表的RAM块,存储在内存中,用作变更的累加器。
.meta
实时表的头文件,定义了表的结构和设置。
.*.sp*
磁盘块,存储在磁盘上,格式与普通表相同。当RAM块大小超过 rt_mem_limit
时,创建这些文件。
注意:_mapping
API 需要 。如果它不起作用,请确保 Buddy 已安装。
注意:复制表需要 。如果无法正常工作,请确保 Buddy 已安装。
。
通过 过程更新属性和全文字段。
。
。
按照 的说明,在配置文件中定义表。
使用 功能自动分配ID。
使用 功能导入数据。
连接到 以便从外部存储轻松索引数据。
更新 ,因为它由实时表自动管理。
有关磁盘块结构的更多信息,请参考 。