Doris数据库---建表、调整表结构操作
一、简介
本文章主讲创建 Doris 自维护的表的语法,以下为本人最近为数据中台接入doris所踩的坑及其解决方案,欢迎点评。
二、doris建表语法:
官网建表语法网址链接:CREATE-TABLE - Apache Doris
官网建表语法如图所示:

目前我们常见建表主要使用字段列(column_definition_list)、引擎(engine_type)、主键设置(keys_type)、表注释(table_comment)、分桶(distribution_desc)。以下建表示例主要涵盖上面所列。
三、个人建表示例:
-- test_db.student definitionCREATE TABLE IF NOT EXISTS `test_db`.`student` (`stu_num` bigint(20) NULL COMMENT '学生ID编号',`gmt_create` datetime NOT NULL COMMENT '创建时间',`gmt_modified` datetime NOT NULL COMMENT '修改时间',`op_create_id` bigint(20) NOT NULL COMMENT '创建人id',`op_modified_id` bigint(20) NOT NULL COMMENT '更新人id',`op_create_name` varchar(32) NOT NULL COMMENT '创建人名称',`op_modified_name` varchar(32) NOT NULL COMMENT '修改人名称',`stu_name` varchar(32) NOT NULL COMMENT '学生姓名',`stu_class_name` char NULL COMMENT '学生班级'
) ENGINE=OLAP
UNIQUE KEY(`stu_num`)
COMMENT '学生表'
DISTRIBUTED BY HASH(`stu_num`) BUCKETS 32
PROPERTIES (
"replication_allocation" = "tag.location.default: 3",
"is_being_synced" = "false",
"storage_format" = "V2",
"light_schema_change" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false"
);
建表拆解:
1、字段设置:
语法顺序:字段名 字段类型(有长度就带长度,无长度使用默认) 是否非空 默认值(DEFAULT后面加上默认值,默认值要用双引号) 字段注释。
注意:如果是decimal类型的,要注意字段长度和小数点范围:[(precision, scale)] precision: 1 ~ 27 scale: 0 ~ 9。
坑一:字段设置顺序必须按这个语法来。
坑二:目前按我使用的doris数据库建表来看,暂时不支持自增字段(AUTO_INDREMENT)设置,否则会报错:SQL 错误 [1105] [HY000]: errCode = 2, detailMessage = auto increment column is not supported currently. 翻译过来就是currently not supported auto increment 当前不支持自增。
#语法
`stu_num` bigint(20) NOT NULL DEFAULT "0" COMMENT '学生号码',
2、引擎类型设置:
#设置引擎
ENGINE=OLAP
3、设置主键列
坑一:如果设置主键列,那么主键列必须排在其他字段前面,否则会报错该字段前面还有其他字段。
坑二:浮点数double和float不能作为主键列,string类型也不建议用作主键列。
#设置主键列
UNIQUE KEY(`stu_num`)
4、表注释
#表注释
COMMENT '学生表'
5、分桶列:一个doris自建表可以没有分区列,但必须拥有分桶列。
坑一:如果设置了主键列,那么分桶列必须使用主键列字段,否则可以使用非主键列字段。
坑二:设置的分桶列必须按字段设置的顺序进行排序,如设置了字段k1,k2,k3,那么分桶列也得(k1,k2,k3),否则建表会报异常:k3前面还有字段。
6、PROPERTIES 参数设置:
这个一般使用默认值,如需使用可以参考官网。
7、关于double、float和string类型的字段长度问题
在创建doris表时,double、float和string类型不要给长度,否则会报错。其中string类型是超长度类型,在doris数据库中,varchar类型最长是65533,而string类型没有限制,因此在作为数据同步迁移的时候,string类型对应于其他数据库超长度类型(如mysql的longtext)。
语法示例:
money double not null comment "金钱"num float not null comment "数量"remark double not null comment "备注"
四、调整表结构
目前实验结果:支持修改表名、表注释、字段类型修改,新增字段,字段注释修改,支持非空修改为空(反之不行,主键列不允许修改非空或者不非空的设置)。标签字段类型修改时要符合转换规则。
1、字段类型转换规范
- TINYINT/SMALLINT/INT/BIGINT/LARGEINT/FLOAT/DOUBLE 类型向范围更大的数字类型转换
- TINTINT/SMALLINT/INT/BIGINT/LARGEINT/FLOAT/DOUBLE/DECIMAL 转换成 VARCHAR
- VARCHAR 支持修改最大长度
- VARCHAR/CHAR 转换成 TINTINT/SMALLINT/INT/BIGINT/LARGEINT/FLOAT/DOUBLE
- VARCHAR/CHAR 转换成 DATE (目前支持"%Y-%m-%d", "%y-%m-%d", "%Y%m%d", "%y%m%d", "%Y/%m/%d, "%y/%m/%d"六种格式化格式)
- DATETIME 转换成 DATE(仅保留年-月-日信息, 例如:
2019-12-09 21:47:05<-->2019-12-09) - DATE 转换成 DATETIME(时分秒自动补零, 例如:
2019-12-09<-->2019-12-09 00:00:00) - FLOAT 转换成 DOUBLE
- INT 转换成 DATE (如果INT类型数据不合法则转换失败,原始数据不变)
- 除DATE与DATETIME以外都可以转换成STRING,但是STRING不能转换任何其他类型
2、 修改表名
#修改表名
ALTER TABLE student RENAME student2;
3、修改表注释
#修改表注释
ALTER TABLE student MODIFY COMMENT "学生信息表"
4、修改字段类型和注释、新增字段、删除字段
坑一:删除字段不能用来删除主键和分桶列。
坑二:无法修改字段名,因此建表时要设计好字段名称。
#修改字段类型和注释
ALTER TABLE test_db.student
MODIFY COLUMN `stu_class_name` VARCHAR(32) COMMENT "学生班级名称";#新增字段
ALTER TABLE `test_db`.`student`
ADD COLUMN `stu_scope` INT NOT NULL DEFAULT "0" COMMENT "学生成绩";#删除字段
ALTER TABLE `test_db`.`student`
DROP COLUMN `stu_scope`;
相关文章:
Doris数据库---建表、调整表结构操作
一、简介 本文章主讲创建 Doris 自维护的表的语法,以下为本人最近为数据中台接入doris所踩的坑及其解决方案,欢迎点评。 二、doris建表语法: 官网建表语法网址链接:CREATE-TABLE - Apache Doris 官网建表语法如图所示…...
《昇思 25 天学习打卡营第 11 天 | ResNet50 图像分类 》
《昇思 25 天学习打卡营第 11 天 | ResNet50 图像分类 》 活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp 签名:Sam9029 计算机视觉-图像分类,很感兴趣 且今日精神颇佳,一个字,学啊 上一节&…...
实现多数相加,但是传的参不固定
一、情景 一般实现的加法和减法等简单的相加减函数的话。一般都是写好固定传的参数。比如: function add(a,b) {return a b;} 这是固定的传入俩个,如果是三个呢,有人说当然好办! 这样写不就行了! function add(a…...
Windows环境安装Redis和Redis Desktop Manager图文详解教程
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Redis概述 Redis是一个开源的高性能键值对数据库,以其卓越的读写速度而著称,广泛用于数据库、缓存和消息代理。它主要将数据存储在内存中࿰…...
SQL Server 2022的组成
《SQL Server 2022从入门到精通(视频教学超值版)》图书介绍-CSDN博客 SQL Server 2022主要由4部分组成,分别是数据库引擎、分析服务、集成服务和报表服务。本节将详细介绍这些内容。 1.2.1 SQL Server 2022的数据库引擎 SQL Server 2022的…...
【大语言模型系列之Transformer】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
操作系统-懒汉式单例模式
懒汉式单例模式的主要好处有以下几点: 1.资源利用效率高: 只有在第一次调用 getInstance() 方法时才创建实例对象,而不是在类加载时就创建。这可以节省系统资源。 2.延迟加载: 实例对象的创建被延迟到第一次使用时,可以减少系统启动时的资源消耗。 3.线程安全: 这种…...
设计模式探索:策略模式
1. 什么是策略模式(Strategy Pattern) 定义 策略模式(Strategy Pattern)的原始定义是:定义一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而…...
提升效能:Symfony 性能优化实用指南
Symfony 是一个功能丰富的 PHP Web 框架,但在构建高性能应用程序时,开发者需要考虑多种性能优化策略。本文将探讨一系列实用的 Symfony 性能优化技巧,帮助开发者提高应用程序的响应速度和整体性能。 1. 了解 Symfony 缓存机制 Symfony 提供…...
1.pwn的汇编基础(提及第一个溢出:整数溢出)
汇编掌握程度 能看懂就行,绝大多数情况不需要真正的编程(shellcode题除外) 其实有时候也不需要读汇编,ida F5 通常都是分析gadget,知道怎么用, 调试程序也不需要分析每一条汇编指令,单步执行然后查看寄存器状态即可 但…...
迎接AI新时代:GPT-5即将登场的巨大变革与应用前瞻
迎接AI新时代:GPT-5即将登场的巨大变革与应用前瞻 💎1. GPT-5 一年半后发布:AI新时代的来临1.1 GPT-5的飞跃:从高中生到博士生 💎2. GPT-5的潜在应用场景💎2.1 医疗诊断和健康管理💎2.2 教育领域…...
封锁-封锁模式(共享锁、排他锁)、封锁协议(两阶段封锁协议)
一、引言 1、封锁技术是目前大多数商用DBMS采用的并发控制技术,封锁技术通过在数据库对象上维护锁来实现并发事务非串行调度的冲突可串行化 2、基于锁的并发控制的基本思想是: 当一个事务对需要访问的数据库对象,例如关系、元组等进行操作…...
跨境干货|最新注册Google账号方法分享
谷歌账号对做跨境外贸业务的人来说是刚需,目前来说大部分的海外社媒平台、工具都可以用谷歌账号来注册。但是仍然有很多朋友并不知道如何注册这个谷歌账号,今天就来给大家分享2个注册谷歌账号的方法,一个是手机号注册,一个是如何跳…...
MySQL第三天作业
一、在数据库中创建一个表student,用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); 1、向student表中添加一条新记录 记录中id字段的值为1,name字段的值为"monkey"…...
网络安全应急处理流程
网络安全应急处理流程是指在发生网络安全事件时,组织应采取的一系列措施,以快速响应、控制、恢复和调查网络安全事件,确保业务连续性和数据安全。以下是一个详细的网络安全应急处理流程: 1. 准备阶段 目标:建立和维护…...
昇思25天学习打卡营第12天 | LLM原理和实践:MindNLP ChatGLM-6B StreamChat
1. MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 ChatGLM-6B应该是国内第一个发布的可以在消费级显卡上进行推理部署的国产开源大模型,2023年3月就发布了。我在23年6月份的时候就在自己的笔记本电脑上部署测试过,当…...
中英双语介绍加拿大多伦多(Toronto)
中文版 多伦多概述 多伦多(Toronto)是加拿大最大的城市,也是北美地区重要的经济、文化和金融中心。以下是对多伦多的详细介绍,包括其经济地位、金融中心、人口、地理位置、高等教育、移民政策、著名景点和居住的名人等方面的信息…...
【YOLOv9教程】如何使用YOLOv9进行图像与视频检测
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
Text2SQL提问中包括时间的实战方案
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...
点胶系统实战1-项目介绍
准备实战开发如下图的多轴点胶系统实战课程,内容设计界面开发、运动板块开发、任务管理、点胶的控制等。我们将和进入这个领域的初学者门一起进步。 有感兴趣的小伙伴,可以关注点赞,或评论区反馈你们的重点关注的内容,那些部分我…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
