华为云用户手册

  • 响应参数 表5 响应Body参数 参数 参数类型 描述 group Object 用户组信息。 表6 group 参数 参数类型 描述 description String 用户组描述信息。 id String 用户组ID。 domain_id String 用户组所属帐号ID。 name String 用户组名。 links Object 用户组的资源链接信息。 create_time Long 用户组创建时间。 表7 group.links 参数 参数类型 描述 self String 资源链接地址。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8” X-Auth-Token 是 String 访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 表3 请求Body参数 参数 是否必选 参数类型 描述 group 是 Object 用户组信息。 表4 group 参数 是否必选 参数类型 描述 description 否 String 用户组描述信息,长度小于等于255字符。name与description至少填写一个。 domain_id 否 String 用户组所属帐号ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 name 否 String 用户组名,长度1~128字符。name与description至少填写一个。
  • 获取帐号、IAM用户、项目的名称和ID 从控制台获取帐号名、帐号ID、用户名、用户ID、项目名称、项目ID 在华为云首页右上角,单击“控制台”。 在右上角的用户名中选择“我的凭证”。 图1 进入我的凭证 在“我的凭证”界面,API凭证页签中,查看帐号名、帐号ID、用户名、用户ID、项目名称、项目ID。 每个区域的项目ID有所不同,需要根据业务所在的区域获取对应的项目ID。 图2 查看帐号名、帐号ID、用户名、用户ID、项目名称、项目ID 调用API获取用户ID、项目ID 获取用户ID请参考:管理员查询IAM用户列表。 获取项目ID请参考:查询指定条件下的项目列表。
  • 企业管理系统与华为云联邦身份认证交互流程 图5为用户在发起单点登录请求后,企业管理系统与华为云间的交互流程。 图5 联邦身份认证交互流程 为方便您查看交互的请求及断言消息,建议您使用Chrome浏览器并安装插件“SAML Message Decoder”。 从图5中可知,联邦身份认证的步骤为: 用户在浏览器中打开创建身份提供商后生成的登录链接,浏览器向华为云发起单点登录请求。 华为云根据登录链接中携带的信息,查找IAM身份提供商中对应的Metadata文件,构建SAML Request,发送给浏览器。 浏览器收到请求后,转发SAML Request给企业IdP。 用户在企业IdP推送的登录页面中输入用户名和密码,企业IdP对用户提供的身份信息进行验证,并构建携带用户信息的SAML断言,向浏览器发送SAML Response。 浏览器响应后转发SAML Response给华为云。 华为云从SAML Response中取出断言,并根据已配置的身份转换规则映射到具体的IAM用户组,颁发Token。 用户完成单点登录,访问华为云。 断言中要携带签名,否则会导致登录失败。
  • 联邦身份认证的配置步骤 建立企业管理系统与华为云的联邦身份认证关系,配置流程如下。 图1 基于SAML的IAM用户SSO配置流程 创建身份提供商并建立互信关系:华为云与企业IdP建立联邦认证,需要华为云平台创建一个与企业IdP对应的身份提供商程序。然后,建立联邦认证的双方需首先建立互信关系,双方交换元数据文件,在企业IdP中上传华为云元数据文件,在华为云上传企业IdP的元数据文件。 图2 交换Metadata文件模型 配置企业IdP:配置企业IdP参数,规定在交互过程中,企业IdP向华为云发送哪些信息。 配置外部身份ID:配置外部身份ID,建立IAM用户与企业IdP用户的对应关系,当企业IdP用户使用IAM用户SSO时,会以指定外部身份ID的IAM用户身份登录华为云。例如,企业用户"IdP_Test_User"的ID值与IAM用户“Alice”的外部身份ID一致,则IdP_Test_User会以Alice的身份登录IAM。 图3 用户转换模型 登录验证:发起单点登录,测试是否能成功从企业IdP跳转登录华为云。 (可选)配置企业管理系统登录入口:将华为云的访问入口配置到企业管理系统中,用户可通过登录企业管理系统直接访问华为云,如图4所示。 图4 配置单点登录模型
  • 计费项 专业服务项 服务子项 计费项 量纲 价格(元) 数字内容交付实施服务 解决方案 3D写实数字人IP 个 1,360,000 3D美型数字人IP 个 1,160,000 3D卡通数字人IP 个 660,000 3D风格化数字人制作 个 500 纯CG海报制作 个 75,000 虚实结合海报制作 个 82,500 纯CG视频制作 秒 6,800 虚实结合视频制作 秒 18,800 纯CG虚拟直播 场 320,000 虚实结合虚拟直播 场 398,000 新闻播报类纯CG视频制作 秒 1,615 新闻播报类虚实融合视频制作 秒 1,665 3D物品展示纯CG视频制作 秒 16,800 3D物品展示虚实融合视频制作 秒 18,800 云笙3D数字人视频制作 秒 16,800 云霄3D数字人视频制作 秒 16,800 风格化3D数字人视频制作 分钟 1,000 数字人视频播报-基础版 分钟 120 数字人视频播报-高阶版 分钟 6,000 集成实施 3D空间集成实施服务 人天 33,600 3D素材 3D写实发型模型制作 个 138,000 3D美型发型模型制作 个 98,000 3D卡通发型模型制作 个 49,800 3D写实服饰模型制作 个 156,000 3D美型服饰模型制作 个 108,000 3D卡通服饰模型制作 个 53,000 3D写实配饰模型制作 个 34,500 3D美型配饰模型制作 个 23,500 3D卡通配饰模型制作 个 20,500 3D场景模型制作 人天 13,440 3D数字人模型动态特效 人天 13,440 3D数字人动作动画 人天 13,440 3D物品建模 人天 13,440 3D场景扫描建模 人天 13,440 3D模型减面 人天 13,440 模型渲染 3D场景模型渲染 次 67,200 人物模型渲染 次 403,200 虚拟仿真模型渲染 次 200,000 3D数字人直播 消费级虚拟直播 场 5,000 2D数字人直播 分身数字人视频素材制作 分钟 16 分身数字人直播内容执行 场 1,650 分身数字人视频交互执行 场 2,750 分身数字人形象模型制作 个 20,000 分身数字人声音模型制作 个 18,000 视频交互知识内容 套 50,000 体积视频数字人 单次体积视频云服务 次 18,000 大型体积视频云服务 次 540,000 精彩帧云服务 件 100 虚实融合视频 大型虚实融合数字场景制作服务 场 2,880,000 中型虚实融合数字场景制作服务 场 1,440,000 小型虚实融合数字场景制作服务 场 720,000 数字人动作精修 场 80,000
  • 使用Landing Zone服务获得的最终交付件是什么? L6服务名称 交付件 Landing Zone基础场景设计-中规模 《xx项目Landing Zone设计与实施方案》 Landing Zone基础场景设计-大规模 Landing Zone基础场景设计-超大规模 Landing Zone基础场景实施-中规模 Landing Zone基础场景实施-大规模 Landing Zone基础场景实施-超大规模 数据边界管理设计 数据边界管理实施 云财务治理设计 云财务治理实施 运维管理设计 运维管理实施 父主题: 关于服务交付
  • 敏捷与DevOps专家服务 敏捷与DevOps专家服务 企业数字化转型,软件正扮演着越来越重要的角色,并孕育出巨大市场机遇。软件能力正成为一个国家、城市、企业最核心的竞争力之一,难以想象,一个不懂如何做好软件的企业如何在未来强手如林的竞争中获胜。 随着移动、社交、云计算、大数据、IoT、人工智能等众多新技术的快速发展,颠覆式创新和跨界竞争加剧,企业急需快速而且持续的创新能力,传统研发能力越来越难于满足新型研发的要求,软件生产力正在6个方面发生巨大变革: 研发场景:据业界预测,到 2025 年,80%企业应用将运行在云中,100%应用将在云中开发,软件的开发、测试、部署、运维都在云中进行。研发工具本身将服务化、云化,并将和云平台进行集成,简化软件部署、发布和运维。 编程语言:Go、Scala、R、Node.js、Python等新型编程语言不断涌现,新型编程语言需要新型研发工具提供更加友好的支撑(编码调试、代码静态分析、多语言并行构建、部署)。 软件架构:基于容器的微服务化架构、Cloud Native云原生应用代表着分布式软件架构的演讲方向,这对软件研发提出了新的要求。 研发工具:研发工具向着轻量化、服务化、云化、容器化、社交化、智能化的方向发展。 研发模式:DevOps成为继敏捷、精益之后被企业广泛接受的新型研发模式,软件服务化、云化对DevOps提出了更加强烈的诉求。 交付形式:软件交付正在从包交付向着工程化交付转变,随着容器技术的广泛应用,软件交付将逐步标准化,未来交付给客户的可能是很多的容器(Container)或者Docker File。客户只要在自己的云平台上加载即可运行,不需要安装、部署和配置。 传统企业进行数字化转型时,面临组织效能低、缺乏DevOps技术基础、没有可落地的DevOps解决方案等门槛,华为云为客户提供专属的敏捷和DevOps咨询规划服务,从“转型评估,规划设计,标准规范”全面指导为设计思路,为企业提供智能高效的研发平台,帮助企业快速响应业务需求,加快应用开发交付迭代,让企业专注核心业务创新,最终达到提高行业生产力和竞争力的目标: 减少不规范的手动配置和部署,减少重复性的人力工作; IT部门可以快速地去响应市场带来的变化; 提高产品上线速度的同时还需要保障产品的质量; 提高开发、测试、运维之间的沟通协助效率。 华为云敏捷与DevOps专家服务首先通过企业软件研发能力诊断服务梳理企业现状,发现痛点与不足;然后根据企业开发流程不规范、面临转型、CI/CD工具链不健全的问题,提供团队级Scrum和团队级CI/CD辅助企业提升并完成敏捷转型和迁移。同时,针对软件集群规模日益膨胀,架构复杂,性能分析诊断困难的痛点,提供应用性能诊断帮助企业进行应用性能评估、诊断和优化,保障企业软件的性能高可用。 敏捷与DevOps专家服务包含五个子产品:“企业软件研发能力诊断”、“团队级Scrum”、“团队级CI/CD”、“应用性能诊断”、“测试自动化工厂能力规划”。
  • 90.7.5更新内容 1.新增发起立即会议接口StartP2pConf,详见发起立即会议 2.会议状态通知OnConfState参数HwmConfStateInfo 新增isP2PConf 是否立即会议,详见表1;会议结束通知OnConfEndedNotify参数HwmConfEndInfo 新增isP2PConf是否立即会议,详见表1 3.新增删除用户自定义头像接口DeleteSelfAvatar,详见删除个人头像 4.新增获取用户保存路径接口GetUserSavePath,详见获取用户文件保存路径 5.会议相关功能配置开关接口EnableFeature新增枚举值HWM_ENABLE_FEATURE_SUPPORT_DISCONNECT_AUDIO 支持断开音频功能、HWM_ENABLE_FEATURE_DISCONNECT_AUDIO_TO_JOIN_CONF 是否断开音频入会和HWM_ENABLE_FEATURE_CPU_REDUCTION_DETECT 是否启用CPU降频检测,详见表2 6.会议结束原因HwmConfEndReason新增错误码HWM_CONF_END_REASON_CONF_NUM_OVER_MAX_ALLOWED 超出最大在线会议数限制,HWM_CONF_END_REASON_CALLEE_REFUSED_END_CONF 被叫拒接,HWM_CONF_END_REASON_CALLEE_TIMEOUT_END_CONF 被叫超时,HWM_CONF_END_FORCE_OPEN_CAMERA_HANGUP 强制视频会议挂断,详见表3 7.Random入会接口参数HwmJoinConfByRandomInfo新增域名domain,离线入会场景使用,详见表1 父主题: 版本更新内容
  • 90.7.5更新内容 新增发起立即会议接口startP2PConf,具体请见发起立即会议。 Random入会接口参数RandomJoinConfParam新增domain字段,离线入会场景使用,具体请见RandomJoinConfParam参数说明。 新增扫码邀请大屏入会接口joinPairConf,具体请见扫码邀请大屏入会。 创建会议接口createConf参数HWMCreateConfParam 新增isSpeakerOff字段,具体请见CreateConfParam参数设置说明。 问题修复,体验更稳定。 父主题: 版本更新内容
  • 【Electron】mac平台集成ElectronSDK后,运行报错需要arm64架构的错误提示 客户案例: mac平台,在集成Electron SDK后,运行工程,报错架构不符:have(x86_64),need(arm64)。 原因分析: 当前mac端UISDK原生部分仅支持x86_64,无arm64版本的库; 解决方案: 1. 设置export npm_config_arch=x64,指定node采用x64平台; 2. 删除以前下载的node_modules文件夹(一定要把之前的删掉); 3. 重新运行工程,demo可运行run_demo_mac.sh脚本; 父主题: 常见问题
  • 示例 --创建一个普通表。 gaussdb=# CREATE TABLE my_table (c1 int, c2 int) WITH(STORAGE_TYPE=ASTORE); --创建增量物化视图。 gaussdb=# CREATE INCREMENTAL MATERIALIZED VIEW my_imv AS SELECT * FROM my_table; --基表写入数据。 gaussdb=# INSERT INTO my_table VALUES(1,1),(2,2); --对增量物化视图my_imv进行增量刷新。 gaussdb=# REFRESH INCREMENTAL MATERIALIZED VIEW my_imv; --删除增量物化视图。 gaussdb=# DROP MATERIALIZED VIEW my_imv; --删除普通表my_table。 gaussdb=# DROP TABLE my_table;
  • 参数说明 function_name 要修改的函数名称。 取值范围:已存在的函数名。 argmode 标识该参数是输入、输出参数。 取值范围:IN/OUT/INOUT/VARIADIC。 argname 参数名称。 取值范围:字符串,符合标识符命名规范。 argtype 函数参数的类型。 CALLED ON NULL INPUT 表明该函数的某些参数是NULL的时候可以按照正常的方式调用。缺省时与指定此参数的作用相同。 RETURNS NULL ON NULL INPUT STRICT STRICT用于指定如果函数的某个参数是NULL,此函数总是返回NULL。如果声明了这个参数,则如果存在NULL参数时不会执行该函数;而只是自动假设一个NULL结果。 RETURNS NULL ON NULL INPUT和STRICT的功能相同。 IMMUTABLE 表示该函数在给出同样的参数值时总是返回同样的结果。 STABLE 表示该函数不能修改数据库,对相同参数值,在同一次表扫描里,该函数的返回值不变,但是返回值可能在不同SQL语句之间变化。 VOLATILE 表示该函数值可以在一次表扫描内改变,不会做任何优化。 LEAKPROOF 表示该函数没有副作用,指出参数只包括返回值。LEAKPROOF只能由系统管理员设置。 EXTERNAL (可选)目的是和SQL兼容,这个特性适合于所有函数,而不仅是外部函数。 SECURITY INVOKER AUTHID CURRENT_USER 表明该函数将以调用它的用户的权限执行。缺省时与指定此参数的作用相同。 SECURITY INVOKER和AUTHID CURRENT_USER的功能相同。 SECURITY DEFINER AUTHID DEFINER 声明该函数将以创建它的用户的权限执行。 AUTHID DEFINER和SECURITY DEFINER的功能相同。 COST execution_cost 用来估计函数的执行成本。 execution_cost以cpu_operator_cost为单位。 取值范围:正数。 ROWS result_rows 估计函数返回的行数。用于函数返回的是一个集合。 取值范围:正数,默认值是1000行。 configuration_parameter value 把指定的数据库会话参数值设置为给定的值。如果value是DEFAULT或者RESET,则在新的会话中使用系统的缺省设置。OFF关闭设置。 取值范围:字符串。 DEFAULT OFF RESET 指定默认值。 from current 取当前会话中的值设置为configuration_parameter的值。 new_name 函数的新名称。要修改函数的所属模式,必须拥有新模式的CREATE权限。 取值范围:字符串,符合标识符命名规范。 new_owner 函数的新所有者。要修改函数的所有者,新所有者必须拥有该函数所属模式的CREATE权限。需要注意注意的是:仅有初始化用户才可以将函数的owner设置为初始化用户。 取值范围:已存在的用户角色。 new_schema 函数的新模式。 取值范围:已存在的模式。
  • 示例 请参见CREATE FUNCTION的示例。 重编译示例: -- 开启依赖功能 set behavior_compat_options ='plpgsql_dependency'; -- 创建函数 create or replace function test_func(a int) return int is proc_var int; begin proc_var := a; return 1; end; / -- 用函数名重编译函数 alter procedure test_func compile; -- 用函数带类型签名重编译存储过程 alter procedure test_func(int) compile;
  • 功能描述 根据查询结果创建表。 CREATE TABLE AS创建一个表并且用来自SELECT命令的结果填充该表。该表的字段和SELECT输出字段的名称及数据类型相关。不过用户可以通过明确地给出一个字段名称列表来覆盖SELECT输出字段的名称。 CREATE TABLE AS对源表进行一次查询,然后将数据写入新表中,而查询视图结果会根据源表的变化而有所改变。相比之下,每次做查询的时候,视图都重新计算定义它的SELECT语句。
  • 参数说明 UNLOGGED 指定表为非日志表。在非日志表中写入的数据不会被写入到预写日志中,这样就会比普通表快很多。但是,这也是不安全的,非日志表在冲突或异常关机后会被自动删截。非日志表中的内容也不会被复制到备用服务器中。在该类表中创建的索引也不会被自动记录。 使用场景:非日志表不能保证数据的安全性,用户应该在确保数据已经做好备份的前提下使用,例如系统升级时进行数据的备份。 故障处理:当异常关机等操作导致非日志表上的索引发生数据丢失时,用户应该对发生错误的索引进行重建。 GLOBAL | LOCAL 创建临时表时可以在TEMP或TEMPORARY前指定GLOBAL或LOCAL关键字。如果指定GLOBAL关键字,GaussDB会创建全局临时表,否则GaussDB会创建本地临时表。 TEMPORARY | TEMP 如果指定TEMP或TEMPORARY关键字,则创建的表为临时表。临时表分为全局临时表和本地临时表两种类型。创建临时表时如果指定GLOBAL关键字则为全局临时表,否则为本地临时表。 全局临时表的元数据对所有会话可见,会话结束后元数据继续存在。会话与会话之间的用户数据、索引和统计信息相互隔离,每个会话只能看到和更改自己提交的数据。全局临时表有两种模式:一种是基于会话级别的(ON COMMIT PRESERVE ROWS), 当会话结束时自动清空用户数据;一种是基于事务级别的(ON COMMIT DELETE ROWS), 当执行commit或rollback时自动清空用户数据。建表时如果没有指定ON COMMIT选项,则缺省为会话级别。与本地临时表不同,全局临时表建表时可以指定非pg_temp_开头的schema。 本地临时表只在当前会话可见,本会话结束后会自动删除。因此,在除当前会话连接的数据库节点故障时,仍然可以在当前会话上创建和使用临时表。由于临时表只在当前会话创建,对于涉及对临时表操作的DDL语句,会产生DDL失败的报错。因此,建议DDL语句中不要对临时表进行操作。TEMP和TEMPORARY等价。 本地临时表通过每个会话独立的以pg_temp开头的schema来保证只对当前会话可见,因此,不建议用户在日常操作中手动删除以pg_temp,pg_toast_temp开头的schema。 如果建表时不指定TEMPORARY/TEMP关键字,而指定表的schema为当前会话的pg_temp_开头的schema,则此表会被创建为临时表。 ALTER/DROP全局临时表和索引,如果其它会话正在使用它,禁止操作。 全局临时表的DDL只会影响当前会话的用户数据和索引。例如truncate、reindex、analyze只对当前会话有效。 table_name 要创建的表名。 取值范围:字符串,要符合标识符命名规范。 column_name 新表中要创建的字段名。 取值范围:字符串,要符合标识符命名规范。 WITH ( storage_parameter [= value] [, ... ] ) 这个子句为表或索引指定一个可选的存储参数。参数的详细说明如下所示。 FILLFACTOR 一个表的填充因子(fillfactor)是一个介于10和100之间的百分数。在Ustore存储引擎下,该值得默认值为92,在Astore存储引擎下默认值为100(完全填充)。如果指定了较小的填充因子,INSERT操作仅按照填充因子指定的百分率填充表页。每个页上的剩余空间将用于在该页上更新行,这就使得UPDATE有机会在同一页上放置同一条记录的新版本,这比把新版本放置在其他页上更有效。对于一个从不更新的表将填充因子设为100是最佳选择,但是对于频繁更新的表,选择较小的填充因子则更加合适。该参数只对行存表有效。 取值范围:10~100 ORIENTATION 取值范围: COLUMN:表的数据将以列式存储。 ROW(缺省值):表的数据将以行式存储。 COMPRESSION 指定表数据的压缩级别,它决定了表数据的压缩比以及压缩时间。一般来讲,压缩级别越高,压缩比也越大,压缩时间也越长;反之亦然。实际压缩比取决于加载的表数据的分布特征。 取值范围: 列存表的有效值为YES/NO/LOW/MIDDLE/HIGH,默认值为LOW。 行存表不支持压缩。 MAX_BATCHROW 指定了在数据加载过程中一个存储单元可以容纳记录的最大数目。该参数只对列存表有效。 取值范围:10000~60000 ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ON COMMIT选项决定在事务中执行创建临时表操作,当事务提交时,此临时表的后续操作。有以下三个选项,当前仅支持PRESERVE ROWS和DELETE ROWS选项。 PRESERVE ROWS(缺省值):提交时不对临时表执行任何操作,临时表及其表数据保持不变。 DELETE ROWS:提交时删除临时表中数据。 DROP:提交时删除此临时表。只支持删除本地临时表,不支持删除全局临时表。 COMPRESS / NOCOMPRESS 创建一个新表时,需要在创建表语句中指定关键字COMPRESS,这样,当对该表进行批量插入时就会触发压缩特性。该特性会在页范围内扫描所有元组数据,生成字典、压缩元组数据并进行存储。指定关键字NOCOMPRESS则不对表进行压缩。行存表不支持压缩。 缺省值:NOCOMPRESS,即不对元组数据进行压缩。 TABLESPACE tablespace_name 指定新表将要在tablespace_name表空间内创建。如果没有声明,将使用默认表空间。 AS query 一个SELECT VALUES命令或者一个运行预备好的SELECT或VALUES查询的EXECUTE命令。 [ WITH [ NO ] DATA ] 创建表时,是否也插入查询到的数据。默认是要数据,选择“NO”参数时,则不要数据。
  • 语法格式 CREATE [ [ GLOBAL | LOCAL ] [ TEMPORARY | TEMP ] | UNLOGGED ] TABLE table_name [ (column_name [, ...] ) ] [ WITH ( {storage_parameter = value} [, ... ] ) ] [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] [ COMPRESS | NOCOMPRESS ] [ TABLESPACE tablespace_name ] AS query [ WITH [ NO ] DATA ];
  • 注意事项 TIMECAPSULE TABLE语句的用法主要分为两大类:闪回旧版本数据和从回收站中闪回。 TO TIMECAPSULE和TO CSN能够将表闪回到过去的某个版本。 回收站记录了DROP和TRUNCATE的对象数据。TO BEFORE DROP和TO BEFORE TRUNCATE就是从回收站中闪回。 不支持闪回表的对象类型:系统表、列存表、DFS表、全局临时表、本地临时表、UNLOGGED表、序列表、hashbucket表、密态表。 闪回点和当前点之间,执行过修改表结构或影响物理存储的语句(DDL、DCL、VACUUM FULL),闪回失败。 执行闪回删除需要用户具有如下权限:用户必须具有垃圾对象所在schema的create和usage权限,并且用户必须是schema的所有者或者是垃圾对象的所有者。 执行闪回TRUNCATE需要用户具有如下权限:用户必须具有垃圾对象所在schema的create和usage权限,并且用户必须是schema的所有者或者是垃圾对象的所有者,另外用户必须具有垃圾对象的TRUNCATE权限。 不适用闪回drop/truncate功能的场景或表: 回收站关闭场景:enable_recyclebin = off; 系统处于维护态(xc_maintenance_mode = on)或升级场景; 多对象删除场景:DROP/TRUNCATE TABLE命令同时指定多个对象; 系统表、列存表、DFS表、全局临时表、本地临时表、UNLOGGED表、序列表、hashbucket表。
  • 参数说明 schema_name 指定模式包含的表。如果缺省,则为当前模式。 table_name 指定表名。 TO CSN 指定要返回表的时间点对应的事务提交序列号(CSN)。expr必须计算一个数字,代表有效的CSN。 TO TIMESTAMP 指定要返回表的时间点对应的时间戳。expr必须计算一个过去有效的时间戳(使用TO_TIMESTAMP函数将字符串转换为时间类型)。表将被闪回到指定时间戳大约3秒内的时间点。 说明:闪回点过旧时,因旧版本被回收导致无法获取旧版本,会导致闪回失败并报错:Restore point too old。 TO BEFORE DROP 使用这个子句检索回收站中已删除的表及其子对象。 你可以指定原始用户指定的表的名称,或对象删除时数据库分配的系统生成名称。 回收站中系统生成的对象名称是唯一的。因此,如果指定系统生成名称,那么数据库检索指定的对象。使用“select * from gs_recyclebin;”语句查看回收站中的内容。 如果指定了用户指定的名称,且如果回收站中包含多个该名称的对象,然后数据库检索回收站中最近移动的对象。如果想要检索更早版本的表,你可以这样做: 指定你想要检索的表的系统生成名称。 执行TIMECAPSULE TABLE ... TO BEFORE DROP语句,直到你要检索的表。 恢复DROP表时,只恢复基表名,其他子对象名均保持回收站对象名。用户可根据需要,执行DDL命令手工调整子对象名。 回收站对象不支持DML、DCL、DDL等写操作,不支持DQL查询操作(后续支持)。 recyclebin_retention_time配置参数用于设置回收站对象保留时间,超过该时间的回收站对象将被自动清理。 RENAME TO 为从回收站中检索的表指定一个新名称。 TRUNCATE 闪回到TRUNCATE之前。
  • 示例 -- 创建SCHEMA。 gaussdb=# CREATE SCHEMA tpcds; -- 删除表tpcds.reason_t2 DROP TABLE IF EXISTS tpcds.reason_t2; -- 创建表tpcds.reason_t2 gaussdb=# CREATE TABLE tpcds.reason_t2 ( r_reason_sk integer, r_reason_id character(16), r_reason_desc character(100) )with(storage_type = ustore); --向表tpcds.reason_t2中插入记录 gaussdb=# INSERT INTO tpcds.reason_t2 VALUES (1, 'AA', 'reason1'),(2, 'AB', 'reason2'),(3, 'AC', 'reason3'); INSERT 0 3 --清空tpcds.reason_t2表中的数据 gaussdb=# TRUNCATE TABLE tpcds.reason_t2; --查询tpcds.reason_t2表中的数据 gaussdb=# select * from tpcds.reason_t2; r_reason_sk | r_reason_id | r_reason_desc -------------+-------------+--------------- (0 rows) --执行闪回TRUNCATE gaussdb=# TIMECAPSULE TABLE tpcds.reason_t2 to BEFORE TRUNCATE; gaussdb=# select * from tpcds.reason_t2; r_reason_sk | r_reason_id | r_reason_desc -------------+------------------+------------------------------------------------------------------------------------------------------ 1 | AA | reason1 2 | AB | reason2 3 | AC | reason3 (3 rows) --删除表tpcds.reason_t2 gaussdb=# DROP TABLE tpcds.reason_t2; --执行闪回DROP gaussdb=# TIMECAPSULE TABLE tpcds.reason_t2 to BEFORE DROP; TimeCapsule Table -- 清空回收站,删除SCHEMA。 gaussdb=# PURGE RECYCLEBIN; gaussdb=# DROP SCHEMA tpcds CASCADE;
  • 参数说明 table_name 分区表名。 取值范围:已存在的分区表名。 partition_name 分区名。 取值范围:已存在的分区名。 tablespacename 指定分区要移动到哪个表空间。 取值范围:已存在的表空间名。 partition_value 分区键值。 通过PARTITION FOR ( partition_value [, ...] )子句指定的这一组值,可以唯一确定一个分区。 取值范围:需要进行操作的分区的分区键的取值范围。 UNUSABLE LOCAL INDEXES 设置该分区上的所有索引不可用。 REBUILD UNUSABLE LOCAL INDEXES 重建该分区上的所有索引。 ENABLE/DISABLE ROW MOVEMET 行迁移开关。 如果进行UPDATE操作时,更新了元组在分区键上的值,造成了该元组所在分区发生变化,就会根据该开关给出报错信息,或者进行元组在分区间的转移。 取值范围: ENABLE:打开行迁移开关。 DISABLE:关闭行迁移开关。 默认是打开状态。 ordinary_table_name 进行迁移的普通表的名称。 取值范围:已存在的普通表名。 { WITH | WITHOUT } VALIDATION 在进行数据迁移时,是否检查普通表中的数据满足指定分区的分区键范围。 取值范围: WITH:对于普通表中的数据要检查是否满足分区的分区键范围,如果有数据不满足,则报错。 WITHOUT:对于普通表中的数据不检查是否满足分区的分区键范围。 默认是WITH状态。 由于检查比较耗时,特别是当数据量很大的情况下更甚。所以在保证当前普通表中的数据满足分区的分区键范围时,可以加上WITHOUT来指明不进行检查。 VERBOSE 在VALIDATION是WITH状态时,如果检查出普通表有不满足要交换分区的分区键范围的数据,那么把这些数据插入到正确的分区,如果路由不到任何分区,再报错。 只有在VALIDATION是WITH状态时,才可以指定VERBOSE。 partition_new_name 分区的新名称。 取值范围:字符串,要符合标识符命名规范。 UPDATE GLOBAL INDEX 如果使用该参数,则会更新分区表上的所有全局索引,以确保使用全局索引可以查询出正确的数据;如果不使用该参数,则分区表上的所有全局索引将会失效。
  • 参数说明 OR REPLACE 如果视图已存在,则重新定义。 TEMP | TEMPORARY 创建临时视图。 view_name 要创建的视图名称。可以用模式修饰。 取值范围:字符串,符合标识符命名规范。 column_name 可选的名称列表,用作视图的字段名。如果没有给出,字段名取自查询中的字段名。 取值范围:字符串,符合标识符命名规范。 view_option_name [= view_option_value] 该子句为视图指定一个可选的参数。 目前view_option_name支持的参数仅有security_barrier,当VIEW试图提供行级安全时,应使用该参数。 取值范围:Boolean类型,TRUE、FALSE query 为视图提供行和列的SELECT或VALUES语句。 若query包含指定分区表分区的子句,创建视图会将所指定分区的OID硬编码到系统表中。如果使用导致指定分区的OID发生变更的分区DDL语法,如DROP/SPLIT/MERGE该分区,则会导致视图不可用。需要重新创建视图。
  • 示例 --创建字段spcname为pg_default组成的视图。 gaussdb=# CREATE VIEW myView AS SELECT * FROM pg_tablespace WHERE spcname = 'pg_default'; --查看视图。 gaussdb=# SELECT * FROM myView ; --删除视图myView。 gaussdb=# DROP VIEW myView;
  • 语法格式 CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW view_name [ ( column_name [, ...] ) ] [ WITH ( {view_option_name [= view_option_value]} [, ... ] ) ] AS query; 创建视图时使用WITH(security_barrier)可以创建一个相对安全的视图,避免攻击者利用低成本函数的RAISE语句打印出隐藏的基表数据。 当视图创建后,不允许使用REPLACE修改本视图当中的列名,也不允许删除列。
  • 注意事项 TRUNCATE TABLE在功能上与不带WHERE子句DELETE语句相同:二者均删除表中的全部行。 TRUNCATE TABLE比DELETE速度快且使用系统和事务日志资源少: DELETE语句每次删除一行,并在事务日志中为所删除每行记录一项。 TRUNCATE TABLE通过释放存储表数据所用数据页来删除数据,并且只在事务日志中记录页的释放。 TRUNCATE,DELETE,DROP三者的差异如下: TRUNCATE TABLE,删除内容,释放空间,但不删除定义。 DELETE TABLE,删除内容,不删除定义,不释放空间。 DROP TABLE,删除内容和定义,释放空间。
  • 参数说明 ONLY 如果声明ONLY,只有指定的表会被清空。如果没有声明ONLY,这个表以及其所有子表(若有)会被清空。 table_name 目标表的名称(可以有模式修饰)。 取值范围:已存在的表名。 CONTINUE IDENTITY 不改变序列的值。这是缺省值。 CASCADE | RESTRICT CASCADE:级联清空所有由于CASCADE而被添加到组中的表。 RESTRICT(缺省值):如果其他表在该表上有外键引用则拒绝清空。 PURGE 默认将表数据放入回收站中,PURGE直接清理。 partition_name 目标分区表的分区名。 取值范围:已存在的分区名。 partition_value 指定的分区键值。 通过PARTITION FOR子句指定的这一组值,可以唯一确定一个分区。 取值范围:需要进行删除数据分区的分区键的取值范围。 使用PARTITION FOR子句时,partition_value所在的整个分区会被清空。
  • 示例 --创建SCHEMA。 gaussdb=# CREATE SCHEMA tpcds; --创建表tpcds.reason。 gaussdb=# CREATE TABLE tpcds.reason ( r_reason_sk integer, r_reason_id character(16), r_reason_desc character(100) ); --向表中插入多条记录。 gaussdb=# INSERT INTO tpcds.reason values(1,'AAAAAAAABAAAAAAA','reason 1'),(5,'AAAAAAAABAAAAAAA','reason 2'),(15,'AAAAAAAABAAAAAAA','reason 3'),(25,'AAAAAAAABAAAAAAA','reason 4'),(35,'AAAAAAAABAAAAAAA','reason 5'),(45,'AAAAAAAACAAAAAAA','reason 6'),(55,'AAAAAAAACAAAAAAA','reason 7'); --创建表。 gaussdb=# CREATE TABLE tpcds.reason_t1 AS TABLE tpcds.reason; --清空表tpcds.reason_t1。 gaussdb=# TRUNCATE TABLE tpcds.reason_t1; --删除表。 gaussdb=# DROP TABLE tpcds.reason_t1; --创建分区表。 gaussdb=# CREATE TABLE tpcds.reason_p ( r_reason_sk integer, r_reason_id character(16), r_reason_desc character(100) )PARTITION BY RANGE (r_reason_sk) ( partition p_05_before values less than (05), partition p_15 values less than (15), partition p_25 values less than (25), partition p_35 values less than (35), partition p_45_after values less than (MAXVALUE) ); --插入数据。 gaussdb=# INSERT INTO tpcds.reason_p SELECT * FROM tpcds.reason; --清空分区p_05_before。 gaussdb=# ALTER TABLE tpcds.reason_p TRUNCATE PARTITION p_05_before; --清空分区p_15。 gaussdb=# ALTER TABLE tpcds.reason_p TRUNCATE PARTITION for (13); --清空分区表。 gaussdb=# TRUNCATE TABLE tpcds.reason_p; --删除表。 gaussdb=# DROP TABLE tpcds.reason_p; --删除表。 gaussdb=# DROP TABLE tpcds.reason; --删除SCHEMA。 gaussdb=# DROP SCHEMA tpcds CASCADE;
  • 语法格式 清理表数据。 TRUNCATE [ TABLE ] [ ONLY ] {table_name [ * ]} [, ... ] [ CONTINUE IDENTITY ] [ CASCADE | RESTRICT] [ PURGE ]}; 清理表分区的数据。 ALTER TABLE [ IF EXISTS ] { [ ONLY ] table_name | table_name * | ONLY ( table_name ) } TRUNCATE PARTITION { partition_name | FOR ( partition_value [, ...] ) } [ UPDATE GLOBAL INDEX ];
  • STATEMENT 获得当前节点的执行语句(归一化SQL)的信息。数据库主节点上可以看到此数据库主节点接收到的归一化的SQL的全量统计信息(包含数据库节点);数据库节点上仅可看到归一化的SQL的此节点执行的统计信息。 不同的savepoint_name所生成的unique_sql_id不同,大量使用savepoint_name时会导致系统中产生的unique_sql_id信息快速上涨,若unique_sql_id数量高于instr_unique_sql_count数量时,新产生的unique_sql_id信息将不被统计。 表1 STATEMENT字段 名称 类型 描述 node_name name 数据库进程名称。 node_id integer 节点的ID。 user_name name 用户名称。 user_id oid 用户OID。 unique_sql_id bigint 归一化的SQL ID。 query text 归一化的SQL。 备注:长度受track_activity_query_size控制。 n_calls bigint 调用次数。 min_elapse_time bigint SQL在内核内的最小运行时间(单位:微秒)。 max_elapse_time bigint SQL在内核内的最大运行时间(单位:微秒)。 total_elapse_time bigint SQL在内核内的总运行时间(单位:微秒)。 n_returned_rows bigint SELECT返回的结果集行数。 n_tuples_fetched bigint 随机扫描行。 n_tuples_returned bigint 顺序扫描行。 n_tuples_inserted bigint 插入行。 n_tuples_updated bigint 更新行。 n_tuples_deleted bigint 删除行。 n_blocks_fetched bigint buffer的块访问次数。 n_blocks_hit bigint buffer的块命中次数。 n_soft_parse bigint 软解析次数,n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。 n_hard_parse bigint 硬解析次数,n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。 db_time bigint 有效的DB时间花费,多线程将累加(单位:微秒)。 cpu_time bigint CPU时间(单位:微秒)。 execution_time bigint 执行器内执行时间(单位:微秒)。 parse_time bigint SQL解析时间(单位:微秒)。 plan_time bigint SQL生成计划时间(单位:微秒)。 rewrite_time bigint SQL重写时间(单位:微秒)。 pl_execution_time bigint plpgsql上的执行时间(单位:微秒)。 pl_compilation_time bigint plpgsql上的编译时间(单位:微秒)。 data_io_time bigint IO上的时间花费(单位:微秒)。 net_send_info text 通过物理连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_recv_info text 通过物理连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_stream_send_info text 通过逻辑连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_stream_recv_info text 通过逻辑连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 last_updated timestamp with time zone 最后一次更新该语句的时间。 sort_count bigint 排序执行的次数。 sort_time bigint 排序执行的时间(单位:微秒)。 sort_mem_used bigint 排序过程中使用的work memory大小(单位:KB)。 sort_spill_count bigint 排序过程中,若发生落盘,写文件的次数。 sort_spill_size bigint 排序过程中,若发生落盘,使用的文件大小(单位:KB)。 hash_count bigint hash执行的次数。 hash_time bigint hash执行的时间(单位:微秒)。 hash_mem_used bigint hash过程中使用的work memory大小(单位:KB)。 hash_spill_count bigint hash过程中,若发生落盘,写文件的次数。 hash_spill_size bigint hash过程中,若发生落盘,使用的文件大小(单位:KB)。 parent_unique_sql_id bigint 父语句的unique_sql_id,非存储过程子语句该值为0。 n_calls表示实际调用次数,对于存储过程内的fetch语句,fetch语句的实际触发次数,对应该cursor实际执行的语句的n_calls的增加次数。 父主题: Query
  • 示例 -- 创建角色。 gaussdb=# CREATE ROLE bob PASSWORD '********'; -- 创建外部服务器 gaussdb=# CREATE SERVER my_server FOREIGN DATA WRAPPER log_fdw; -- 创建USER MAPPING。 gaussdb=# CREATE USER MAPPING FOR bob SERVER my_server OPTIONS (user 'bob', password '********'); -- 修改USER MAPPING。 gaussdb=# ALTER USER MAPPING FOR bob SERVER my_server OPTIONS (SET password '********'); -- 删除USER MAPPING。 gaussdb=# DROP USER MAPPING FOR bob SERVER my_server; -- 删除外部服务器。 gaussdb=# DROP SERVER my_server; -- 删除角色。 gaussdb=# DROP ROLE bob;
共100000条