云服务器内容精选

  • Local索引分区重建/不可用 使用ALTER INDEX PARTITION可以设置Local索引分区是否可用。 使用ALTER TABLE MODIFY PARTITION可以设置分区表上指定分区的所有索引分区是否可用。这个语法如果作用于二级分区表的一级分区,数据库会将这个一级分区下的所有二级分区均进行设置。 使用ALTER TABLE MODIFY SUBPARTITION可以设置二级分区表上指定二级分区的所有索引分区是否可用。 例如,假设分区表range_sales上存在两张Local索引range_sales_idx1和range_sales_idx2,假设其在分区date_202001上对应的索引分区名分别为range_sales_idx1_part1和range_sales_idx2_part1。 下面给出了维护分区表分区索引的语法: 可以通过如下命令设置分区date_202001上的所有索引分区均不可用。 ALTER TABLE range_sales MODIFY PARTITION date_202001 UNUSABLE LOCAL INDEXES; 或者通过如下命令单独设置分区date_202001上的索引分区range_sales_idx1_part1不可用。 ALTER INDEX range_sales_idx1 MODIFY PARTITION range_sales_idx1_part1 UNUSABLE; 可以通过如下命令重建分区date_202001上的所有索引分区。 ALTER TABLE range_sales MODIFY PARTITION date_202001 REBUILD UNUSABLE LOCAL INDEXES; 或者通过如下命令单独重建分区date_202001上的索引分区range_sales_idx1_part1。 ALTER INDEX range_sales_idx1 REBUILD PARTITION range_sales_idx1_part1; 假设二级分区表list_range_sales上存在两张Local索引list_range_sales_idx1和list_range_sales_idx2,表下有一级分区channel1,其下属二级分区有channel1_product1、channel1_product2、channel1_product3,二级分区channel1_product1上对应的索引分区名分别为channel1_product1_idx1和channel1_product1_idx2。 下面给出了维护二级分区表一级分区索引的语法: 可以通过如下命令设置分区channel1下属二级分区的所有索引分区均不可用,包括二级分区channel1_product1、channel1_product2、channel1_product3。 ALTER TABLE list_range_sales MODIFY PARTITION channel1 UNUSABLE LOCAL INDEXES; 可以通过如下命令重建分区channel1下属二级分区的所有索引分区。 ALTER TABLE list_range_sales MODIFY PARTITION channel1 REBUILD UNUSABLE LOCAL INDEXES; 下面给出了维护二级分区表二级分区索引的语法: 可以通过如下命令单独设置二级分区channel1_product1上的所有索引分区均不可用。 ALTER TABLE list_range_sales MODIFY SUBPARTITION channel1_product1 UNUSABLE LOCAL INDEXES; 可以通过如下命令重建二级分区channel1_product1上的所有索引分区。 ALTER TABLE list_range_sales MODIFY SUBPARTITION channel1_product1 REBUILD UNUSABLE LOCAL INDEXES; 或者通过如下命令单独设置二级分区channel1_product1上的索引分区channel1_product1_idx1不可用。 ALTER INDEX list_range_sales_idx1 MODIFY PARTITION channel1_product1_idx1 UNUSABLE; 通过如下命令单独重建二级分区channel1_product1上的索引分区channel1_product1_idx1。 ALTER INDEX list_range_sales_idx1 REBUILD PARTITION channel1_product1_idx1; 父主题: 分区表索引重建/不可用
  • 索引重建/不可用 使用ALTER INDEX可以设置索引是否可用。 例如,假设分区表range_ sales上存在索引range_sales_idx,可以通过如下命令设置其不可用。 ALTER INDEX range_sales_idx UNUSABLE; 可以使用如下命令重建索引range_sales_idx。 ALTER INDEX range_sales_idx REBUILD; 父主题: 分区表索引重建/不可用
  • 不支持的范围 在应用设计态添加索引时,不支持选择RdmDeleteFlag和MasterId属性。 不支持JSON、文件、URL和长文本类型的属性。 选择“普通索引”时,如果属性的约束信息包含如下定义,则不支持。 “入库”为“否”的属性。 “多值”为“是”的属性。 “唯一键”为“是”的属性。 选择“唯一索引”时,如果属性的约束信息包含如下定义,则不支持。 “入库”为“否”的属性。 “多值”为“是”的属性。 “唯一键”为“是”的属性。 选择“唯一索引忽略大小写”时,如果属性的约束信息包含如下定义,则不支持。 “入库”为“否”的属性。 “多值”为“是”的属性。 “唯一键”为“是”的属性。
  • 操作步骤 登录KVS管理控制台。 在KVS管理控制台左侧导航栏选择“仓”,进入存储仓列表。 在仓列表中找到需要删除索引的表所在的仓,在仓对应的操作列,单击“创建表”,或者单击仓名称进入仓的详情页面,在“表信息”下单击“创建表”。 根据界面提示,配置“表详细信息”参数。 图1 “表详细信息”界面 表1 “表详细信息”参数说明 参数名称 子参数名称 描述 表详细信息 表名称 必选参数。 表的名称。表的名称长度范围为3-52个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成,且表的名称在存储仓内唯一。 分区键 必选参数。 分区键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 排序键 可选参数。 排序键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 根据界面提示,配置“二级索引”。支持创建本地二级索引或全局二级索引。 单击“创建本地二级索引”,配置参数信息如表2所示。确认配置信息后单击“确定”。 图2 “创建本地二级索引”界面 表2 “创建本地二级索引”参数说明 参数名称 子参数名称 描述 创建本地二级索引 名称 必选参数。 本地二级索引的名称。名称的长度范围为1-255个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”、“.”组成。名称不支持设置为“XPriIndex”。 排序键 必选参数。 排序键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 摘要 可选参数。 本地二级索引的概述。支持创建多个摘要。摘要的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。首字母不支持设置为“_”。 单击“创建全局二级索引”,配置参数信息如表3所示。确认配置信息后单击“确定”。 图3 “创建全局二级索引”界面 表3 “创建全局二级索引”参数说明 参数名称 子参数名称 描述 创建全局二级索引 名称 必选参数。 本地全局索引的名称。名称的长度范围为1-255个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”、“.”组成。名称不支持设置为“XPriIndex”。 分区键 必选参数。 分区键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 排序键 可选参数。 排序键的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。 首字母不支持设置为“_”。 摘要 可选参数。 全局二级索引的概述。支持创建多个摘要。摘要的长度范围为1-63个字符,由数字0-9、字符a-z、A-Z,及特殊符“-”、“_”组成。首字母不支持设置为“_”。 在“二级索引”区域,单击二级索引操作列的“删除”,即可删除已创建的本地二级索引或全局二级索引。 图4 删除索引
  • 使用方法 在HBase客户端执行以下命令可索引的定义及状态: hbase org.apache.hadoop.hbase.hindex.global.mapreduce.GlobalTableIndexer -Dtablename.to.show='table' 相关参数介绍如下: tablename.to.show:表示需查看相关索引定义的数据表名称。 查询结果如图1所示,会打印索引列定义、覆盖列定义、TTL、预分区信息、索引状态等: 图1 索引查询结果
  • 索引状态介绍 索引状态反映了索引当前的使用情况,全局二级索引支持以下五种状态: ACTIVE:索引正常,可以正常读写。 UNUSABLE:索引被禁用,索引数据会正常写入,查询时无法使用这个索引。 INACTIVE:索引异常,索引数据与数据表不一致,跳过生成这个索引的索引数据,查询数据时无法使用这个索引。 BUILDING:索引数据正常批量生成,索引数据生成工具执行结束会自动转换到ACTIVE状态,此状态下可以正常读写。 DROPPING:索引正在被删除,跳过生成这个索引的索引数据,查询数据时无法使用这个索引。 基于工具的索引状态修改,支持图1所示的状态转换。 图1 索引状态转换图
  • 搜索表 在不使用索引的情况下也可以进行全文检索。 一个简单查询:将body字段中包含science的每一行打印出来。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 DROP SCHEMA IF EXISTS tsearch CASCADE; CREATE SCHEMA tsearch; CREATE TABLE tsearch.pgweb(id int, body text, title text, last_mod_date date); INSERT INTO tsearch.pgweb VALUES(1, 'Philology is the study of words, especially the history and development of the words in a particular language or group of languages.', 'Philology', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(2, 'Mathematics is the science that deals with the logic of shape, quantity and arrangement.', 'Mathematics', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(3, 'Computer science is the study of processes that interact with data and that can be represented as data in the form of programs.', 'Computer science', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(4, 'Chemistry is the scientific discipline involved with elements and compounds composed of atoms, molecules and ions.', 'Chemistry', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(5, 'Geography is a field of science devoted to the study of the lands, features, inhabitants, and phenomena of the Earth and planets.', 'Geography', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(6, 'History is a subject studied in schools, colleges, and universities that deals with events that have happened in the past.', 'History', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(7, 'Medical science is the science of dealing with the maintenance of health and the prevention and treatment of disease.', 'Medical science', '2010-1-1'); INSERT INTO tsearch.pgweb VALUES(8, 'Physics is one of the most fundamental scientific disciplines, and its main goal is to understand how the universe behaves.', 'Physics', '2010-1-1'); SELECT id, body, title FROM tsearch.pgweb WHERE to_tsvector('english', body) @@ to_tsquery('english', 'science'); id | body | title ----+-------------------------------------------------------------------------------------------------------------------------+--------- 2 | Mathematics is the science that deals with the logic of shape, quantity and arrangement. | Mathematics 3 | Computer science is the study of processes that interact with data and that can be represented as data in the form of programs. | Computer science 5 | Geography is a field of science devoted to the study of the lands, features, inhabitants, and phenomena of the Earth and planets. | Geography 7 | Medical science is the science of dealing with the maintenance of health and the prevention and treatment of disease. | Medical science (4 rows) 像science这样的相关词也会被找到,因为这些词都被处理成了相同标准的词条。 上面的查询指定english配置来解析和规范化字符串。也可以省略此配置,通过default_text_search_config进行配置设置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 SHOW default_text_search_config; default_text_search_config ---------------------------- pg_catalog.english (1 row) SELECT id, body, title FROM tsearch.pgweb WHERE to_tsvector(body) @@ to_tsquery('science'); id | body | title ----+-------------------------------------------------------------------------------------------------------------------------+--------- 2 | Mathematics is the science that deals with the logic of shape, quantity and arrangement. | Mathematics 3 | Computer science is the study of processes that interact with data and that can be represented as data in the form of programs. | Computer science 5 | Geography is a field of science devoted to the study of the lands, features, inhabitants, and phenomena of the Earth and planets. | Geography 7 | Medical science is the science of dealing with the maintenance of health and the prevention and treatment of disease. | Medical science (4 rows) 一个复杂查询:检索出在title或者body字段中包含treatment和science的最近10篇文档: 1 2 3 4 5 6 7 SELECT title FROM tsearch.pgweb WHERE to_tsvector(title || ' ' || body) @@ to_tsquery('treatment & science') ORDER BY last_mod_date DESC LIMIT 10; title -------- Medical science (1 rows) 为了清晰,举例中没有调用coalesce函数在两个字段中查找包含NULL的行。 以上例子均在没有索引的情况下进行查询。对于大多数应用程序来说,这个方法很慢。因此除了偶尔的特定搜索,文本搜索在实际使用中通常需要创建索引。 父主题: 表和索引
  • 创建索引 为了加速文本搜索,可以创建GIN索引。 1 CREATE INDEX pgweb_idx_1 ON tsearch.pgweb USING gin(to_tsvector('english', body)); to_tsvector()函数有两个版本,只输一个参数的版本和输两个参数的版本。 只输一个参数时,系统默认采用default_text_search_config所指定的分词器。 创建索引时必须使用to_tsvector的两参数版本,否则索引内容可能不一致。只有指定了分词器名称的全文检索函数才可以在索引表达式中使用。因为索引的内容不受default_text_search_config的影响。由于default_text_search_config的值可以随时调整,从而导致不同条目生成的tsvector采用了不同的分词器,并且无法区分究竟使用了哪个分词器。正确地转储和恢复这样的索引也是不支持的。 在上述创建索引中to_tsvector使用了两个参数,只有当查询时也使用了两个参数,且参数值与索引中相同时,才会使用该索引。例如,WHERE to_tsvector('english', body) @@ 'a & b' 可以使用索引,但WHERE to_tsvector(body) @@ 'a & b'不能使用索引。这确保索引各条目是使用相同的分词器创建的。 索引中的分词器名称由另一列指定时可以建立更复杂的表达式索引。例如: 1 CREATE INDEX pgweb_idx_2 ON tsearch.pgweb USING gin(to_tsvector('zhparser', body)); 本示例中zhparser仅支持UTF8/GBK的数据库编码格式,在Encoding为SQL_ASCII下会报错。 其中body是pgweb表中的一列。当对索引的各条目使用了哪个分词器进行记录时,允许在同一索引中存在混合分词器。在某些场景下这将是有用的。例如,文档集合中包含不同语言的文档时。再次强调,打算使用索引的查询必须措辞匹配,例如,WHERE to_tsvector(config_name, body) @@ 'a & b'与索引中的to_tsvector措辞匹配。 索引甚至可以连接列: 1 CREATE INDEX pgweb_idx_3 ON tsearch.pgweb USING gin(to_tsvector('english', title || ' ' || body)); 另一个方法是创建一个单独的tsvector列控制to_tsvector的输出。下面的例子是title和body的连接, 当其它是NULL的时候,使用coalesce确保一个字段仍然会被索引: 1 2 ALTER TABLE tsearch.pgweb ADD COLUMN textsearchable_index_col tsvector; UPDATE tsearch.pgweb SET textsearchable_index_col = to_tsvector('english', coalesce(title,'') || ' ' || coalesce(body,'')); 然后为加速搜索创建一个GIN索引: 1 CREATE INDEX textsearch_idx_4 ON tsearch.pgweb USING gin(textsearchable_index_col); 现在,就可以执行一个快速全文搜索了: 1 2 3 4 5 6 7 8 9 10 11 SELECT title FROM tsearch.pgweb WHERE textsearchable_index_col @@ to_tsquery('science & Computer') ORDER BY last_mod_date DESC LIMIT 10; title -------- Computer science (1 rows) 相比于一个表达式索引,单独列方法的一个优势是:它没有必要在查询时明确指定分词器以便能使用索引。正如上面例子所示,查询可以依赖于default_text_search_config。另一个优势是搜索比较快速,因为它没有必要重新利用to_tsvector调用来验证索引匹配。表达式索引方法更容易建立,且它需要较少的磁盘空间,因为tsvector形式没有明确存储。 父主题: 表和索引
  • SPATIAL空间索引 GaussDB(DWS)不支持SPATIAL空间索引。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 内联SPATIAL空间索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 CREATE TABLE `public`.`test_create_table04` ( `ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `A` POINT NOT NULL, `B` POLYGON NOT NULL, `C` GEOMETRYCOLLECTION NOT NULL, `D` LINESTRING NOT NULL, `E` MULTILINESTRING NOT NULL, `F` MULTIPOINT NOT NULL, `G` MULTIPOLYGON NOT NULL, SPATIAL INDEX A_INDEX(A), SPATIAL INDEX B_INDEX(B), SPATIAL INDEX C_INDEX(C), SPATIAL KEY D_INDEX(D), SPATIAL KEY E_INDEX(E), SPATIAL KEY F_INDEX(F), SPATIAL INDEX G_INDEX(G) ); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 CREATE TABLE "public"."test_create_table04" ( "id" SERIAL NOT NULL PRIMARY KEY, "a" POINT NOT NULL, "b" POLYGON NOT NULL, "c" GEOMETRYCOLLECTION NOT NULL, "d" POLYGON NOT NULL, "e" BOX NOT NULL, "f" BOX NOT NULL, "g" POLYGON NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); CREATE INDEX "a_index" ON "public"."test_create_table04" USING GIST ("a"); CREATE INDEX "b_index" ON "public"."test_create_table04" USING GIST ("b"); CREATE INDEX "c_index" ON "public"."test_create_table04" USING GIST ("c"); CREATE INDEX "d_index" ON "public"."test_create_table04" USING GIST ("d"); CREATE INDEX "e_index" ON "public"."test_create_table04" USING GIST ("e"); CREATE INDEX "f_index" ON "public"."test_create_table04" USING GIST ("f"); CREATE INDEX "g_index" ON "public"."test_create_table04" USING GIST ("g"); ALTER TABLE创建SPATIAL空间索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLE `public`.`test_create_table04` ( `ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `A` POINT NOT NULL, `B` POLYGON NOT NULL, `C` GEOMETRYCOLLECTION NOT NULL, `D` LINESTRING NOT NULL, `E` MULTILINESTRING NOT NULL, `F` MULTIPOINT NOT NULL, `G` MULTIPOLYGON NOT NULL ); ALTER TABLE `test_create_table04` ADD SPATIAL INDEX A_INDEX(A); ALTER TABLE `test_create_table04` ADD SPATIAL INDEX E_INDEX(E) USING BTREE; 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 CREATE TABLE "public"."test_create_table04" ( "id" SERIAL NOT NULL PRIMARY KEY, "a" POINT NOT NULL, "b" POLYGON NOT NULL, "c" GEOMETRYCOLLECTION NOT NULL, "d" POLYGON NOT NULL, "e" BOX NOT NULL, "f" BOX NOT NULL, "g" POLYGON NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); CREATE INDEX "a_index" ON "public"."test_create_table04" USING GIST ("a"); CREATE INDEX "e_index" ON "public"."test_create_table04" USING GIST ("e"); CREATE INDEX创建SPATIAL空间索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE `public`.`test_create_table04` ( `ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `A` POINT NOT NULL, `B` POLYGON NOT NULL, `C` GEOMETRYCOLLECTION NOT NULL, `D` LINESTRING NOT NULL, `E` MULTILINESTRING NOT NULL, `F` MULTIPOINT NOT NULL, `G` MULTIPOLYGON NOT NULL ); CREATE SPATIAL INDEX A_INDEX ON `test_create_table04`(A); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE TABLE "public"."test_create_table04" ( "id" SERIAL NOT NULL PRIMARY KEY, "a" POINT NOT NULL, "b" POLYGON NOT NULL, "c" GEOMETRYCOLLECTION NOT NULL, "d" POLYGON NOT NULL, "e" BOX NOT NULL, "f" BOX NOT NULL, "g" POLYGON NOT NULL ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); CREATE INDEX "a_index" ON "public"."test_create_table04" USING GIST ("a"); 父主题: 索引
  • BTREE索引 GaussDB(DWS)支持BTREE索引,但USING BTREE关键字在语句中的位置与MySQL存在差异。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 内联BTREE索引 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE `public`.`test_create_table03` ( `DEMAND_ID` INT(11) NOT NULL AUTO_INCREMENT, `DEMAND_NAME` CHAR(100) NOT NULL, `THEME` VARCHAR(200) NULL DEFAULT NULL, `SEND_ID` INT(11) NULL DEFAULT NULL, `SEND_NAME` CHAR(20) NULL DEFAULT NULL, `SEND_TIME` DATETIME NULL DEFAULT NULL, `DEMAND_CONTENT` TEXT NOT NULL, PRIMARY KEY(`DEMAND_ID`), INDEX THEME_INDEX(THEME) USING BTREE, INDEX NAME_INDEX USING BTREE (SEND_NAME(10)) ); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE TABLE "public"."test_create_table03" ( "demand_id" SERIAL NOT NULL, "demand_name" CHAR(400) NOT NULL, "theme" VARCHAR(800) DEFAULT NULL, "send_id" INTEGER DEFAULT NULL, "send_name" CHAR(80) DEFAULT NULL, "send_time" TIMESTAMP WITHOUT TIME ZONE DEFAULT NULL, "demand_content" TEXT NOT NULL, PRIMARY KEY ("demand_id") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("demand_id"); CREATE INDEX "theme_index" ON "public"."test_create_table03" USING BTREE ("theme"); CREATE INDEX "name_index" ON "public"."test_create_table03" USING BTREE ("send_name"); ALTER TABLE创建BTREE索引。 输入示例 1 2 3 4 5 6 7 CREATE TABLE IF NOT EXISTS `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test ADD KEY alterTable_addKey_indexType (dataType1) USING BTREE; 输出示例 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE IF NOT EXISTS "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" REAL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); CREATE INDEX "altertable_addkey_indextype" ON "public"."runoob_alter_test" ("datatype1"); CREATE INDEX创建BTREE索引。 输入示例 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE `public`.`test_index_table05` ( `ID` INT(11) NOT NULL AUTO_INCREMENT, `USER_ID` INT(20) NOT NULL, `USER_NAME` CHAR(20) NULL DEFAULT NULL, `DETAIL` VARCHAR(100) NULL DEFAULT NULL, PRIMARY KEY (`ID`) ); CREATE UNIQUE INDEX USER_ID_INDEX USING BTREE ON TEST_INDEX_TABLE05(USER_ID); CREATE INDEX USER_NAME_INDEX USING BTREE ON TEST_INDEX_TABLE05(USER_NAME(10)); CREATE INDEX DETAIL_INDEX ON TEST_INDEX_TABLE05(DETAIL(50)) USING BTREE; CREATE INDEX USER_INFO_INDEX USING BTREE ON TEST_INDEX_TABLE05(USER_ID,USER_NAME(10)); 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CREATE TABLE "public"."test_index_table05" ( "id" SERIAL NOT NULL, "user_id" INTEGER NOT NULL, "user_name" CHAR(80) DEFAULT NULL, "detail" VARCHAR(400) DEFAULT NULL, PRIMARY KEY ("id") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("id"); CREATE INDEX "user_id_index" ON "public"."test_index_table05" ("user_id"); CREATE INDEX "user_name_index" ON "public"."test_index_table05" USING BTREE ("user_name"); CREATE INDEX "detail_index" ON "public"."test_index_table05" USING BTREE ("detail"); CREATE INDEX "user_info_index" ON "public"."test_index_table05" USING BTREE ("user_id","user_name"); 父主题: 索引
  • 自定义Visualizations图表 索引监控定期把index/stats信息存储到monitoring-eys-css索引中,通过使用kibana图表功能可以绘制自定义的图表。 下面以文档数据为例介绍通过图表查看文档数量的变化趋势的操作步骤: 登录云搜索服务管理控制台。 选择已创建的集群,单击操作列“Kibana”,登录Kibana界面。 选择左侧的“Visualize”进入图形列表。 单击“Create visualization”,选择 “TSVB” ,进入TSVB绘图页面。 设置图表参数,查看Visualizations。 如图所示,在“Data”页签,选择“index_stats.primaries.docs.count”表示主分片的文档数量;选择“Derivative”表示聚合桶之间的差异;“Unit”设置为“1s”表示使用每秒代替速率;选择“Positive only”避免数字重置后出现负数。如果需要区分不同索引的情况,将“Group by”设置为“Terms”,“By”设置为“index_stats.index”,最终得到的聚合结果将按照索引名称区分。 图2 TSVB绘图页面 如果需要查看不同时间段的数据,则需要将时间聚合间隔设置好,否则将导致数据显示不完整。在“Panel options”页签,将“Interval”设置为“1m”或“30m”,即可调整“timestamp”的时间间隔。 图3 设置时间间隔
  • 查看Dashboard图表 登录云搜索服务管理控制台。 在“集群管理”页面,选择已创建的集群,单击操作列“Kibana”,登录Kibana界面。 单击左侧导航栏的“Dashboard”,打开dashboard界面。 单击 “[Monitoring] Index monitoring Dashboard”查看预置dashboard。 图1 预置dashboard图表 预置dashboard展示集群的每秒读写数量和每秒读写数量前10的索引情况。 表1 预置图表说明 图表名称 说明 [monitoring] markdown Markdown图表,简单说明dashboard表达的内容。 [monitoring] Indexing Rate (/s) 集群每秒写入文档数。 [monitoring] Search Rate (/s) 集群每秒查询次数。 [monitoring] indexing rate of index for top10 每秒写入文档数最多的Top10索引。 [monitoring] search rate of index for top10 每秒查询次数最多的Top10索引。 [monitoring] total docs count 集群总文档数量变化。 [monitoring] total docs delete 集群总的删除文档数量变化。 [monitoring] total store size in bytes 集群总文档所占用的存储空间变化。 [monitoring] indices store_size for top10 占用存储空间最多的Top10索引。 [monitoring] indices docs_count for top10 文档数量最多的Top10索引。 [monitoring] indexing time in millis of index for top10(ms) 单位时间内文档写入时延最大的Top10索引(ms)。 [monitoring] search query time in millis of index for top10(ms) 单位时间内索引查询时间最大的Top10索引(ms)。 [monitoring] segment count of index for top10 索引Segment数量最多的Top10索引。 [monitoring] segment memory in bytes of index for top10 索引Segment占用堆内存最大的Top10索引。 索引监控不允许删除monitoring-eye-css-* 的index pattern,否则会导致监控图表异常。
  • 管理索引策略 在OpenSearch Dashboard的“Index Management”页面,选择Managed Indices。 如果您要更改策略,可以选择Change policy,详情请参考变更策略。 图5 变更策略 如果您要删除策略,请选择您的策略,然后选择Remove policy。 如果您要重试策略,请选择您的策略,然后选择Retry policy。 具体使用可参考索引管理官方介绍。
  • 创建索引策略 登录Kibana,在左侧选择或“Index Management”,进入索引管理页面 。 右侧单击Create policy,创建索引策略。 在Configuration method对话框中,选择JSON editor,单击Continue进入创建索引策略页面。 在Policy ID部分输入策略ID,Define policy部分输入您的策略。 图1 配置策略 单击Create完成索引策略的创建。
  • 备份与恢复概述 为避免数据丢失,您可以将集群的索引数据进行备份,当数据发生丢失或者想找回某一时间段数据时,您可以通过恢复索引操作快速获得数据。索引的备份是通过创建集群快照实现。第一次备份时,建议将所有索引数据进行备份。 管理自动创建快照:自动创建快照指按照设置的规则,每天在指定时间自动创建快照。您可以开启自动创建功能、设置自动创建的策略、和关闭自动创建功能。 手动创建快照:在任意时间,您通过手动创建快照的方式,针对当时的数据或某几个索引创建快照进行备份。 恢复数据:将已有的快照,通过恢复快照功能,将备份的索引数据恢复到指定的集群中。 删除快照:对于已失效的快照,建议删除以释放存储资源。 父主题: 备份与恢复索引