Lindorm入门

一、基本使用

下载工具地址:https://help.aliyun.com/document_detail/261163.html

1.连接数据库

lindorm-cli -url <jdbc url> -username <用户名> -password <密码>

2.创建库表

create database test; 
use test; 
create table tb (id varchar, name varchar, address varchar,  primary key(id, name)) ; 

3.插入数据

upsert into tb (id, name, address) values ('001', 'jack',  'hz'); 

4.查询数据

select * from tb;

二、索引

1.二级索引

--  创建主表
create table shop_item_relation (
    shop_id varchar,
    item_id varchar,
    status varchar,
constraint pk primary key(shop_id, item_id)) ; 

-- 对第二列主键建索引,冗余所有列
create index idxs1 on shop_item_relation (item_id) 'INDEX_COVERED_TYPE'='COVERED_ALL_COLUMNS_IN_SCHEMA';   

-- 基于索引表进行查询,因为对item_id构建索引,当指定item_id 进行查询会对应命中索引表
select * from shop_item_relation where item_id = 'item2';  

2.搜索索引

  • 创建搜索索引,并使用ik分词器
CREATE SEARCH INDEX idx ON dt(c1, c2, c3(type=text, analyzer=ik));
  • 多维组合查询。c1, c2, c3列的随机组合,快速返回查询数据
SELECT * FROM dt WHERE c1=?;
SELECT * FROM dt WHERE c2=? AND c3=?;
  • 分词查询。c3列为分词字段,可以通过等值查询相关性高的结果集。例如查询c3列中包含阿里巴巴、阿里或者巴巴的数据。
SELECT * FROM dt WHERE c3='阿里巴巴';
  • 聚合分析。支持COUNT、SUM、MIN、MAX、AVG等聚合函数。
  • 排序分页。支持任意索引列的排序(ORDER BY语句)。

搜索索引工作原理:

  • 数据写入的流程如下:
    1.数据写入至Lindorm宽表引擎,原始数据记录在宽表WAL中,写入结果返回客户端。
    2.数据同步服务LTS实时监听宽表WAL,筛选出宽表WAL中带有SearchIndex的表,并将筛选的数据写入至搜索引擎。
    3.搜索引擎收到数据后实时构建倒排索引。

  • 数据查询的流程如下:
    1.查询操作发送至Lindorm宽表引擎,计算层自动进行查询编译,基于优化器选择合适的SearchIndex。
    2.查询重定向至搜索引擎,查询满足条件的数据。
    3.汇总搜索引擎的数据,如果需要会自动回查宽表中的数据进行补齐,最后查询结果返回客户端。

总结:

如果您当前的业务架构中使用了HBase、MySQL或者MongoDB,同时也在使用搜索引擎Elasticsearch或者Solr。那么可以通过SearchIndex的一体化解决方案替换多个系统组合的架构。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值