【StarRocks】数据结构和修改表语句大全

这篇具有很好参考价值的文章主要介绍了【StarRocks】数据结构和修改表语句大全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

StarRocks的改表语句

1 数据类型

【StarRocks】数据结构和修改表语句大全,java,数据库,开发语言
【StarRocks】数据结构和修改表语句大全,java,数据库,开发语言
【StarRocks】数据结构和修改表语句大全,java,数据库,开发语言

2 修改表结构

StarRocks 支持多种 DDL 操作。
可以通过 ALTER TABLE 命令可以修改表的 Schema,包括增加列,删除列,修改列类型(暂不支持修改列名称),改变列顺序。
1 增加列
例如,在以上创建的表中,在 ispass 列后新增一列 uv,类型为 BIGINT,默认值为 0。

ALTER TABLE detailDemo ADD COLUMN uv BIGINT DEFAULT '0' after ispass;

2 删除列
删除以上步骤新增的列。注意如果您通过上述步骤添加了 uv,请务必删除此列以保证后续 Quick Start 内容可以执行。

ALTER TABLE detailDemo DROP COLUMN uv;

3 查看修改表结构作业状态
修改表结构为异步操作。提交成功后,您可以通过以下命令查看作业状态。

SHOW ALTER TABLE COLUMN\G;

当作业状态为 FINISHED,则表示作业完成,新的表结构修改已生效。
修改 Schema 完成之后,您可以通过以下命令查看最新的表结构。
DESC table_name;

3 示例

1 table
修改表的默认副本数量,新建分区副本数量默认使用此值。

ALTER TABLE example_db.my_table
SET ("default.replication_num" = "2");

修改单分区表的实际副本数量(只限单分区表)。

ALTER TABLE example_db.my_table
SET ("replication_num" = "3");

修改数据在多副本间的写入和同步方式。

ALTER TABLE example_db.my_table
SET ("replicated_storage" = "false");

以上示例表示将多副本的写入和同步方式设置为 leaderless replication,即数据同时写入到多个副本,不区分主从副本。
2 partition
增加分区,现有分区 [MIN, 2013-01-01),增加分区 [2013-01-01, 2014-01-01),使用默认分桶方式。

ALTER TABLE example_db.my_table
ADD PARTITION p1 VALUES LESS THAN ("2014-01-01");

增加分区,使用新的分桶数。

ALTER TABLE example_db.my_table
ADD PARTITION p1 VALUES LESS THAN ("2015-01-01")
DISTRIBUTED BY HASH(k1) BUCKETS 20;

增加分区,使用新的副本数。

ALTER TABLE example_db.my_table
ADD PARTITION p1 VALUES LESS THAN ("2015-01-01")
("replication_num"="1");

修改分区副本数。

ALTER TABLE example_db.my_table
MODIFY PARTITION p1 SET("replication_num"="1");

批量修改指定分区。

ALTER TABLE example_db.my_table
MODIFY PARTITION (p1, p2, p4) SET("in_memory"="true");

批量修改所有分区。

ALTER TABLE example_db.my_table
MODIFY PARTITION (*) SET("storage_medium"="HDD");

删除分区。

ALTER TABLE example_db.my_table
DROP PARTITION p1;

增加一个指定上下界的分区。

ALTER TABLE example_db.my_table
ADD PARTITION p1 VALUES [("2014-01-01"), ("2014-02-01"));

3 rollup
创建 index: example_rollup_index,基于 base index(k1, k2, k3, v1, v2)。列式存储。

ALTER TABLE example_db.my_table
ADD ROLLUP example_rollup_index(k1, k3, v1, v2)
PROPERTIES("storage_type"="column");

创建 index: example_rollup_index2,基于 example_rollup_index(k1, k3, v1, v2)。

ALTER TABLE example_db.my_table
ADD ROLLUP example_rollup_index2 (k1, v1)
FROM example_rollup_index;

创建 index: example_rollup_index3,基于 base index (k1, k2, k3, v1), 自定义 rollup 超时时间一小时。

ALTER TABLE example_db.my_table
ADD ROLLUP example_rollup_index(k1, k3, v1)
PROPERTIES("storage_type"="column", "timeout" = "3600");

删除 index: example_rollup_index2。

ALTER TABLE example_db.my_table
DROP ROLLUP example_rollup_index2;

4 Schema Change
向 example_rollup_index 的 col1 后添加一个 key 列 new_col(非聚合模型)。

ALTER TABLE example_db.my_table
ADD COLUMN new_col INT KEY DEFAULT "0" AFTER col1
TO example_rollup_index;

