开发者社区> 游骐> 正文

5分钟入门Lindorm SearchIndex

简介: SearchIndex是Lindorm宽表的二级索引,主要用来帮助业务实现快速的检索分析。本篇文章介绍如何通过简单的SQL接口操作SearchIndex。
+关注继续查看

一、引言

云原生多模数据库Lindorm,支持海量数据的低成本存储和弹性按需付费,提供宽表、时序、文件等多种数据模型,兼容HBase、Cassandra、OpenTSDB等多种开源标准接口,是互联网、IoT、车联网、广告、社交、监控、游戏、风控等场景的首选数据库,也是为阿里巴巴核心业务提供关键支撑的数据库之一。关于Lindorm的更多介绍,可以参考 云原生多模数据库Lindorm

Lindorm对外提供统一的标准SQL入口,可以让开发人员快速上手,轻松运维海量数据。SearchIndex是Lindorm宽表的二级索引,主要用来帮助业务实现快速的检索分析。本篇文章介绍如何通过简单的SQL接口操作SearchIndex。

二、SQL操作SearchIndex

开通全文索引

当您购买Lindorm宽表引擎后,可以在数据库实例控制台开通“全文索引”功能,如下图:

undefined

下载SQL工具

进入数据库实例控制台,在“数据库连接”中下载SQL工具:Lindorm-cli。同时,为了能够让本机可以访问集群,需要“开通外网地址”,并将本机ip加入到白名单中。

undefined

undefined

连接集群

将上一步下载的Lindorm-cli在本机解压后,直接执行如下命令:

./lindorm-cli -url jdbc:lindorm:table:url=http://ld-xxxx-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30060 -username xxx -password xxx

其中的公网连接地址、用户名和密码可以在数据库控制台“数据库连接”中获取,参见上个章节中的截图。
备注:需要提前配置好白名单

执行SQL语句

  • 创建数据库
create schema testSchema;
  • 创建表
use testSchema;
// 创建一个表,主键为id,非主键为name,age,address
create table if not exists testTable(id varchar, name varchar, age bigint, address varchar, constraint primary key (id));
  • 创建SearchIndex
// 对表的非主键列建索引,其中address是一个分词字段,使用IK分词器
create search index if not exists testIdx on testTable(name,age,address(type=text,analyzer=ik)) with  (indexState=ACTIVE);
  • 写入测试数据
upsert into  testTable(id,name,age,address) values ('1', '张三', 25, '北京市朝阳区绿地中心c座');
upsert into  testTable(id,name,age,address) values ('2', '李四', 30, '上科路张江人工智能岛2号楼');
upsert into  testTable(id,name,age,address) values ('3', '王五', 28, '深圳市南山区科苑南路3331号');
upsert into  testTable(id,name,age,address) values ('4', '赵六', 36, '杭州市余杭区文一西路969号');
  • 查询
select name  from  testtable where address = '朝阳区' limit 10;

select *  from  testtable where age > 30 and address = '杭州' limit 10;

select name  from  testtable where name = '王五' limit 10;

对于非主键的查询,一般会消耗非常多的系统资源,为了系统稳定,这样的查询默认会被拒绝掉。如果基于这些非主键创建了二级索引,则可以高效的执行。

更多SQL语法,可参考语法手册

三、总结

SearchIndex是Lindorm宽表的二级索引,当您想加速检索分析的速度时,只需要对表创建索引即可,写入的数据会自动构建索引,查询时服务端会自动路由到索引,整个使用过程对业务代码0侵入。

SearchIndex在阿里内部以及公有云上有着丰富的应用场景,如果您在面对订单查询、物流轨迹、大数据画像、车联网等场景的业务架构设计,可以尝试将Lindorm SearchIndex应用到架构中,将会带来开发和存储成本的极大收益。

Lindorm的案例汇总,可进一步参考解决方案

欢迎扫码加入钉钉群,相关的技术专家将为您解答所有疑惑。

undefined

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14208 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
18586 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27734 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
12973 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
21936 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
15295 0
五分钟看懂UML类图与类的关系详解
在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。
2961 0
+关注
6
文章
0
问答
来源圈子
更多
相关文档: 云原生多模数据库Lindorm
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载