一、直写表与全量表
1、直写表
•数据直接在searcher上处理并构建成索引,不支持全量数据源,数据必须通过api推送生效
•表创建简单
•时效性高
•不支持全量,不支持修改表结构
2、全量表
•独立的索引构建流程,支持全量数据源,实时数据推送到swift
•表创建流程较长,必须经过全量索引构建
•时效性较直写表低,但也可以在1秒内生效
•支持全量,海量数据可以快速导入
•支持修改表结构
•索引构建不影响在线,更加稳定
•离线资源独立控制,可以支持更高的数据更新
3、直写表和全量表主要的区别
- 直写表不是一个包含独立的索引构建的流程,其数据直接在searcher处理并构建成索引,不支持全量数据源,必须通过API推送来生效。它的表创建较为简单,由于数据都在searcher节点上处理,因此其时效性更。但由于其不支持全量数据,无法修改索引表的结构以及索引的分片。
- 全量表有独立的索引构建流程,支持配置全量的数据源,其实时数据需要推送到swift上生效。它的表创建的流程较复杂,相较于直写表通过全量索引构建,其时效性较直写表较低,但也足以保证在秒以内成效。
- 全量表支持全量数据导入,其数据可以快速导入到系统中。通过全量的方式,它可以修改表的结构以及表的分片数。由于其有独立的索引构建流程,因此其表的构建不影响在线的数据。因此,全量表可以使在线系统更加稳定,同时离线资源可以独立控制,通过扩缩资源可以支持更高的数据更新。
二、创建直写表
所有命令都在容器内部执行,因此,首先需要创建可以执行命令的Hape的容器。在容器创建成功后,通过SSH命令进入容器。在创建表前,要先启动havenask系统,启动成功后,即可通过create table命令直接创建表。
在create table命令中,需要指定表的名称、表的分片数以及表需要的schema。大家可以通过示例的schema直接创建一张测试表。在执行完成后,可以通过gs命令查看表的状态,当表处于ready状态后,即可直接在表内写入数据。写入完成后,可以通过查询语句直接查询该段数据。
- 启动havenask:
/ha3_install/hapestarthavenask
- 创建直写表:
/ha3_install/hape create -t in0 -p 1 -s /ha3_install/example/cases/normal/in0_schema.json
- 获取集群状态:
/ha3_install/hape gs havenask
- 操作数据
/ha3_install/sql_query.py --query "insert into in0
(createtime,hits, id,title,subject)values(1,2,4,'测试,‘测试’)”
/ha3_install/sql_query.py --query " select * from in0"
三、创建全量表
- 启动havenask:
/ha3_install/hape start havenask
- 创建直写表:
/ha3_install/hape create -t in1 -p 1 -s/ha3_install/example/cases/normal/in0_schema.json -f
/ha3_install/example/cases/normal/test.data
- 获取集群状态:
/ha3_install/hape gs bs
/ha3_install/hape gs havenask
- 操作数据:
/ha3_install/sql_query.py --query " select* from in1"
四、结尾
具体Havenask创建表的演示视频可以通过链接查看,欢迎各位开发者使用。
关注我们:
Havenask 开源官网:https://havenask.net/
Havenask-Github 开源项目地址:https://github.com/alibaba/havenask
阿里云 OpenSearch 官网:https://www.aliyun.com/product/opensearch
钉钉扫码加入 Havenask 开源官方技术交流群: