5分钟入门Lindorm SearchIndex

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Tair(兼容Redis),内存型 2GB
简介: 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

目录
相关文章
|
SQL 监控 关系型数据库
ClickHouse快速入门 2
ClickHouse快速入门
287 0
|
关系型数据库 分布式数据库 数据库
PolarDB 入门
PolarDB 入门
156 0
|
5月前
|
存储 SQL 关系型数据库
StarRocks简介
【5月更文挑战第4天】StarRocks是Linux基金会的开源MPP数据库,提供MySQL协议兼容性,支持标准SQL,用于快速数据分析。它适用于OLAP、实时数仓、高并发查询等场景,具有无外部依赖、高可用和易运维的特点。StarRocks支持多种BI工具,如Tableau,且可构建各种数据模型。其系统架构包括Frontend(FE)和Backend(BE),提供存算一体和存算分离两种模式。此外,StarRocks支持四种表类型和多种数据类型,满足不同业务需求。
745 0
StarRocks简介
|
4月前
|
SQL 存储 JSON
StarRocks进阶
【6月更文挑战第1天】StarRocks支持四种表类型:明细表、聚合表、更新表(正被主键表取代)和主键表。建表后类型不可修改,排序键需先于其他列定义,不支持BITMAP和HLL类型。主键表具有唯一非空约束的主键,适合实时更新和高效查询。明细表用于追加新数据,不支持修改。聚合表用于聚合统计,排序键需唯一。表引擎默认为OLAP,也可连接到外部数据源如MySQL、Hive等。数据类型包括数值、字符串、日期和半结构化类型如JSON。此外,还支持多种函数、DDL操作和HTTP SQL API。
248 0
|
5月前
|
SQL 关系型数据库 分布式数据库
PolarDB分布式版2023年度干货合集
PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。本文整理了PolarDB-X干货合集内容,希望对你学习和深入了解PolarDB-X有很大帮助。
|
存储 SQL 关系型数据库
ClickHouse快速入门 1
ClickHouse快速入门
138 0
|
关系型数据库 MySQL 分布式数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(6)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(6)
215 0
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(6)
|
SQL Kubernetes 关系型数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(5)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(5)
182 0
|
Java 分布式数据库 数据库
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(4)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(4)
163 0
|
SQL 关系型数据库 MySQL
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(3)
《PolarDB-X开源分布式数据库实战进阶》——PolarDB-X数据导入导出(3)
168 0