-
时序表的建表语法,在很大程度上继承了行存和列存的语法,降低了用户的学习成本,能够更容易理解和使用。我们将时序表的列分为三种kv_type类型(tag、field、time),那么如何将对应的列指定为合适的类型,帮助我们更好的提高导入、查询等场景的性能,让业务场景运行的更加高效呢?对于不随时间的变化而变化,描述发电机的属性信息的列(发电机信息、生产厂商、型号、位置、ID)被设置为tag列,在建表时需要将对应的列后面指定为TSTag; 对于采样数据的维度(电压、功率、频率、电流相角)这些对应的采样数值随时间的变化而变,我们将这些维度设置为 field 列,建表语句数据类型后面指定为TSField; 最后一列我们指定为时间列time,存储field列数据对应的时间信息,建表时将指定为TSTime。 在写建表语句时,对于tag列的顺序,我们可以适当优化一下,将唯一性(distinct值)较高的列尽量写在前面,这样对于时序场景的性能有一些提升。如果用户没有手动优化,GaussDB(DWS) IoT数仓也可以自适应的帮助用户提高时序场景的性能。另外,创建时序表时一定要指定表级参数orientation属性设置为timeseries。时序表不需要手动指定DISTRIBUTE BY和PARTITION BY, 默认按照所有tag列分布,且分区健默认为tstim指定的时间列。 对于create table like 语法,该语法需要自动从源表中继承列名和对应的kv_type类型。因此如果源表是非时序表,新表是时序表,对应的列的kv_type类型无法确定,则无法创建成功。
-
案例介绍本案例使用Vanna配合本地Ollama/华为mass服务,并借助开发者空间云开发环境提供的免费GaussDB数据库和HCE2.0开发环境进行本地部署,来构建一个先进的AI自然语言分析系统。 案例内容一、概述1.1 案例介绍使用Vanna配合本地Ollama/华为mass服务,并借助开发者空间云开发环境提供的免费GaussDB数据库开发环境进构建一个先进的AI自然语言分析系统。GaussDB:华为自主创新研发的分布式关系型数据库。该产品支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。Vanna:作为数据处理和自然语言处理(NLP)的关键组件,Vanna负责数据的预处理、清洗、转换以及NLP任务的执行,如文本分类、情感分析、实体识别等。Ollama:作为AI模型和算法的核心,Ollama提供了丰富的机器学习模型和深度学习算法,用于训练和优化自然语言处理任务。它与Vanna紧密集成,共同实现高效的数据分析和知识提取。ModelArts Studio(MaaS)平台:是华为云推出的一款大模型即服务平台,可以一站式的对业界主流开源大模型进行部署托管,同时开放大模型API服务,可以结合业界主流Agent开发框架,轻松构建AI Agent应用。华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云开发环境、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。1.2 适用对象企业个人开发者高校学生1.3 案例时间本案例总时长预计60分钟。1.4 案例流程说明:在开发者空间中安装Ollama与Vanna申请华为云开发者空间的GaussDB数据库;启动vanna链接GaussDB数据库进行自然语言数据库分析。申请ModelArts Studio(MaaS)免费服务1.5 资源总览本案例预计花费0.8元。资源名称规格单价(元)时长(分钟)华为开发者空间 - 云开发环境鲲鹏通用计算增强型 kc1 | 2vCPUs | 4G | HCE2.0免费60华为开发者空间 - 生态版GaussDB单副本集中式版 | 4 vCPUs | 16G | HCE OS 64bit (200GB)免费60弹性公网IP按流量计费 5Mbit/s0.8元/GB60二、案例准备工作2.1 配置云开发环境根据案例《开发者空间 - 云开发环境使用指导》,请查看下面链接,配置云开发环境,并通过xshell、crt等链接工具登录云开发环境。开发者空间 - 云开发环境使用指导参考如上案例链接进行配置并连接:创建本地PC和远程云开发环境的隧道链接通过xshell、crt等链接工具登录云开发环境,进行测试2.2 领取GaussDB数据库2.2.1 免费领取GaussDB在线试用版(2025年 06月 21日 - 2025年 12月 31日)。华为开发者空间-GaussDB云数据库领取与使用指导注:部署的Django项目需要对接GaussDB,因此GaussDB需要绑定EIP,参考上述指导中领取部分第(5)步因为默认vanna的postgrs驱动连接gaussdb认证方式有问题,实例创建完成后修改password_encryption_type参数为0,然后在基本信息里修改一下root密码 2.2.2 进行数据初始化领取Gaussdb实例后连接数据库点击登录 输入用户名密码进行登录 点击新建数据库,创建数据库school,兼容选择mysql点击确定 点击去school数据库,创建schema名字school,点击确认 初始化表和数据点击sql窗口,数据库选择school,schema也选择上面创建的school,拷贝表和数据脚本到窗口栏,点击执行sql样例数据: CREATE TABLE students ( student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID', name VARCHAR(50) NOT NULL COMMENT '学生姓名', age INT COMMENT '年龄', major VARCHAR(100) COMMENT '专业', email VARCHAR(100) UNIQUE COMMENT '电子邮件'); INSERT INTO students (name, age, major, email) VALUES('张三', 20, '计算机科学', 'zhangsan@example.com'),('李四', 21, '电子工程', 'lisi@example.com'),('王五', 19, '数学', 'wangwu@example.com'),('赵六', 22, '物理', 'zhaoliu@example.com'),('钱七', 20, '化学', 'qianqi@example.com'),('孙八', 21, '生物', 'sunba@example.com'),('周九', 19, '历史', 'zhoujiu@example.com'),('吴十', 22, '哲学', 'wushi@example.com'),('郑十一', 20, '艺术', 'zhengshiyi@example.com'),('王十二', 21, '音乐', 'wangshier@example.com'),('陈十三', 19, '体育', 'chenshisan@example.com'),('冯十四', 22, '英语', 'fengshisi@example.com'),('董十五', 20, '法语', 'dongshiwu@example.com'),('萧十六', 21, '德语', 'xiaoshiliu@example.com'),('曹十七', 19, '日语', 'caoshiqi@example.com'),('许十八', 22, '韩语', 'xushiba@example.com'),('蒋十九', 20, '西班牙语', 'jiangshijiu@example.com'),('沈二十', 21, '意大利语', 'shenshier@example.com'),('韩二十一', 19, '心理学', 'hanershiyi@example.com'),('杨二十二', 22, '社会学', 'yangershi@example.com'); CREATE TABLE courses ( course_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '课程ID', course_name VARCHAR(100) NOT NULL COMMENT '课程名称', credits INT COMMENT '学分', teacher_id INT COMMENT '教师ID'); INSERT INTO courses (course_name, credits, teacher_id) VALUES('数据结构', 4, 1),('微积分', 3, 2),('编程基础', 3, 3),('物理实验', 2, 4),('化学原理', 3, 5),('生物技术', 4, 6),('历史概论', 2, 7),('哲学思考', 3, 8); CREATE TABLE enrollments ( enrollment_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '选课记录ID', student_id INT NOT NULL COMMENT '学生ID', course_id INT NOT NULL COMMENT '课程ID', grade FLOAT COMMENT '成绩'); INSERT INTO enrollments (student_id, course_id, grade) VALUES(1, 1, 85.5),(2, 2, 90.0),(3, 3, 78.5),(4, 4, 82.0),(5, 5, 88.5),(6, 6, 75.0),(7, 7, 80.5),(8, 8, 87.0),(9, 1, 81.0),(10, 2, 85.5),(11, 3, 79.0),(12, 4, 83.0),(13, 5, 86.5),(14, 6, 77.0),(15, 7, 82.5),(16, 8, 88.0),(17, 1, 84.0),(18, 2, 87.5),(19, 3, 80.0),(20, 4, 85.0),(21, 5, 83.5),(22, 6, 78.0),(23, 7, 81.5),(24, 8, 86.0),(25, 1, 82.0),(26, 2, 84.5),(27, 3, 79.5),(28, 4, 83.0),(29, 5, 86.5),(30, 6, 77.5); 2.3 验证云开发环境与GaussDB互通通过xshell或windows命令终端登录云开发环境,测试GaussDB能否连接,如下是通的 如不通去修改安全组的入方向规则,增加需要的端口如图(默认应该没通的)三、 安装Ollama首先我们要先配置pycharm远程开发环境可参考如下用例基于华为开发者空间-云开发环境,PyCharm SSH远程开发环境搭建:cid:link_2后续所有操作都基于pycharm的远程命令行进行操作 3.1 安装OllamaOllama 是一个强大的开源工具,旨在帮助用户轻松地在本地运行、部署和管理大型语言模型(LLMs)。它提供了一个简单的命令行界面,使用户能够快速下载、运行和与各种预训练的语言模型进行交互执行安装命令如下:方式一(推荐,安装速度快):curl -fsSL https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0035/install.sh | sudo bash 3.2 模型部署接下来可以借助 Ollama 工具来部署 Deepseek 大模型,部署 deepseek-r1:1.5b 版本,因为资源有限我们部署一个小一点的模型,执行命令:ollama pull deepseek-r1:1.5b 部署的时间长短依赖于网络的情况,部署完成后,我们就可以与 Deepseek 大模型进行对话了:ollama run deepseek-r1:1.5b 四、 安装配置Vanna4.1 更新python配置虚拟环境vanna使用python 安装建议3.10以上,开发者空间中的python版本为3.9.9,需要先升级python4.1.1 安装所需包sudo yum groupinstall "Development Tools" -ysudo yum install openssl-devel -ysudo yum install gcc -y sudo yum install gcc-c++ -y sudo yum install bzip2-devel -y sudo yum install libffi-devel -y sudo yum install zlib-devel -y sudo yum install wget -y sudo yum install make -y sudo yum install glibc-devel -y sudo yum install libgcc -y sudo yum install tar -y sudo yum install bzip2 -y sudo yum install zlib -y sudo yum install xz -y sudo yum install readline-devel -y sudo yum install sqlite-devel -y sudo yum install sqlite-libs -y 4.1.2 升级pythonsudo wget https://mirrors.huaweicloud.com/python/3.10.14/Python-3.10.14.tgzsudo tar xzf Python-3.10.14.tgzcd Python-3.10.14OPENSSL_PREFIX=/usrsudo ./configure --enable-optimizations --with-ensurepip=install \ --with-openssl=$OPENSSL_PREFIXsudo make -j$(nproc)sudo make altinstallpython3.10 -m sslpython3.10 --version4.1.3 配置python虚拟环境因为业务场景的Python开发,多数都是构建一个大型应用程序,并且不希望各种组件的各种版本之间相互冲突,所以需要设置一个虚拟环境。先需要更新下载源。执行如下命令sudo yum -y updatesudo yum -y upgradepip3 install virtualenv -i cid:link_8 #安装virtualenvpython3.10 -m venv myenv #创建虚拟环境source myenv/bin/activate #激活环境 4.2 python下安装Vannapython 安装建议3.10以上安装前更新下pip,然后执行安装python3.10 -m pip install --upgrade pip -i cid:link_8pip3 install 'vanna[chromadb,ollama,postgres]' -i cid:link_8 4.3 Vanna官网生成示例代码Vanna是一款基于开源Python框架的SQL生成工具,可以用日常用语提问,Vanna自动将其转换为SQL语句,简化数据库查询过程。生成实例代码官网:https://vanna.ai/文档:https://vanna.ai/docs/Vanna的例子,链接如下,按照如下图选择生成示例代码:https://vanna.ai/docs/postgres-ollama-chromadb/依次选择Ollama-ChromaDB-postgres 会生成示例代码, 选择使用的模型商选择使用向量数据库的类型 选择要连接的数据库 样例代码:from vanna.ollama import Ollamafrom vanna.chromadb import ChromaDB_VectorStoreclass MyVanna(ChromaDB_VectorStore, Ollama): def __init__(self, config=None): ChromaDB_VectorStore.__init__(self, config=config) Ollama.__init__(self, config=config)vn = MyVanna(config={'model': 'deepseek-r1:1.5b', 'ollama_host': 'http://localhost:11434'})vn.connect_to_postgres(host='xxxxxxx', dbname='school', user='xxxx', password='xxxx', port='8000')vn.train(ddl="""CREATE TABLE school.students ( student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID', name VARCHAR(50) NOT NULL COMMENT '学生姓名', age INT COMMENT '年龄', major VARCHAR(100) COMMENT '专业', email VARCHAR(100) UNIQUE COMMENT '电子邮件');CREATE TABLE school.courses ( course_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '课程ID', course_name VARCHAR(100) NOT NULL COMMENT '课程名称', credits INT COMMENT '学分', teacher_id INT COMMENT '教师ID');CREATE TABLE school.enrollments ( enrollment_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '选课记录ID', student_id INT NOT NULL COMMENT '学生ID', course_id INT NOT NULL COMMENT '课程ID', grade FLOAT COMMENT '成绩');""")from vanna.flask import VannaFlaskAppVannaFlaskApp(vn, allow_llm_to_see_data=True).run() 五、 启动应用并使用4.1 代码配置打开pycham把样例代码粘贴进main.py,并修改模型和数据库配置vn = MyVanna(config={'model': 'deepseek-r1:1.5b', 'ollama_host': 'http://localhost:11434'})vn.connect_to_postgres(host='xxxx', dbname='school', user='xxxx', password='xxxx', port='8000')上传代码到远程开发环境 5.2 启动应用进入自己配置的ssh远程目录启动应用nohup python3.10 main.py & 查看输出日志,日志最后有系统的登录地址tail nohup.out 创建应用启动的对应端口(8084)的隧道协议,可参考开发者空间 - 云开发环境使用指导-第4章2小节hdspace devenv start-tunnel --instance-id=0edfc31f922c4b54b74ba8819 --remote-port=8084 --local-port=8084 5.3 使用自然语言分析数据库在浏览器输入http://127.0.0.1:8084,进行登录,第一次比较慢等待一下 然后我们可以用自然语言操作数据库了,因为已开发环境内存有限,deepseek-r1:1.5b回答的不太好,如果资源充足可以换别的模型,生成的sql问题可以点击修复;使用自然语言提问:每门课程的做高分是多少 sql结果会自动生成表格和图表 六、 使用华为maas部署使用ollama本地模型比较安全但相对复杂,我们还可以使用华为ModelArts Studio(MaaS)服务来作为系统的智能模型6.1 申请ModelArts免费服务参考下面的步骤,免费体验ModelArts Studio(MaaS)预置服务cid:link_5按下面的步骤获取相关信息:区域切换到“西南-贵阳一”,依次点击:ModelArts Studio->模型推理->在线推理->预置服务->免费服务->领取 领取后点击->调用说明->OpenAI SDKAPI Key管理-> 创建API Key把api key,api地址,model参数保留好备用 6.2 生成vanna代码整体可参考<<四、安装配置vanna>>https://vanna.ai/docs/postgres-ollama-chromadb/依次选择OpenAI-ChromaDB-postgres 成示例代码 生成的示例代码6.3 安装python包注意: 要重新安装使用的包与ollama部署时的不一样pip3 install 'vanna[chromadb,openai,postgres]' -i cid:link_8pip3 install openai #安装openai本地客户端 6.4 修改代码并运行整体可参考步骤<<五、启动应用并使用>>在6.2生成的模板代码下我们进行修改,添加进去华为maas的参数及OpanAI客户端的代码运行前修改如下模型和数据库配置my_llm_api_key = 'key' #上面步骤我们创建的apikeymy_llm_base_url = 'https://maas-cn-southwest-2.modelarts-maas.com/v1/infers/271c9332-4aa6-4ff5-95b3-0cf8bd94c394/v1' # 上面步骤调用说明里的apiurlmy_llm_name = 'DeepSeek-V3' #上面步骤的modelnamevn.connect_to_postgres(host='xxx', dbname='school', user='root', password='xxx', port='8000')代码:from vanna.ollama import Ollamafrom vanna.chromadb import ChromaDB_VectorStorefrom vanna.openai import OpenAI_Chatfrom openai import OpenAImy_llm_api_key = 'key' #上面步骤我们创建的apikeymy_llm_base_url = 'https://maas-cn-southwest-2.modelarts-maas.com/v1/infers/271c9332-4aa6-4ff5-95b3-0cf8bd94c394/v1' # 上面步骤调用说明里的apiurlmy_llm_name = 'DeepSeek-V3' #上面步骤的modelnameclient = OpenAI( api_key=my_llm_api_key, base_url=my_llm_base_url)class MyVanna(ChromaDB_VectorStore, OpenAI_Chat): def __init__(self, client=None, config=None): ChromaDB_VectorStore.__init__(self, config=config) OpenAI_Chat.__init__(self, client=client, config=config)vn = MyVanna(client=client, config={"model": my_llm_name})vn.connect_to_postgres(host='xxx', dbname='school', user='root', password='xxx', port='8000')vn.train(ddl="""CREATE TABLE school.students ( student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID', name VARCHAR(50) NOT NULL COMMENT '学生姓名', age INT COMMENT '年龄', major VARCHAR(100) COMMENT '专业', email VARCHAR(100) UNIQUE COMMENT '电子邮件');CREATE TABLE school.courses ( course_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '课程ID', course_name VARCHAR(100) NOT NULL COMMENT '课程名称', credits INT COMMENT '学分', teacher_id INT COMMENT '教师ID');CREATE TABLE school.enrollments ( enrollment_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '选课记录ID', student_id INT NOT NULL COMMENT '学生ID', course_id INT NOT NULL COMMENT '课程ID', grade FLOAT COMMENT '成绩');""")from vanna.flask import VannaFlaskAppVannaFlaskApp(vn, allow_llm_to_see_data=True).run() 上传代码并运行整体可参考步骤<<五、启动应用并使用>>nohup python3.10 main.py & 在浏览器输入http://127.0.0.1:8084,进行登录使用,我们可以看到使用准确的模型一次就回答对了,如果生产部署选对模型很重要 至此本案例关于在开发者空间–远程开发环境中使用Vanna配合ollama/maas基于GaussDB的自然语言分析系统实践操作完毕。 我正在参加【案例共创】第6期 开发者空间-基于云开发环境和GaussDB构建应用 cid:link_7
-
GaussDB P模式下自增主键是通过序列自增主键,但是如果在M模式下使用序列好像是不行的,一直报游标cursor错误,2种方式兼容不了,M模式下使用AUTO_INCREMENT进行自增主键
-
使用列存表时,如果使用场景不当,如时时入库场景,会很容易产生小cu问题。小cu介绍:cid:link_1cid:link_0 830版本后有hstore opt功能,可以部分场景减少小cu,主要是insert入库场景,但是update和delete依然会产生小cu,原因是在进行update时,是把目标数据delete再insert一条数据,一个cu单元6W行数据,当delete掉大部分数据后,就会变成小cu,频繁delete和频繁大量update容易产出小cu。 注意事项与列存一样,当前版本HStore opt上的UPDATE操作始终先DELETE再INSERT。全局GUC参数可控制打开HStore opt的轻量化UPDATE,当前版本默认关闭。对于并发UPDATE场景, 传统列存储格式由于同时操作相同CU时会产生锁冲突所以并发性能较差, 对于HStore opt表由于不需要阻塞等待,并发UPDATE性能可达到列存的百倍以上。业务侧:对列存表进行攒批入库,单次入库量(有分区则针对单分区单次入库量)接近或大于6w*主DN个数。表数据量不大时建议改为行存表。运维侧:当业务侧因业务特征无法调整入库量时,定期对列存表进行vacuum full可达到整合小CU的目的,一定程度缓解小CU问题。
-
欢迎体验华为云GaussDB!GaussDB针对开发者和高校教师等不同用户群体,提供了满足各自需求的专属产品版本。面向开发者 华为云提供了GaussDB在线试用版(领取入口),您可以通过领取入口获取并试用。 - 领取方式:开发者需要完成报名且通过审核后,可前往开发者空间工作台领取GaussDB实例,先到先得。 - 申请流程:请参考GaussDB在线试用版活动页中的“活动信息”说明。注:GaussDB在线试用版实例在区域、部署形态、性能规格、存储空间等方面有特定规格,完全能够满足开发者的在线体验需求,有问题可以进“云数据库GaussDB开发者”企业微信群交流。面向高校老师若您是高校教师,希望将GaussDB融入教学或寻求其他合作方式,华为云GaussDB可为您提供所需的云资源、教学材料及技术支持。 - 获取方式:方式1:在帖子下方留言,内容格式为:“所在高校+老师姓名+联系方式+开课时间”;方式2:关注“GaussDB数据库”公众号并留言,内容格式为:“所在高校+老师姓名+联系方式+开课时间”;届时将有工作人员与您联系。
-
Oracle 和 GaussDB 中的 VARCHAR2 类型在定义、存储机制和功能上存在显著差异 1. 长度定义与单位Oracle支持显式指定单位:BYTE(字节)或 CHAR(字符),例如 VARCHAR2(100 BYTE) 或 VARCHAR2(100 CHAR)。多字节字符集(如 UTF-8)下,CHAR 单位按字符数计算存储空间(例如 VARCHAR2(10 CHAR) 可存储 10 个中文字符)。最大长度:标准模式:4000 字节(受行大小限制)扩展模式(12c+):32767 字节(需开启参数 max_string_size=EXTENDED)。GaussDB仅支持 BYTE 单位:定义如 VARCHAR2(n) 时,n 固定为字节长度(例如 VARCHAR2(100) 表示 100 字节)。不支持 CHAR 单位,多字节字符需手动计算字节占用(如 UTF-8 中文字符需预留 3-4 字节)。 2. 最大容量限制Oracle受 MAX_STRING_SIZE 参数控制:STANDARD 模式:4000 字节EXTENDED 模式:32767 字节(实际受数据库块大小限制)。GaussDB固定最大长度:10 MB(10485760 字节),远大于 Oracle 的扩展模式上限。 3. 存储机制与校验Oracle严格校验输入长度:插入超过定义长度的数据直接报错(除非显式截断)。存储变长数据,仅占用实际字节空间(无填充)。GaussDB长度定义仅为建议值:实际插入时不校验字节长度是否超限(例如定义 VARCHAR2(5) 仍可插入 'tooooo_long',仅警告不报错)。超长数据自动截断至定义长度(如 'too long'::VARCHAR2(5) 存储为 'too l')。 4. 空字符串的处理Oracle空字符串 '' 自动转换为 NULL,即 VARCHAR2 字段不允许存储空字符串。GaussDB在 A 兼容模式下行为与 Oracle 一致(空字符串转为 NULL)。其他模式下支持存储空字符串(非 NULL)。 5. 多字节字符集支持Oracle通过 CHAR 单位规避字符集影响:例如 VARCHAR2(10 CHAR) 在 UTF-8 下可存储 10 个中文(约 30–40 字节)。GaussDB仅按字节计算长度:若使用 UTF-8 字符集,VARCHAR2(10) 仅能存储约 3 个中文字符(每个汉字占 3–4 字节),需预留更大空间。 6. 别名和兼容性OracleVARCHAR2 是主力字符串类型,VARCHAR 仅为兼容标准 SQL 的别名(实际行为一致)。GaussDBVARCHAR2 是 VARCHAR 的别名,两者功能完全相同(例如 VARCHAR2(10) 等价于 VARCHAR(10))。 对比总结表一下下特性OracleGaussDB长度单位支持 BYTE 或 CHAR仅支持 BYTE最大长度4000 字节(标准) / 32767 字节(扩展)10 MB(10485760 字节)超长数据处理直接报错自动截断(不报错)空字符串视为 NULLA 兼容模式下视为 NULL多字节支持按字符定义(CHAR 单位)需手动计算字节占用类型本质独立类型VARCHAR 的别名 迁移建议长度单位转换:若 Oracle 使用 CHAR 单位,迁移到 GaussDB 时需按字符集重新计算字节长度(如 UTF-8 中文需 原长度 × 3)。空值处理:在 GaussDB 中启用 A 兼容模式(sql_compatibility='A')以保持与 Oracle 的空字符串行为一致。超长数据:依赖应用层校验长度,避免依赖数据库自动截断导致数据丢失。大文本存储:超过 10 MB 的数据需改用 TEXT 或 CLOB 类型。
-
创建了数据库之后,还需要创建模式(Schema)才能够存储数据库对象。通常在创建一个新的数据库时,默认会创建一个模式 public。背景信息schema又称作模式。通过管理schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的schema下而不引起冲突。管理schema包括:创建schema、使用schema、删除schema、设置schema的搜索路径以及schema的权限控制。注意事项openGauss包含一个或多个已命名数据库。用户和用户组在openGauss范围内是共享的,但是其数据并不共享。任何与服务器连接的用户都只能访问连接请求里声明的那个数据库。一个数据库可以包含一个或多个已命名的schema,schema又包含表及其他数据库对象,包括数据类型、函数、操作符等。同一对象名可以在不同的schema中使用而不会引起冲突。例如,schema1和schema2都可以包含一个名为mytable的表。和数据库不同,schema不是严格分离的。用户根据其对schema的权限,可以访问所连接数据库的schema中的对象。进行schema权限管理首先需要对数据库的权限控制进行了解。不能创建以PG_为前缀的schema名,该类schema为数据库系统预留的。在每次创建新用户时,系统会在当前登录的数据库中为新用户创建一个同名Schema。对于其他数据库,若需要同名Schema,则需要用户手动创建。通过未修饰的表名(名称中只含有表名,没有“schema名”)引用表时,系统会通过search_path(搜索路径)来判断该表是哪个schema下的表。pg_temp和pg_catalog始终会作为搜索路径顺序中的前两位,无论二者是否出现在search_path中,或者出现在search_path中的任何位置。search_path(搜索路径)是一个schema名列表,在其中找到的第一个表就是目标表,如果没有找到则报错。(某个表即使存在,如果它的schema不在search_path中,依然会查找失败)在搜索路径中的第一个schema叫做“当前schema”。它是搜索时查询的第一个schema,同时在没有声明schema名时,新创建的数据库对象会默认存放在该schema下。每个数据库都包含一个pg_catalog schema,它包含系统表和所有内置数据类型、函数、操作符。pg_catalog是搜索路径中的一部分,始终在临时表所属的模式后面,并在search_path中所有模式的前面,即具有第二搜索优先级。这样确保可以搜索到数据库内置对象。如果用户需要使用和系统内置对象重名的自定义对象时,可以在操作自定义对象时带上自己的模式。Schema操作步骤创建管理用户及权限schema执行如下命令来创建一个schema。语法格式创建SCHEMACREATE SCHEMA schema_name [ AUTHORIZATION user_name ] ;修改SCHEMA 修改模式的名称ALTER SCHEMA schema_name RENAME TO new_name;修改模式的所有者。ALTER SCHEMA schema_name OWNER TO new_owner;删除SCHEMA及其对象。DROP SCHEMA schema_name;不要随意删除pg_temp或pg_toast_temp开头的模式,这些模式是系统内部使用的,如果删除,可能导致无法预知的结果。参数说明schema_name模式名称须知: 模式名不能和当前数据库里其他的模式重名。 模式的名称不可以“pg_”开头。取值范围:字符串,要符合标识符的命名规范。AUTHORIZATION user_name指定模式的所有者。当不指定schema_name时,把user_name当作模式名,此时user_name只能是角色名。取值范围:已存在的用户名/角色名。schema_element在模式里创建对象的SQL语句。目前仅支持CREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE PARTITION、CREATE SEQUENCE、CREATE TRIGGER、GRANT子句。子命令所创建的对象都被AUTHORIZATION子句指定的用户所拥有。说明: 如果当前搜索路径上的模式中存在同名对象时,需要明确指定引用对象所在的模式。可以通过命令SHOW SEARCH_PATH来查看当前搜索路径上的模式。根据用户名创建模式。openGauss=# CREATE SCHEMA test AUTHORIZATION user1; CREATE SCHEMA查看当前搜索路径openGauss=# SHOW SEARCH_PATH; search_path ---------------- "$user",public (1 row)更改当前会话的默认Schema。openGauss=# SET SEARCH_PATH TO test1, public; SET删除SCHEMA及其对象。openGauss=# DROP SCHEMA test1; DROP SCHEMA使用以下命令查看现有的schema。openGauss=# SELECT current_schema(); current_schema ---------------- myschema (1 row)使用schema在特定schema下创建对象或者访问特定schema下的对象,需要使用有schema修饰的对象名。该名称包含schema名以及对象名,他们之间用“.”号分开。执行如下命令在myschema下创建mytable表。openGauss=# CREATE TABLE myschema.mytable(id int, name varchar(20)); CREATE TABLE如果在数据库中指定对象的位置,就需要使用有schema修饰的对象名称。执行如下命令查询myschema下mytable表的所有数据。openGauss=# SELECT * FROM myschema.mytable; id | name ----+------ (0 rows)常见错误:错误一:无法删除某个角色1. 检查依赖关系确认角色 test 是哪些模式的所有者:sql复制代码SELECT schema_name FROM information_schema.schemata WHERE schema_owner = 'test';若返回结果包含 test 模式,说明该角色是模式的所有者。2. 转移模式所有权将 test 模式的所有权转移给其他角色(如 admin 或新建角色):-- 方法1:直接转移给现有角色(需目标角色存在)ALTER SCHEMA test OWNER TO admin;再次删除,发现即可删除成功。错误二:删除角色关联所有者、对象较多openGauss=# drop role tony; ERROR: role "tony" cannot be dropped because some objects depend on it DETAIL: owner of database mydb owner of database human_staff 1 object in database human_staff1. 确认角色依赖关系通过错误提示可知,角色tony是以下对象的所有者:• 数据库mydb• 数据库human_staff• 数据库human_staff中的1个对象(如表、模式等)2. 转移数据库所有权若需保留数据库,需将其所有权转移给其他角色(如admin):openGauss=# alter database mydb owner to gauss; openGauss=# alter database human_staff owner to gauss;3. 处理数据库内的对象方法1:转移对象所有权将tony拥有的对象(如表、视图等)的所有权转移给其他角色:-- 切换到目标数据库\c human_staff -- 转移所有对象的所有权(慎用,需超级用户权限) REASSIGN OWNED BY tony TO admin; -- 或逐个转移特定对象 ALTER TABLE <table_name> OWNER TO admin; ALTER SCHEMA <schema_name> OWNER TO admin;4. 撤销角色权限若tony在其他数据库(如postgres)中有权限,需撤销这些权限:sql复制代码-- 切换到postgres数据库\c postgres-- 撤销对特定对象的权限REVOKE ALL ON DATABASE postgres FROM tony;REVOKE ALL ON SCHEMA public FROM tony; -- 示例:撤销对public模式的权限REVOKE ALL ON TABLE pg_class FROM tony; -- 示例:撤销对系统表的权限5. 清理共享依赖若tony的依赖关系涉及共享对象(如角色权限),需检查并清理:sql复制代码-- 查看共享依赖关系(需超级用户)SELECT * FROM pg_shdepend WHERE refobjid = (SELECT oid FROM pg_roles WHERE rolname = 'tony');-- 手动撤销相关权限REVOKE USAGE ON SCHEMA <schema_name> FROM tony; -- 示例:撤销对模式的使用权6. 删除角色完成上述步骤后,尝试再次删除角色:DROP ROLE tony;注意事项1. 权限要求:转移所有权、撤销权限等操作需由超级用户或具备足够权限的角色执行。2. 数据安全:使用DROP OWNED BY或DROP DATABASE前,务必确认无需保留相关数据。3. 系统依赖:若tony是系统管理员(rolsuper或rolsystemadmin),需先转移系统权限。
-
gaussdb版本 数据库引擎版本 内核引擎版本到底是啥意思,三者有何关系?我只找到华为云版本gaussdb的三者对应关系,轻量化版本的文档并未找到,请问哪里有相关说明?
-
【华为开发者空间云开发环境】产品体验官活动获奖名单如下:一、有效建议奖:昵称建议分值奖项礼品yd_2846377506.5有效建议奖第一名1000元开发者定制礼品miyalian5.5有效建议奖第二名800元开发者定制礼品yd_2388226594有效建议奖第三名500元开发者定制礼品二、优质建议奖:昵称礼品给无眠点压力200元开发者定制礼品yd_213866132200元开发者定制礼品yd_256610494200元开发者定制礼品小草飞上天200元开发者定制礼品lycchee200元开发者定制礼品yd_232023009200元开发者定制礼品风吹雨200元开发者定制礼品yd_212578646200元开发者定制礼品banjin200元开发者定制礼品cxw200元开发者定制礼品 恭喜以上11名获奖用户,请获奖用户通过以下问卷反馈奖品收件信息(9月25日前反馈有效),感谢大家对云声平台的关注和支持~ 华为开发者空间云开发环境功能正式上线啦!华为开发者空间云开发环境三大核心优势:1、一键创建,零门槛上手:无需复杂配置,只需登录华为开发者空间,点击 “新建开发环境”,填写名称即可完成创建;2.全生命周期管理,灵活又省心:随用随启、按需暂停、自动续时、安全删除;3.无缝对接工具链,开发体验无差异:支持通过 Xshell、CodeArts IDE、VSCode、JetBrains、Notebook等主流工具远程连接,本地工具怎么用,云端环境就怎么操作;大家赶快来体验吧,体验完后提交开发者空间优化建议,还可以领取开发者礼包,包括但不限于华为耳机、手环、鼠标、云宝等好礼,快叫上小伙伴一起提建议吧~ 【实践项目】体验项目项目名称难度系数功能体验开发平台:云开发环境/案例体验开发者空间 - 云开发环境使用指导 ★★★开发者空间云开发环境使用指导-Linux★★★本地Xshell基于华为开发者空间云开发环境完成上传下载 ★★★本地IntelliJ IDEA 基于华为开发者空间云开发环境的应用开发 ★★★本地CodeArts IDE基于华为开发者空间云开发环境完成小游戏开发★★★ 本地VSCode基于华为开发者空间云开发环境完成小程序开发★★★基于华为开发者空间-云开发环境,部署Jupyter Notebook★★★ 基于华为开发者空间-云开发环境,PyCharm SSH远程开发环境搭建 ★★★ 基于远程开发环境部署Django与开发者空间GaussDB的实践应用 ★★★★基于开发者空间编写ODBC应用程序操作GaussDB数据库 ★★★ 基于华为开发者空间云开发环境部署Coze Studio + Maas构建智能体应用 ★★★★详细信息请见“开发平台”,案例中心。 【活动时间】2025年8月5日-9月5日 【参与方式】01 体验开发者空间开发平台 》 02 去云声平台提建议 》 03 建议评估公示 》 04 获奖公示(活动结束后两周内) ps:建议标题需要以“开发者空间体验官”开头 【奖项设置】奖项设置评选条件获奖名额激励礼品有效建议奖1、有效建议数量不少于2条,有效建议由内部技术专家评审得出2、建议内容需针对上述实践项目3、有效建议中有不低于一条是关于功能体验的3名积分榜第1名:1000元礼品/人积分榜第2名:800元礼品/人积分榜第3名:500元礼品/人优质建议奖1、优质有效建议不少于1条,由内部技术专家评审选出10名每人200元开发者定制礼品【活动说明】1、建议预审通过即为有效建议,其中1条有效功能类建议为1分,1条有效体验类建议为0.5分,1条有效Bug类建议0.5分;有效建议奖与优质建议奖不可叠加2、建议提交时需要在标题中以“【开发者空间体验官】”为建议标题开头,比如【开发者空间体验官】开发者空间增加XX/优化XX/导入XX等3、建议内容仅针对以上实践项目中“开发平台功能体验+开发平台案例体验”涉及的云产品,非以上实践项目涉及产品建议内容不参与此活动4、优质建议要求建议对云产品功能及优化改进有重要作用,优先从已被采纳的建议的选择;建议内容需要表述清晰,有明确的建议方案,最好有操作截图或链接等能进一步详细描述;高价值建议数量不限,且与有效建议奖可叠加,每位用户每月最多可获得一次。5、注意事项1)若出现积分相同且排名一致的情况,结合已实现和已采纳建议情况,由内部技术专家选出价值更高的建议用户给予奖励2)同一用户在同一页面(文档)提出的同一类用户体验问题(包括但不限于错别字、语句不通顺、视觉体验等),在通过审核后仅算作一条有效建议数3)若发现代他人提交优化建议,此建议分值只取原分值30%;若发现2次及以上重复提交他人建议,或3次及以上重复提交体验类相关建议进行恶意刷量(包括但不限于错别字、语句不通顺、视觉体验等),取消本人活动参与资格;在活动截止日前进行大量刷屏提交建议,或者重复提交同类型体验建议,直接取消活动参与资格4)以上兑换礼品均为仓库现有实物礼品,有货的情况下优先满足,其中1-3名可优先选择华为自营品牌电子礼品,礼品价值不能超过商品原价,无货则不可以指定,如遇商品缺货,将随机换成其他等价值礼品发放5)此【开发者空间体验官】与云声月度例行激励活动不叠加,若标题无【开发者空间体验官】标记,则有效建议默认参与月度例行激励
-
openGauss概述openGauss是关系型数据库,采用客户端/服务器,单进程多线程架构;支持单机和一主多备部署方式,同时支持备机可读、双机高可用等特性。openGauss有如下基本功能:1、支持标准SQLopenGauss数据库支持标准的SQL(Structured Query Language,结构化查询语言)。SQL标准是一个国际性的标准,定期会进行更新和演进。SQL标准的定义分成核心特性以及可选特性,绝大部分的数据库都没有100%支撑SQL标准。openGauss数据库支持SQL92/SQL99/SQL2003等,同时支持SQL2011大部分的核心特性,另外还支持部分的可选特性。2、支持标准开发接口openGauss数据库提供业界标准的ODBC(Open Database Connectivity,开放式数据库连接)及JDBC(Java Database Connectivity,java数据库连接)接口,保证用户能将业务快速迁移至openGauss。目前支持标准的ODBC3.5及JDBC4.0接口,其中ODBC能够支持CentOS、openEuler、SUSE、Win32、Win64等平台,JDBC无平台差异。3、混合存储引擎支持openGauss数据库支持行存储引擎、列存储引擎和内存存储引擎等。行存分为“inplace update” 和 “append update”两种模式,前者通过单独的回滚段(undo log)来保留元组的前像以解决读写冲突,可以更自然的支持数据更新;后者将更新记录混杂在数据记录中,通过新旧版本的形式来支持数据更新,对于旧版本需要定期做vacuum操作来支持磁盘空间的回收。列存支持数据快速分析,更适合OLAP(Online Analytical Processing,联机分析处理)业务。内存引擎支持实时数据处理,对有极致性能要求的业务提供支撑。4、事务支持事务支持指的就是系统提供事务的能力,openGauss支持事务的原子性、一致性、隔离性和持久性。事务支持及数据一致性保证是绝大多数数据库的基本功能,只有支持了事务,才能满足事务化的应用需求。用户和角色管理是数据库管理系统中的重要功能,用于管理数据库中的用户和角色,以控制对数据库的访问权限。用户是数据库中的实体,用于标识和管理数据库中的各种操作权限和资源使用权限。而角色是一组权限的集合,可以将一组用户分配到同一个角色上,从而简化权限管理和控制。在openGauss数据库中,用户和角色管理可以通过SQL语句或者openGauss控制台来完成。通过创建、修改、删除用户和角色,可以控制用户的身份验证和访问权限。用户 使用数据库系统服务的个体 职责单一,往往附属于某个组织或部门用户可以做什么 使用工具连接数据库 访问数据库对象 执行SQL语句角色 角色是一组用户的集合,按照数据库系统中承担的责任划分具有不同权限的角色;角色用来作 为权限集合的载体。 ⚫ openGauss 提供了一个隐式定义的拥有所有角色的组PUBLIC,所有创建的用户和角色默 认拥有PUBLIC所拥有的权限。 ⚫ 要撤销或重新授予用户和角色对PUBLIC的权限,可通过在GRANT和REVOKE指定关键字 PUBLIC实现。用户与角色⚫ 用户是实体,角色是行为。 ⚫ 用户可被赋予一个或多个角色。⚫ 角色是一种权限集合,不应该具有登录数据库并执行SQL的能力。 ⚫ 对用户权限的管理,可以简化为对角色权限的管理。 ⚫ 在openGauss中,用户和角色使用相同的操作方式与维护方式。实际使用中的选择在OpenGauss中,CREATE USER更常用于以下场景:需要创建实际登录数据库的账号时为应用程序或个人用户创建账户时而CREATE ROLE通常用于:创建权限组(如read_only_role, write_role等)实现权限继承和组合作为模板角色语法CREATE USER name [ [ WITH ] option [ ... ] ] 这里 option 可以是: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid修改角色/用户ALTER USER role_specification [ WITH ] option [ ... ] 其中 option 可以是: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' ALTER USER name RENAME TO new_name ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT } ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL删除角色/用户DROP USER [ IF EXISTS ] name [, ...]查询类操作: openGauss的用户、角色属性维护在pg_authid系统表中,pg_user、pg_roles视图也可以查询 用户、角色信息。 使用\d命令查看pg_authid表详细信息。 使用select命令查询pg_authid中的相关信息。角色属性角色可以拥有属性,属性确定了角色拥有的特权,并且在登录时与客户端认证系统进行交互。常见的角色属性包括:• 登录特权,只有具有 LOGIN 属性的角色才能连接数据库。具有 LOGIN 角色的用户可以被看作一个“数据库用户”。使用以下语句创建具有登录特权的角色:CREATE ROLE name LOGIN;CREATE USER name;CREATE USER 与 CREATE ROLE 都可以用于创建角色,只不过 CREATE USER 默认包含了 LOGIN 选项,而 CREATE ROLE 没有。• 超级用户,数据的超级用户可以避开所有的权限检查,只验证登录权限。因此,这是一个很危险的特权,使用时需要特别小心;最好在日常的操作中避免使用超级用户。使用以下命令创建一个新的超级用户:CREATE ROLE name SUPERUSER;只有超级用户才能创建其他的超级用户。• 创建数据库,只有明确授权的角色才能够创建数据库(超级用户除外,因为他们可以避开权限检查)。使用以下语句创建一个具有数据库创建特权的角色:CREATE ROLE name CREATEDB;• 创建角色,只有明确授权的角色才能够创建其他角色(超级用户除外,因为他们可以避开权限检查)。使用以下命令创建一个具有角色创建特权的角色:CREATE ROLE name CREATEROLE;具有 CREATEROLE 特权的角色还可以修改或删除其他角色,以及为这些角色授予或者撤销成员角色。但是,针对超级用户的创建、修改、删除,以及它的成员变更,需要超级用户特权;CREATEROLE 特权无法针对超级用户执行这些操作。• 启动复制,只有明确授权的角色才能够启动流复制(超级用户除外,因为他们可以避开权限检查)。用于流复制的角色还需要拥有 LOGIN 特权。使用以下语句创建可以用于流复制的角色:CREATE ROLE name REPLICATION LOGIN;• 密码,只有当用户连接数据库使用的客户端认证方法要求提供密码时,密码属性才有意义。password 和 md5 认证方法需要使用密码。数据库的密码与操作系统的密码相互独立。使用以下语句在创建角色时指定密码:CREATE ROLE name PASSWORD 'string';我们在创建角色时,可以根据需要指定某些属性。例如,以下命令创建一个具有登录特权的角色 tony,并且为它指定了密码以及密码过期时间:CREATE ROLE tony WITH LOGIN PASSWORD 'Pass2019' VALID UNTIL '2020-01-01';-- CREATE USER tony WITH PASSWORD 'Pass2019' VALID UNTIL '2020-01-01';使用该用户连接到 postgres 数据库:[root@centos7 ~]# psql -h 192.168.56.103 -p 5432 -U tony postgresPassword for user tony:psql (14.2)Type "help" for help.postgres=> \cYou are now connected to database "postgres" AS user "tony".psql 命令行工具支持许多选项,-h 表示数据库服务器的地址,-p 表示服务的监听端口,-U表示登录使用的用户名,最后的 postgres 代表要连接的数据库。详细的命令行参数可以使用 psql--help 查看。以下命令创建一个管理角色 admin,它具有创建数据库和创建角色的特权:opengauss=# CREATE ROLE admin CREATEDB CREATEROLE; CREATE ROLE在实践中,最好创建一个拥有 CREATEDB 和 CREATEROLE 特权,但不具有超级用户特权的管理角色,然后使用该角色执行日常的数据库和角色的管理。这种方式可以避免过度使用超级用户可能带来的风险。一个角色被创建之后,可以通过 ALTER ROLE 语句修改它的属性。例如,以下命令可以撤销角色 admin 创建角色的特权:opengauss=# ALTER ROLE admin NOCREATEROLE; ALTER ROLE2.3 对象授权当我们使用新创建的用户(tony)连接数据库(hrdb)之后,执行以下查询语句:hrdb=> SELECT * FROM employees; ERROR: permission denied for table employees以上语句执行错误是因为用户没有相应对象上的访问权限。opengauss使 GRANT 语句进行数据库对象的授权操作。以表为例,基本的授权语法如下:GRANT privilege_list | ALL ON [ TABLE ] table_name TO role_name;其中,privilege_list 权限列表可以是 SELECT、INSERT、UPDATE、DELETE、TRUNCATE等,ALL 表示表上的所有权限。例如,使用 gauss用户连接 hrdb 数据库后执行以下语句:hrdb=# GRANT SELECT, INSERT, UPDATE, DELETE hrdb-# ON employees, departments, jobs hrdb-# TO tony;GRANT该语句将 employees、departments 和 jobs 表上的增删改查权限授予了 tony 用户。此时 tony用户就可以访问这些表中的数据:hrdb=> SELECT first_name, last_name FROM employees;对表进行授权的 GRANT 语句还支持一些其他选项:GRANT privilege_list | ALL ON ALL TABLES IN SCHEMA schema_name TO role_name;ALL TABLES IN SCHEMA 表示某个模式中的所有表,可以方便批量授权操作。例如:hrdb=# GRANT SELECT hrdb-# ON ALL TABLES IN SCHEMA public hrdb-# TO tony;GRANT该语句将 public 模式中所有表的查询权限授予 tony 用户。我们也可以在 GRANT 语句的最后指定一个 WITH GRANT OPTION,意味着被授权的角色可以将该权限授权其他角色。例如:hrdb=# GRANT SELECT, INSERT, UPDATE, DELETE hrdb-# ON employees, departments, jobs hrdb-# TO tony WITH GRANT OPTION;此时,tony 用户不但拥有这些表上的访问权限,还可以将这些权限授予其他角色。除了授权表的访问权限之外,GRANT 语句还支持字段、视图、序列、数据库、函数、过程、模式等对象的授权操作。2.4 撤销授权与授权操作相反的就是撤销权限,opengauss使 REVOKE 语句撤销数据库对象上的权限。同样以表为例,基本的撤销授权语句如下:REVOKE privilege_list | ALL ON TABLE table_name FROM role_name;其中的参数和 GRANT 语句一致。例如:hrdb=# REVOKE SELECT, INSERT, UPDATE, DELETE hrdb-# ON employees, departments, jobs hrdb-# FROM tony;REVOKE该语句撤销了用户 tony 访问 employees、departments 以及 jobs 表的权限。REVOKE 语句也支持对某个模式中的所有对象进行操作:REVOKE privilege_list | ALL ON ALL TABLES IN SCHEMA schema_name FROM role_name;例如以下语句撤销了用户 tony 在 public 模式中所有表上的查询权限:hrdb=# REVOKE SELECT hrdb-# ON ALL TABLES IN SCHEMA public hrdb-# FROM tony;REVOKE与 GRANT 语句对应,REVOKE 语句还支持字段、视图、序列、数据库、函数、过程、模式等对象的撤销授权操作。2.5 角色成员在现实的环境中,管理员通常需要管理大量的用户和对象权限。为了便于权限管理,减少复杂度,可以将用户进行分组,然后以组为单位进行权限的授予和撤销操作。为此,opengauss引入了组(group)角色的概念。具体来说,就是创建一个代表组的角色,然后将该组的成员资格授予其他用户,让其成为该组的成员。首先,使用以下创建一个组角色:CREATE ROLE group_name;按照习惯,组角色通常不具有 LOGIN 特权,也就是不能作为一个用户登录。例如,我们可以先创建一个组 managers:CREATE ROLE managers;然后,使用与对象授权操作相同的 GRANT 和 REVOKE 语句为组添加和删除成员:GRANT group_name TO user_role, ... ; REVOKE group_name FROM user_role, ... ;我们将用户 tony 添加为组 managers 的成员:opengauss=# GRANT managers TO tony; GRANT ROLE最后一行输出显示了成员角色(tony)所属的组(managers)。也可以将一个组添加为其他组的成员,因为组角色和非组角色并没有什么本质区别。opengauss=# GRANT admin TO managers; GRANT ROLE另外,opengauss不允许设置循环的成员关系,也就是两个角色互相为对方的成员。opengauss=# GRANT managers TO admin; ERROR: role "managers" is a member of role "admin"最后,不能将特殊角色 PUBLIC 设置为任何组的成员。组角色中的成员可以通过以下方式使用该组拥有的特权:• 首先,组中的成员可以通过 SET ROLE 命令将自己的角色临时性“变成”该组角色。此时,当前数据库会话拥有该组角色的权限,而不是登录用户的权限;并且会话创建的任何数据库对象归组角色所有,而不是登录用户所有。• 其次,对于具有 INHERIT 属性的角色,将会自动继承它所属的组的全部特权,包括这些组通过继承获得的特权。考虑以下示例:CREATE ROLE user1 LOGIN INHERIT; CREATE ROLE net_admins NOINHERIT; CREATE ROLE sys_admins NOINHERIT; GRANT net_admins TO user1; GRANT sys_admins TO net_admins;使用角色 user1 登录之后,数据库会话将会拥有 user1 自身的特权和 net_admins 所有的特权,因为 user1“继承”了 net_admins 的特权。但是,会话还不具有 sys_admins 所有的特权,因为即使user1 间接地成为了 sys_admins 的成员,通过 net_admins 获得的成员资格具有 NOINHERIT 属性,也就不会自动继承权限。如果执行了以下语句:SET ROLE net_admins;会话将会拥有 net_admins 所有的特权,但是不会拥有 user1 自身的特权,也不会继承sys_admins 所有的特权。如果执行了以下语句:SET ROLE sys_admins;会话将会拥有 sys_admins 所有的特权,但是不会拥有 user1 或者 net_admins 所有的特权。如果想要恢复初始状态的会话特权,可以执行以下任意语句:SET ROLE user1; SET ROLE NONE; RESET ROLE;在 SQL 标准中,用户和角色之间存在明确的差异,用户不会自动继承特权,而角色会继承特权。opengauss可以实现这种行为,只需要为角色设置 INHERIT 属性,而为用户设置NOINHERIT 属性。但是,为了兼容 8.1 之前的版本实现,PostgreSQL 默认为所有的角色都设置了 INHERIT 属性,这样用户总是会继承它所在组的权限。只有数据库对象上的普通权限可以被继承,角色的 LOGIN、SUPERUSER、CREATEDB 以及 CREATEROLE 属性可以被认为是一些特殊的权限,不会被继承。如果想要使用这些权限,必须使用 SET ROLE 命令设置为具有这些属性的角色。基于上面的示例,我们可以为 net_admins 角色指定 CREATEDB 和 CREATEROLE 属性。ALTER ROLE net_admins CREATEDB, CREATEROLE;然后再使用 user1 连接数据库,会话不会自动具有这些特权,而是需要执行以下命令:SET ROLE net_admins;2.6 删除角色删除角色的语句如下:DROP ROLE name;如果删除的是组角色,该组中的成员关系会自动从组中删除,但是这些成员角色自身不会受到任何影响。以下示例删除了角色 admin:opengauss=# drop role admin; DROP ROLE由于角色可以拥有数据库中的对象,也可以拥有访问其他对象的权限,删除角色通常不仅仅只是一个简单的 DROP ROLE 语句。在删除角色之前,需要删除它所拥有的对象,或者将这些对象重新赋予其他的角色;同时还需要撤销授予该角色的权限。
-
openGauss 是一款全面友好开放,携手伙伴共同打造的企业级开源关系型数据库。openGauss采用木兰宽松许可证v2发行,提供面向多核架构的极致性能、全链路的业务、数据安全、基于AI的调优和高效运维的能力。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。同时,openGauss也是一个开源、免费的数据库平台,鼓励社区贡献、合作。数据库作为信息系统基础底座软件,在大数据背景下,数据库的数据量和节点规模日益增长,数据库使用方越来越看重系统运行是否稳定、安全和高效,这也使数据库自身的运行与维护的要求也随之增高。是否拥有成熟健全的运行维护体系,支撑团队的数据库运维管理能力是否足够专业化和标准化,这都将影响和制约着整个企业信息化发展的步伐。数据库运维一般会涉及到数据存储方案设计、数据库表设计、索引设计和SQL优化等,另外还包括对数据库进行变更、监控、备份、高可用设计等工作。本文将从数据库运维的角度简单介绍一下openGauss在日常运维工作中常用的操作命令,以便能够帮助大家轻松使用openGauss数据库。常用运维相关命令第一组:openGauss启停高斯数据库的启动/停止/重启指令:gs_ctl start -D /home/gauss/openGauss/data/ gs_ctl stop-D /home/gauss/openGauss/data/ gs_ctl restart -D /home/gauss/openGauss/data/#查看进程ps ux |grep gauss#查看端口号netstat -lntup|grep gauss ss -lntup|grep gauss第二组:openGauss库表指令#进入到高斯数据库使用jack用户连接到远程主机postgres数据库的15400端口。复杂格式gsql -h 10.180.123.163 -d postgres -U jack -p 15400[gauss@server1 ~]$ gsql -d postgres -p 5432 gsql ((openGauss-lite 6.0.1 build 84c20a90) compiled at 2025-01-17 17:49:04 commit 0 last mr release) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=##查看相应的数据库openGauss=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+-------+----------+-------------+-------------+------------------- human_staff | gauss | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | postgres | gauss | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | template0 | gauss | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/gauss + | | | | | gauss=CTc/gauss template1 | gauss | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/gauss + | | | | | gauss=CTc/gauss (4 rows)#库的删除drop database human_staff; DROP DATABASE#创建数据库openGauss=# create database human_staff; CREATE DATABASE#和\l 类似 查看库指令openGauss=# SELECT datname FROM pg_database; datname ------------- template1 human_staff template0 postgres (4 rows)#进入到human_staffopenGauss=# \c human_staff Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "human_staff" as user "gauss". #下面的指令不会成功,不是mysql的指令。 human_staff=# select * from tables;第三#查看表信息#human_staff=# \dt No relations found.human_staff=# create table users(id int,uname varchar(50)); CREATE TABLE human_staff=# \dt List of relations Schema | Name | Type | Owner | Storage --------+-------+-------+-------+---------------------------------- public | users | table | gauss | {orientation=row,compression=no} (1 row) human_staff=# insert into users values(1,'tom'); INSERT 0 1 human_staff=# select * from users; id | uname ----+------- 1 | tom (1 row) #变量的设置#设置变量 openGauss=# \set dbname2 shopdb #显示变量 openGauss=# \echo :dbname2 shopdb #删除变量 openGauss=# \unset dbname2#解决:^A H问题; bash # 在root用户下,安装rlwrap sudo yum install rlwrap # 使用rlwrap运行gsql rlwrap gsql -d postgres -p 5432第三组:openGauss表数据管理需要提前创建库omm1、创建一张表 products字段名数据类型含义product_idinteger产品编号product_namechar(30)产品名categorychar(20)种类----建表语句create table products ( product_id integer, product_name char(30), category char(20) ) ;----查看表的结构omm=# \d products2、向表中插入数据,分别采用一次插入一条和一次插入多条记录的方式insert into products(product_id,product_name,category) values (1502, ‘olympus camera’, ‘electrncs’); insert into products(product_id,product_name,category) values (1601,‘lamaze’,‘toys’), (1700,‘wait interface’,‘Books’), (1666,‘harry potter’,‘toys’);3、查询表中所有记录及记录数select count(*) from products; select * from products;4、查询表中所有category记录,并将查询结果按升序排序select category from products order by category asc;5、查询表中category为toys的记录select * from products where category = ‘toys’;6、更改表中某个字段的值update products set product_name=‘camera’ where product_id=1502;select * from products;6、删除表productsdrop table products; select * from products;总结openGauss数据库作为一款基于SQL标准的关系型数据库管理系统,支持广泛的SQL指令进行数据操作、查询、管理以及权限控制。OpenGauss提供面向多核的极致性能、全链路的业务和数据安全、基于AI的调优和高效运维的能力让我受益匪浅。尤其是OpenGauss在AI自治方面的能力真是令人惊喜。自调优、自诊断自愈、自组装这三大自治简直是所有dba的福音。
-
本期获奖情况如下,恭喜各位获奖者~~~~温馨提示:获奖用户请提前实名认证,以便顺利发放代金券!代金券和礼品的发放信息收集地址:cid:link_12,请及时填写信息。代金券即将发放至论坛私信(右上角我的社区-我的消息-私信中领取),礼品已在申请流程中,请耐心等待,谢谢!多篇文章的本期以最高奖项的发放,不叠加。如发布3篇,2篇参与奖,1篇三等奖,按三等奖发放。类型主题作者帖子标题奖项文章banjin【案例共创】在开发者空间云开发环境使用Vanna配合ollama/maas基于GaussDB的自然语言分析系统二等奖xiaowuyun【案例共创】基于远程开发环境部署Django与开发者空间GaussDB的极简博客系统二等奖苏家祺【案例共创】远程开发环境中部署Bun + Next.js + tRPC与开发者空间生态版GaussDB实践操作并编写学生成绩管理系统二等奖给无眠点压力【案例共创】基于开发者空间云开发环境与 GaussDB 的JAVA多租户 SaaS 实践(Spring Boot + MyBatis-Plus)二等奖夏同学【案例共创】基于华为云开发者云主机创建部署 AdonisJS 与华为云数据库 GaussDB 的实践应用三等奖小草飞上天【案例共创】基于IDEA连接云开发环境并结合GaussDB构建JAVA程序抽奖小应用三等奖miyalian【案例共创】基于华为开发者空间云开发环境+GaussDB实现在线考试系统三等奖风吹雨【案例共创】基于远程开发环境部署企业级商城Litemall与开发者空间GaussDB的实践应用参与奖郑小健【案例共创】基于华为开发者空间-云开发环境实现PyCharm SSH远程开发环境搭建参与奖熊猫钓鱼【案例共创】华为云GaussDB企业级电商订单分析系统开发案例参与奖江南清风起【案例共创】基于华为开发者空间云开发环境和GaussDB数据库—员工工资管理系统实战参与奖yd_273825949我的第一个云上应用:基于华为云开发者空间和GaussDB的极简留言墙参与奖柠檬味拥抱【案例共创】基于远程开发环境部署Flask与开发者空间GaussDB的实践应用构建在线TODO清单(保姆级指南实战案例)参与奖Todd_Wong2010【案例共创】海思3516DV500+IMX664方案一体化机芯,开放AI算法部署二次开发参与奖视频banjin开发者空间云开发环境使用Vanna配合ollama基于GaussDB的自然语言分析系统(https://www.bilibili.com/video/BV1h8Y9zMEYT/)二等奖xiaowuyun【华为开发者空间:开发环境部署Django,Pillow,markdown与GaussDB的极简博客系统-哔哩哔哩】( https://b23.tv/HTlw1em)二等奖创作小能手奖郑小健 柠檬味拥抱 了解案例共创活动 为了让更多开发者能够更轻松、更高效地理解和使用我们的文档,进而提升云产品的整体使用体验,我们致力于进一步优化和完善官方产品文档。在此过程中,我们诚挚地邀请广大开发者积极参与,通过亲身体验云产品,编写实践案例或体验评测。一旦您的案例经过专家评审团的认可与采纳,将有以下三点:优质案例将被正式收录至官方案例库,供广大开发者学习。优质案例将选送到在华为云站内外10+个技术社区推荐,给予百万级流量资源。以上案例我们都将注明原作者名字,实现与开发者共创官方文档。 参与者不仅有机会获得每月活动礼品,还有可能被评为年度内容贡献官,享受更多荣誉和奖励,获得更多合作机会。我们期待着与您一起,共同打造更加优质、高效的云服务体验。参与投稿方式 第1步:(已注册并实名可跳过)华为云账号实名认证,点击这里。(已设置可跳过)登录后设置社区昵称,点我设置。第2步:点击报名填写报名问卷,提供礼品发放地址等信息第3步:开启您的云端体验,分享实践案例,点我写帖子。版块选择“社区活动”分类选择“案例共创”帖子标题在前面添加【案例共创】(一定要加,方便识别参与活动的帖子)文末可添加活动名称及链接地址,如“我正在参加【案例共创】第6期 开发者空间-基于云开发环境和GaussDB构建应用 cid:link_29”【如您在体验中有任何产品问题,欢迎在论坛发布问题求助帖(帖子分类选择问题求助)咨询产品专家,如发现任何体验不友好、产品Bug、文档页面错漏等情况,欢迎通过云声平台反馈给我们,还有机会领取云声专属礼品!活动相关咨询可以论坛私信“论坛小助手SUN”】本期投稿内容 Ø 华为云产品介绍:华为开发者空间 - 云开发环境: 华为开发者空间 - 云开发环境是华为开发者空间提供远程云开发环境,开发者可在本地通过工具和浏览器多种形式接入开发环境,完成编码开发、远程操作、项目部署及本地访问等多个场景的作业活动,开发者可以轻松完成本地PC开发环境到云开发环境的无缝切换。云开发环境操作指导参考:云开发环境链接:cid:link_14开发者空间 - 云开发环境使用指导:Windows版-cid:link_0Linux版-cid:link_1MACOS版-cid:link_1本地IDE和工具连接云开发环境:基于华为开发者空间-云开发环境,PyCharm SSH远程开发环境搭建:cid:link_3基于华为开发者空间-云开发环境,部署Jupyter Notebook:cid:link_4本地IntelliJ IDEA 基于华为开发者空间云开发环境的应用开发:cid:link_5本地CodeArts IDE基于华为开发者空间云开发环境完成小游戏开发:cid:link_6本地VSCode基于华为开发者空间云开发环境完成小程序开发:cid:link_7本地Xshell基于华为开发者空间云开发环境完成上传下载:cid:link_8GaussDB:GaussDB是华为自主创新研发的分布式关系型数据库。该产品支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。GaussDB资源获取链接:领取免费版GaussDB(2025年06月 21日 - 2025年 12月 31日,数量有限):cid:link_9Ø 应用构建要求开发者可结合自己的工作实践,应用构建类型和主题参考如下:基于华为开发者空间云开发环境和免费GaussDB数据库实例完成应用开发;主题场景参考以下方向:基于本地IDE连接远程云开发环境完成应用代码编写和部署,以GaussDB数据库作为应用数据读存的数据库,并在本地访问应用。Ø 手册案例模版参考云开发环境结合GaussDB的应用实践:1)案例地址:cid:link_10简介:基于云开发环境完成Django Web框架部署,通过本地IDE连接云开发环境完成Web应用的开发,并通过Django对接GaussDB数据库,以GaussDB数据库作为Web应用的数据存储读取,最后通过端口映射实现本地访问Web应用(注意:案例编写格式务必参考模板!) (注意:案例编写格式务必参考模板!) (注意:案例编写格式务必参考模板!) Ø 投稿规则手册类投稿: 构建的应用需要完成端到端构建,手册包含应用在开发者空间运行的完整截图。手册包含开发过程关键实际操作描述(文字描述+截图+代码)。手册的案例实操需要完整体现,可根据手册上手并体验。手册包含案例场景和方案以及用到的华为云产品或者开源框架简述。视频类投稿: 构建的应用需要完成发布,视频包含应用在线情况的展示。视频包含案例场景和方案以及用到的华为云产品或者开源框架简述。视频包含开发过程详细的实际操作。视频的案例实操需要完整体现,可根据视频上手并体验。视频需发在外部视频平台上(如:B站等平台),在该活动贴下回复视频链接即可。Ø 评奖规则标准类型分值释义分值阶梯总分值操作完整性关键节点以文字+截图的形势进行说明1:空间的实践操作,而非方案类描述2:参考官方提供模版,可读性好,有关键节点文字说明与截图3:符合2的条件下能够突出关键代码释义以及关键步骤解释说明4:应用构建后可执行,并有执行后效果介绍和展示1-4/0.5梯度4案例实用性贴近实际行业生产或者业务场景1:纯技术应用不涉及实际应用场景,比如接入模型后的问答助手2:基于实际应用场景具有一定的实用性3:基于实际场景且在开发者空间完成部署实施4:基于实际应用场景解决行业的痛点问题,可用于生产实施1-4/0.5梯度4技术多样性案例中应用更多的华为云技术或主流开源框架1:使用活动中要求的空间以及工具或者技术2:基于空间结合更多的华为云技术/服务、开源框架或技术1-2/0.5梯度2荣誉与奖励1、获奖案例将有机会作为华为云开发者空间应用的标杆案例,进行录入成册推广宣传,并发布到华为云开发者联盟公众号传播矩阵。同时,案例内容可作为后续作者申请评选HCDE的相关贡献内容。标杆案例:【华为开发者空间 · 案例共创故事(郑州轻工业大学)】(https://mp.weixin.qq.com/s/pPmPcdlWYLPalzJPqxIfew) Ø 奖项设置 视频案例奖项:文章案例奖项: 注:每期评审专家根据每篇文章评选文章分数及等级,每期文章质量不一,不排除有某个奖项轮空的情况,如第X期文章质量在A级和B级,即S和S+级轮空。代金券及周边礼物发放对象为:已完成实名认证的华为云用户。发放到填写报名问卷的账号及收货地址中,礼包类礼品均为实物礼品。 重要说明1、投稿内容一经采用,将会被纳入官方产品文档,文章作者拥有著作权,华为云拥有使用权、修改权等。2、每期评审专家根据每篇文章评选文章分数及等级,每期文章质量不一,不排除有某个奖项轮空的情况,如第X期文章质量在A级和B级,即S和S+级轮空3、投稿内容字数不少于500字(不含代码),要求思路清晰、文字顺通、图片清晰、代码规范,不得有打广告、加二维码引流和凑字数行为。4、文章要求发布在华为云开发者社区论坛,允许搬运自己发在其他平台的文章,但仅支持搬运自己的原创文章,搬运他人的文章当抄袭处理。内容必须保证内容原创性,实践过程真实、内容代码化,如发现投稿内容为转载、复制、抄袭、恶意拼接、灌水等侵权作弊行为,均视为无效并取消参与资格5、将发表过的文章删除后重新发表的文章,不计入发文数量,以文章评选时在线显示数量为准。活动期间,如有用脚本刷阅读量、注册僵尸号刷赞等严重违反社区规范的行为,直接取消所有获奖资格。6、审核通过被采纳的文章作者,将在下月初进行获奖名单公布和奖励发放,届时会有站内信通知,请及时关注并填写快递信息,过期未核对或填写视为放弃该期奖品。7、对于持续输出高质量内容的作者,每年度末还有年度贡献大礼包送上。特别声明:华为云有权根据自身运营安排,自主决定和调整
-
当别人已在鸿蒙生态接单月入3万+,你还在Java内卷?当大模型重构IT岗位,传统运维正批量淘汰…体贴的深圳人社为您再次奉上信创技术/鸿蒙系统/麒麟系统等新一代信息应用技术生存技能大餐• 信创智算与大模型技术课程• 开源高斯数据库技术课程• 鸿蒙原生应用开发课程• 开源鸿蒙设备应用技术课程• 前沿 科技 国产系统应用 还等什么基于麒麟操作系统的信创基础软件适配迁移与运维课程 【理论授课、现场实战、组队攻坚】告别枯燥的理论推砌聘请行业专家担任讲师5门免费课程助你抢占信息技术高地,满级晋升!最重要的是全!免!费!咱不花一分钱就开启成长与蜕变的大门报名有啥要求?咋报名?快随我往下看吧!一、 报名条件报名学员需具有新一代电子信息应用技术相关的行业从业背景或具备相关专业背景,并满足以下条件之一即可:1.本市户籍人员;2.在本市正常缴交社会保险的人员;3.深圳市登记失业人员;4.在深圳市公共就业服务机构进行离校两年未就业实名登记的本市高校毕业生;5.本市高校或本市户籍在市外高校的毕业年度(指毕业时间在2025年1月1日至12月31日之间)毕业生(含技师学院高级工班、预备技师班)。温馨提示:(1)同一劳动者同一年度只能参加1次项目制培训哦。如果您已经参加2024年度项目制培训但未完成规定学时50%以上,很遗憾,那无法参加2025年度的项目制培训了哦。(2)同一劳动者同一年度内企业新型学徒制培训,学生学徒制培训、技培生学徒制培训只能参加一次,且均不能和项目制培训同时享受。等等先别急还没完!还有额外补贴!【额外补贴】如您满足以下条件之一:• 本市就业困难人员• 本市零就业家庭成员• 本市就业残疾人• 本市城市低保家庭成员• 本市毕业2年内的“两后生”中的农村学员• 本市求职就业的脱贫人员不仅可以免费学课程还可以再领500元的生活补贴金💴! 接下来咱们看一下具体学习内容吧!二、 学习内容以及报名方式 新一代电子信息应用技术项目制培训 指导单位:深圳市人力资源和社会保障局主办单位 :深圳市职业技能培训指导中心承办单位:深圳职业技术大学1、信创智算与大模型技术课程课程内容培训天数培训名额主要内容包括:1.基于昇腾平台的 DeepSeek 模型搭建与优化2.华为云昇腾算力支持下的私有场景大模型部署3.基于昇腾与 DeepSeek 的私有大模型自主训练4.电商场景下大模型的创新应用与拓展6天约300人 信创智算与大模型技术课程报名二维码及交流群(QQ群) 2、开源高斯数据库技术课程课程内容培训天数培训名额主要内容包括:1.高斯数据库安装与对象管理实操2.场景化高斯数据库实验探索3.数据库AI策略与技巧4.数据安全管理与防护6天约250人开源高斯数据库技术课程报名二维码及交流群(QQ群) 3、 鸿蒙原生应用开发课程课程内容培训天数培训名额主要内容包括:1.基于ArkTSUI框架搭建实训云平台2.鸿蒙原生办公签到系统开发3.基于Next版本开发实时社交软件联动DeepSeek实现聊天问答4.基于鸿蒙服务卡片开发音乐推荐软件5.鸿蒙原生健康服务检测软件开发6天约250人 鸿蒙原生应用开发课程报名二维码及交流群(QQ群) 4、 开源鸿蒙设备应用技术课程课程内容培训天数培训名额主要内容包括:1.OpenHarmony搭建与配置2.开源鸿蒙设备驱动开发和集成3.基于开源鸿蒙的HAL层开发4.基于开源鸿蒙的智能家居软硬件开发6天约250人 开源鸿蒙设备应用技术课程报名二维码及交流群(QQ群) 5、基于麒麟操作系统的信创基础软件适配迁移与运维课程课程内容培训天数培训名额主要内容包括:1.银河麒麟桌面操作系统 V10 的管理应用2.掌握适配测试基础及软硬件适配测试技能6天约250人 基于麒麟操作系统的信创基础软件适配迁移与运维课程报名二维码及交流群(QQ群) 三、成长与收获1.掌握实用技能,提高自身职业技能,增强就业竞争力,优化职业发展路径;2.培训考勤达标且考核通过将获得《深圳市职业技能提升培训合格证书》;3.可自行选考行业权威认证:HCIA-AI认证、HCIA-openGauss认证、HarmonyOS应用开发者认证、开放原子OpenHarmony人才认证、KYCA、KYCP认证(不含考证费)。四、班级设置l 7月29日-9月30日 开设日常精品班(周一到周六)开设周末精品班(周六或周日单日班)l 7月29日-10月20日开设周末精品班(周六或周日单日班)五、咨询与联络黄老师:13528095312(微信同号)周老师:0755-26019607咨询时间:工作日9:00- 18:00其他时间咨询联系QQ群工作人员六、培训地点深圳职业技术大学西丽湖园区(信息楼)建议绿色出行:深圳地铁5号线西丽地铁站F口步行800米。公交车站-深圳职业技术大学(西丽湖园区),线路包括M197、M182、M176、M492、高峰专线59、325、M535、M217、67、326等。 别再犹豫,抓住这个难得的机会,让自己在公益性培训中实现华丽转身!立即报名,开启你的成长之旅!
-
📰 GaussDB简介GaussDB是华为自主创新研发的分布式关系型数据库。该产品支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。高安全GaussDB拥有TOP级的商业数据库安全特性,能够满足政企和金融级客户的核心安全诉求。安全特性包括:数据动态脱敏,行级访问控制,密态计算。健全的工具与服务化能力GaussDB已经拥有华为云,商用服务化部署能力,同时支持DAS、DRS等生态工具。有效保障用户开发、运维、优化、监控、迁移等日常工作需要。全栈自研GaussDB基于鲲鹏生态,是当前国内唯一能够做到全栈自主可控的国产品牌。同时GaussDB能够基于硬件优势在底层不断进行优化,提升产品综合性能。开源生态GaussDB已经支持开源社区。🚀 领取免费版/购买付费版介绍和指引01 领取免费版GaussDB免费报名领取GaussDB在线试用版(2025年06月 21日 - 2025年 12月 31日),有1000个名额,数量有限。领取与使用方法见如下案例内容:华为开发者空间-GaussDB云数据库领取与使用指导02 购买付费版GaussDB购买GaussDB数据库实例可参考购买付费版GaussDB✍️ GaussDB数据库实操📚 01 GaussDB之基本SQL语法实践SQL是用于访问和处理数据库的标准计算机语言,SQL语言由用于处理数据库和数据库对象的命令和函数组成,GaussDB默认支持SQL:2016的大部分特性。GaussDB提供界面化工具DAS连接数据实例,执行SQL语句完成数据库用户、数据库、数据表以及记录的增删改查等SQL操作实践:基于开发者空间GaussDB数据库完成SQL基本语法实践 📚 02 基于GaussDB数据库PL/pgSQL的实践PLPGSQL是一种过程化SQL语言(Procedural Language/Postgres SQL),PL/pgSQL是PostgreSQL数据库对SQL扩展的高阶SQL。在普通SQL语句的使用上增加了编译语言的特点,所以PL/pgSQL就是把数据操作和查询语句组织在PL/pgSQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。通过实际操作,让大家深入了解如何利用 PL/pgSQL 开发并部署一个函数功能模块。在这个过程中,大家将学习到从函数创建、数据批量读取到SQL程序编写以及与触发器集成等一系列关键步骤,从而掌握 PL/pgSQL 的基本使用方法,体验其在应用开发中的优势。实践:GaussDB数据库之PL/pgSQL实践一本案例详细介绍了PL/pgSQL的变量,条件控制,循环控制,ERROR抓取,NULL语句,匿名块与存储过程等知识在GaussDB中的应用。实践:GaussDB数据库之PL/pgSQL实践二本实例详细介绍了PL/pgSQL的游标,自定义函数,触发器,信息打印,常用SQL在GaussDB中的实践。 📚 03 通过三方驱动连接GaussDB数据库完成数据开发(需要购买EIP)GaussDB支持通过JDBC、ODBC、libpq、Psycopg、Go、ecpg等接口来连接数据库并进行操作。Psycopg是一种用于执行SQL语句的PythonAPI,可以为GaussDB数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg3是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配GaussDB数据类型。实践:在开发者空间使用gaussdb-python连接GaussDBODBC(Open Database Connectivity,开放数据库互连)是由Microsoft公司基于X/OPEN CLI提出的以C/C++语言来访问数据库的应用程序编程接口。它提供了一种统一的方法,让应用程序可以访问各种数据库管理系统(DBMS),而不用考虑具体的数据库类型或者操作系统平台。ODBC允许应用程序使用SQL来查询、插入、更新和删除数据库中的数据。应用程序通过ODBC提供的API与数据库进行交互,增强了应用程序的可移植性、扩展性和可维护性。实践:基于开发者空间编写ODBC应用程序操作GaussDB数据库 📚 04 基于GaussDB数据库实现业务场景的实践(需要购买EIP)GaussDB广泛用于金融、政府、电商等领域,能够支持各领域高并发、高可用等业务场景。Django是一个高级的Python Web应用框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责处理网站开发中麻烦的部分,可以专注于编写应用程序,而无需重新开发。GaussDB数据库支持对接Django框架,作为Django WEB项目的数据库存取数据。实践:在华为开发者空间云开发环境部署Django与GaussDB对接的实践应用 📚 05 GaussDB之分区表和AI特性实践分区表在数据库中使用广泛,尤其在数据库大表中对数据拆分,分表等领域,利用分区把表数据划分多个不同数据文件,利用表空间可把不同分区的表数据分布在不同磁盘,可以充分利用磁盘I/O和数据文件并行读取,以分区方式优化索引起到查询性能提升(因为不同分区会使优化器对执行计划剪枝)。GaussDB开发并优化项目中业务应用的SQL语句等功能。在这个过程中,大家将学习到从AI函数的引用、AI功能的原理以及分析AI能力等一系列关键步骤,从而掌握 GaussDB-AI的基本使用方法,体验其在应用开发中的优势。实践:GaussDB之分区表的优化与应用本案例详细讲述了大数据量的表在查询时,针对查询条件和数据特征,给大表数据做物理上的分区存储,基于不同表空间,利用多磁盘IO并行读写数据,优化并提升性能。实践:GaussDB-AI特性之索引智能推荐本案例详细讲述了AI特性里的索引智能推荐功能,根据GaussDB提供的gs_index_advise()接口,根据实际的SQL执行计划,智能推荐出更好的索引并大大优化SQL性能。
-
购买实例登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“实例管理”页面,单击“购买数据库实例”。在创建实例页面,选择计费模式、填写实例名称、选择产品类型、数据库引擎版本、实例类型、部署形态等实例基本信息。计费模式:按需计费区域、项目:选择默认配置实例名称:自定义,命名为便于识别的名称产品类型:企业版数据库引擎版本:8.103实例类型:主备版部署形态:1主2备可用区:可用区一时区:选择默认配置选择实例规格。性能规格:独享型(1:4)、4 vCPUs | 16 GB存储类型:超高IO存储空间:40GB磁盘加密:不加密配置网络信息,选择默认配置即可。配置实例密码、企业项目信息。管理员密码:自定义,设置高强度密码,以提高安全性确认密码:和管理员密码相同企业项目:default其他参数使用默认配置单击“立即购买”,核对实例信息,单击“提交”。返回实例列表。当实例运行状态为“正常”时,表示实例创建完成。
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签