向 example_rollup_index 的 col1 后添加一个 value 列 new_col(非聚合模型)。

ALTER TABLE example_db.my_table
ADD COLUMN new_col INT DEFAULT "0" AFTER col1
TO example_rollup_index;

向 example_rollup_index 的 col1 后添加一个 key 列 new_col(聚合模型)。
ALTER TABLE example_db.my_table

ADD COLUMN new_col INT DEFAULT "0" AFTER col1
TO example_rollup_index;

向 example_rollup_index 的 col1 后添加一个 value 列 new_col SUM 聚合类型(聚合模型)。

ALTER TABLE example_db.my_table
ADD COLUMN new_col INT SUM DEFAULT "0" AFTER col1
TO example_rollup_index;

向 example_rollup_index 添加多列(聚合模型)。

ALTER TABLE example_db.my_table
ADD COLUMN (col1 INT DEFAULT "1", col2 FLOAT SUM DEFAULT "2.3")
TO example_rollup_index;

从 example_rollup_index 删除一列。

ALTER TABLE example_db.my_table
DROP COLUMN col2
FROM example_rollup_index;

修改 base index 的 col1 列的类型为 BIGINT,并移动到 col2 列后面。

ALTER TABLE example_db.my_table
MODIFY COLUMN col1 BIGINT DEFAULT "1" AFTER col2;

修改 base index 的 val1 列最大长度。原 val1 为 (val1 VARCHAR(32) REPLACE DEFAULT “abc”)。

ALTER TABLE example_db.my_table
MODIFY COLUMN val1 VARCHAR(64) REPLACE DEFAULT "abc";

重新排序 example_rollup_index 中的列(设原列顺序为:k1, k2, k3, v1, v2)。

ALTER TABLE example_db.my_table
ORDER BY (k3,k1,k2,v2,v1)
FROM example_rollup_index;

同时执行两种操作。

ALTER TABLE example_db.my_table
ADD COLUMN v2 INT MAX DEFAULT "0" AFTER k2 TO example_rollup_index,
ORDER BY (k3,k1,k2,v2,v1) FROM example_rollup_index;

修改表的 bloom filter 列。

ALTER TABLE example_db.my_table
SET ("bloom_filter_columns"="k1,k2,k3");

也可以合并到上面的 schema change 操作中(注意多子句的语法有少许区别)

ALTER TABLE example_db.my_table
DROP COLUMN col2
PROPERTIES ("bloom_filter_columns"="k1,k2,k3");

修改表的 Colocate 属性。

ALTER TABLE example_db.my_table
SET ("colocate_with" = "t1");

将表的分桶方式由 Random Distribution 改为 Hash Distribution。

ALTER TABLE example_db.my_table
SET ("distribution_type" = "hash");

修改表的动态分区属性(支持未添加动态分区属性的表添加动态分区属性)。

ALTER TABLE example_db.my_table
SET ("dynamic_partition.enable" = "false");

如果需要在未添加动态分区属性的表中添加动态分区属性,则需要指定所有的动态分区属性。

ALTER TABLE example_db.my_table
SET (
    "dynamic_partition.enable" = "true",
    "dynamic_partition.time_unit" = "DAY",
    "dynamic_partition.end" = "3",
    "dynamic_partition.prefix" = "p",
    "dynamic_partition.buckets" = "32"
    );

修改表的 in_memory 属性。

ALTER TABLE example_db.my_table
SET ("in_memory" = "true");

5 rename
将名为 table1 的表修改为 table2。

ALTER TABLE table1 RENAME table2;

将表 example_table 中名为 rollup1 的 rollup index 修改为 rollup2。

ALTER TABLE example_table RENAME ROLLUP rollup1 rollup2;

将表 example_table 中名为 p1 的 partition 修改为 p2。

ALTER TABLE example_table RENAME PARTITION p1 p2;

6 index
在 table1 上为 siteid 创建 bitmap 索引。

ALTER TABLE table1
ADD INDEX index_name (siteid) [USING BITMAP] COMMENT 'balabala';

删除 table1 上的 siteid 列的 bitmap 索引。

7 swap
将 table1 与 table2 原子替换。

ALTER TABLE table1 SWAP WITH table2;

改key语句
修改指定 index 的列类型以及列位置 (MODIFY COLUMN)
语法:文章来源地址https://www.toymoban.com/news/detail-550090.html

ALTER TABLE [database.]table
MODIFY COLUMN column_name column_type [KEY | agg_type] [NULL | NOT NULL] [DEFAULT "default_value"]
[AFTER column_name|FIRST]
[FROM rollup_index_name]
[PROPERTIES ("key"="value", ...)]

到了这里,关于【StarRocks】数据结构和修改表语句大全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API

    Java 是一种由 Sun Microsystems 于 1995 年首次发布的编程语言和计算平台。Java 是一种通用的、基于类的、面向对象的编程语言,旨在减少实现依赖性。它是一个应用程序开发的计算平台。Java 快速、安全、可靠,因此在笔记本电脑、数据中心、游戏机、科学超级计算机、手机等领

    2024年03月24日
    浏览(75)
  • 数据结构——排序方法大全

    本系列文章将主要介绍数据结构中排序的相关知识:包括排序的概念及应用、常见排序算法的实现、排序算法复杂度及稳定度分析等内容。 一、常见的排序算法 1.插入排序 基本思想:把待拍戏的记录按其关键码值的大小逐个插入到一个已经排好序的有序数列中,知道所有的

    2024年04月08日
    浏览(39)
  • 纯c实现链表 数据结构大全

            我们已经知道数组是连续的内存地址,顺序表是由数组为基础的一种数据结构,拥有比数组更多的功能,在概念上属于线性结构,跟链表不同的是,顺序表在物理结构上也是线性的。         我们现在写的链表在物理结构上就不是线性的,数据元素的逻辑顺序是

    2024年01月16日
    浏览(26)
  • 纯c实现顺序表 数据结构大全

            我们已经知道数组是连续的内存地址,顺序表是由数组为基础的一种数据结构,拥有比数组更多的功能,在概念上属于线性结构,跟链表不同的是,顺序表在物理结构上也是线性的         什么是数据结构? 当我们想要使⽤⼤量使⽤同⼀类型的数据时,通过手

    2024年01月16日
    浏览(28)
  • 【2023王道数据结构】王道数据结构课后代码题汇总答案C、C++代码实现完整版大全(可直接运行)

    本文章为 2023王道数据结构专栏 导航贴,正在积极更新中! 本专栏文章将王道一些 课后算法设计题目 的全部实现(答案解析全部都是伪码或者函数的部分实现,不可调试运行), 同时包含各个章节的经典算法数据结构的实现以及一些经典的算法 本专栏使用人群:复习数据

    2024年02月16日
    浏览(30)
  • Linux中的命令行学习数据结构就下面几个大全【理论篇】

    PhysicsRaycaster是Unity UGUI中的一个组件,用于在UI元素上进行物理射线检测。它可以检测鼠标或触摸事件是否发生在UI元素上,并将事件传递给相应的UI元素。 PhysicsRaycaster通过发射一条射线来检测UI元素。当射线与UI元素相交时,PhysicsRaycaster会将事件传递给相应的UI元素。 Event

    2024年02月22日
    浏览(31)
  • 【数据结构大全】你想要的都有,数组、链表、堆栈、二叉树、红黑树、B树、图......

    作者简介: 目录 1.概述 2.线性结构 3.时间复杂度 4.查找算法 5.树 6.图 博主之前写过一个完整的关于数据结构的系列文章,一共十三篇,内容包含,数组、链表、堆栈、队列、时间复杂度、顺序查找、二分查找、二叉树、二叉搜索树、平衡二叉树、红黑树、B树、B+树、大顶堆

    2024年02月10日
    浏览(32)
  • 分享一些常用的数据库结构表和字段语句(BI系统数据源部分可能会用到)

    获取该数据库的表(表名,行数,表注释) 获取该表的字段信息(字段名,字段类型,字段注释) 获取该数据库的表(表名,行数,表注释) 获取该表的字段信息(字段名,字段类型,字段注释) 获取该数据库的表(表名,行数,表注释) 获取该表的字段信息(字段名,

    2024年02月15日
    浏览(33)
  • 数据结构-二叉排序树(建立、查找、修改)

    二叉排序树是动态查找表的一种,也是常用的表示方法。 其中,它具有如下性质: 1.若它的左子树非空,则其左子树的所有节点的关键值都小于根节点的关键值。 2.若它的右子树非空,则其右子树的所有节点的关键值都大于根结点的关键值。 3.它的左右子树也分别都是二叉排

    2024年02月04日
    浏览(29)
  • 图数据库Neo4j——Neo4j简介、数据结构 & Docker版本的部署安装 & Cypher语句的入门

    MySQL是一种开源的关系型数据库管理系统,使用SQL作为其查询语言,常见的关系型数据库有MySQL、Oracle、SQL Server、PostgreSQL等。相关博客文章如下: 【合集】MySQL的入门进阶强化——从 普通人 到 超级赛亚人 的 华丽转身 PostgreSQL数据库——Docker版本的postgres安装 Navicat连接方式

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包