爆款云主机低至25.83元/年
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 云聚517 · 好价翼起拼 NEW 爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 聚力AI赋能 天翼云大模型专项 大模型特惠专区·Token Plan 轻享包低至9.9元起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 企业出海解决方案 NEW 助力您的业务扬帆出海,通达全球!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
Token服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V4-Flash
  • GLM-5.1
  • Qwen3.5-122B-A10B
  • DeepSeek-V3.2(旗舰版)
  • GLM-5(正式版)
智算一体机
  • 智算一体机
智能体引擎
  • 智能体引擎
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      时序数据库Influx版_相关内容
      • 联合索引设置不当导致慢SQL的解决办法
        本节介绍了性能优化相关问题与解决方法。 场景描述 业务侧云数据库TaurusDB实例上以往执行耗时8秒的查询,在11:00后耗时超过30秒。 原因分析 1. 查看查询变慢对应的时间段中,实例CPU监控指标并无飙升情况且使用率一直都较低,因此排除了CPU冲高导致查询变慢的可能。 2. 分析对应时间段该实例的慢日志,该SQL执行快时其扫描行数为百万级,当SQL执行慢时其扫描行数为千万级,与业务确认该表短期内并无大量数据插入,因此推断执行慢是因为未走索引或选错索引。且通过EXPLAIN查看该SQL的执行计划确实是全表扫描。 图 慢日志 3. 在实例上对该表执行SHOW INDEX FROM检查三个字段的基数,。 图 查看基数 可知基数最小的字段“querydate”在联合索引的第一位,基数最大的字段“groupid”在联合索引最后一位,而且原SQL包含对“querydate”字段的范围查询,导致当索引走到“querydate”就会停止匹配,后面两个字段已经无序,无法走索引。 所以该SQL本质上只能利用到对“querydate”这一列的索引,而且还有可能因为基数太小,导致优化器成本估计时选择了全表扫描。 业务重新创建了联合索引将“groupid”字段放在第一位,“querydate”字段放在最后一位后,查询耗时符合预期。
        来自:
        帮助文档
        云数据库TaurusDB
        常见问题
        数据库性能类
        联合索引设置不当导致慢SQL的解决办法
      • 创建VPC和安全组
        本节介绍了如何创建所需的VPC和安全组。 创建VPC和安全组,为创建云数据库GaussDB 实例准备网络资源和安全组。 创建VPC 1. 登录天翼云控制台。 2. 单击管理控制台左上角的,选择区域。 3. 单击左侧的服务列表图标,选择“网络 > 虚拟私有云”。 进入虚拟私有云信息页面。 4. 单击“创建虚拟私有云”购买VPC。 5. 单击“立即创建”。 6. 返回VPC列表,查看创建VPC是否创建完成。 当VPC列表的VPC状态为“可用”时,表示VPC创建完成。 创建安全组 1. 登录天翼云控制台。 2. 单击管理控制台左上角的,选择区域。 3. 单击左侧的服务列表图标,选择“网络 > 虚拟私有云”。 进入虚拟私有云信息页面。 4. 选择“访问控制”>“安全组”。 5. 单击“创建安全组”。 6. 填写安全组名称等信息。 7. 单击“确定”。 8. 返回安全组列表,单击安全组名称“sgd1ce”。 9. 选择“入方向规则”,单击“添加规则”。 10. 配置入方向规则,添加源库的IP地址。
        来自:
        帮助文档
        云数据库GaussDB
        最佳实践
        Oracle迁移到云数据库GaussDB 最佳实践
        创建VPC和安全组
      • 实例节点故障处理
        本页介绍了常见的实例故障节点处理和规避方法。 集群实例 集群实例包含 mongos, config 和 shard 3 类节点。 其中 config 和 shard 节点都采用 3 节点副本集架构,如果某个节点发生故障,系统会自动进行高可用切换操作,选取一个正常节点继续提供服务,后台会对故障节点进行检查和修复。config 和 shard 的自动切换操作对用户来说不需要任何干预,整个过程会在 1 分钟内完成,用户请求如果出现报错可以进行重试。 每个 mongos 是独立运行的,如果节点出现故障,则该节点不可用。用户在创建实例时会分配多个 mongos 节点,因此推荐客户端使用 Connection URI 连接所有 mongos 节点,而不是单个 mongos 节点。客户端会自动对所连接的 mongos 进行探活检查,并自动将请求分散到正常的 mongos 节点上。 连接示例如下: mongo "mongodb:// : @ , /admin?authSourceadmin" 副本集实例 一个副本集实例包含多个 mongod 节点。比如 3 节点副本集包含 1 个 Primary,1 个 Secondary 和 1 个 Hidden 节点。如果 Primary 节点故障,系统会自动选择另外正常的 Secondary 节点成为新的 Primary 节点,后台会对故障节点进行检查和恢复。 整个切换和恢复过程不需要用户干预,在此期间可能会产生 1 分钟以内的连接闪断和请求失败,用户可以对出现报错的请求进行重试。 建议客户端使用 Connection URI 连接文档数据库时,连接所有正常节点,并指定 replicaSet 参数。避免在出现单个节点故障时,影响应用的正常请求。 连接示例如下: mongo "mongodb:// : @ , /admin?authSourceadmin&replicaSet "
        来自:
        帮助文档
        文档数据库服务
        故障排除
        实例节点故障处理
      • 存储过程管理
        本节主要介绍存储过程管理 新建存储过程 概述 存储过程是一组为了完成特定功能的SQL语句的集合,它经编译后存储在数据库中,用户可以通过存储过程的名称并给出参数来执行。 操作场景 存储过程对完成特定功能的SQL语句集或者处理复杂的业务均较为实用,例如您可通过存储过程快速完成循环插入对象等操作。 前提条件 具有CREATE ROUTINE权限的用户可创建存储过程。 具有Execute权限的用户可执行存储过程。 操作步骤 1. 在顶部导航栏选择“库管理”,在对象列表页签下选择“存储过程”,单击页面左上侧“新建存储过程”。 2. 在新建存储过程弹出框中填写存储过程名称、描述信息,单击“确定”,进入新建存储过程编辑页面。 3. 在存储过程页面中跟进业务需求设置选项信息,您可保存、执行存储过程。 4. 执行存储过程后,您可在页面下部消息栏中查看执行情况。 修改或执行存储过程 操作步骤 1. 在顶部导航栏选择“库管理”,在对象列表页签下选择“存储过程”,在右侧操作栏单击“修改或执行”。 2. 在修改存储过程编辑页面编辑信息,你可以根据业务需求设置选项,单击“保存”保存修改信息。 3. 执行存储过程,调用该对象,您可在页面下部消息栏中查看执行情况。 删除存储过程 操作步骤 1. 在顶部导航栏选择“库管理”,在对象列表页签下选择“存储过程”,在右侧操作栏单击“删除存储过程”。 2. 在确认删除存储过程弹出框中,单击“确定”即可。 注意 删除操作无法恢复,请谨慎选择。
        来自:
        帮助文档
        数据管理服务
        用户指南
        MySQL数据库管理(开发工具)
        库管理
        存储过程管理
      • 备份概述
        本页介绍天翼云TeleDB数据库备份概念。 全量备份 :通过在备份服务端调用pgBackRest命令,将PG实例的数据并行拷贝到备机指定的数据目录。 增量备份 :通过在备份服务端调用pgBackRest命令,将PG实例的数据并行拷贝到备机指定的数据目录。与全量备份区别在于:全量备份用于备份所有文件,增量备份用于备份自动上一次备份后的全部改动和新文件。 备份压缩: 通过gzip工具实现全量备份以及wal日志的压缩。 手动备份: 提供手动创建备份和复制已有全量备份的功能。 恢复备份 :通过在实例客户端调用pgBackRest命令。将匹配的基础备份数据发送目标PG实例,并通过配置恢复文件,重放wal日志到达一致性点,完成目标实例的恢复。 全量恢复 :支持基于选定全量备份进行恢复。 基于时间点恢复 :支持基于选定时间点进行恢复,前提是开启了增量日志备份。 注意 基于时间点恢复原理是先找到离时间点最近的全量备份为基础,再重新以基础备份的Checkpoint点为起点,顺序加载WAL日志直到达到指定时间点,所以如果想使用基于时间点恢复需要开启定时备份全量数据以及WAL日志文件。 恢复指定实例 :支持恢复到指定实例,推荐恢复到全新的实例,避免造成wal日志覆盖。 自动备份维护 :支持在线配置备份策略,自动删除过期的WAL备份文件。 本地集中存储 :支持单个备份机本地存储多个PG实例的备份数据的功能。 wal日志归档 :通过设置PG实例archivecommand命令,在发生日志切换时自动推送wal日志到备机指定的数据目录。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V1.0.0版本产品文档
        管理平台使用手册
        备份与恢复
        备份概述
      • 备份概述
        本页介绍天翼云TeleDB数据库备份相关概念。 全量备份 :通过在备份服务端调用pgBackRest命令,将PG实例的数据并行拷贝到备机指定的数据目录。 增量备份 :通过在备份服务端调用pgBackRest命令,将PG实例的数据并行拷贝到备机指定的数据目录。与全量备份区别在于:全量备份用于备份所有文件,增量备份用于备份自动上一次备份后的全部改动和新文件。 备份压缩: 通过gzip工具实现全量备份以及wal日志的压缩。 手动备份: 提供手动创建备份和复制已有全量备份的功能。 恢复备份 :通过在实例客户端调用pgBackRest命令。将匹配的基础备份数据发送目标PG实例,并通过配置恢复文件,重放wal日志到达一致性点,完成目标实例的恢复。 全量恢复 :支持基于选定全量备份进行恢复。 基于时间点恢复 :支持基于选定时间点进行恢复,前提是开启了增量日志备份。 注意 基于时间点恢复原理是先找到离时间点最近的全量备份为基础,再重新以基础备份的Checkpoint点为起点,顺序加载WAL日志直到达到指定时间点,所以如果想使用基于时间点恢复需要开启定时备份全量数据以及WAL日志文件。 恢复指定实例 :支持恢复到指定实例,推荐恢复到全新的实例,避免造成wal日志覆盖。 自动备份维护 :支持在线配置备份策略,自动删除过期的WAL备份文件。 本地集中存储 :支持单个备份机本地存储多个PG实例的备份数据的功能。 wal日志归档 :通过设置PG实例archivecommand命令,在发生日志切换时自动推送wal日志到备机指定的数据目录。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V1.1.0版本产品文档
        管理平台使用手册
        备份与恢复
        备份概述
      • 参数数据类型
        本页介绍天翼云TeleDB数据库存储过程开发的参数数据类型。 数据类型(可以有模式修饰),可以是基本类型,复合类型、域类型、游标、或者可以引用一个现有表类型、字段类型(建立时转换为对应的类型)、还可以是多态类型 anyelement、anyarray,也可以是各种数据类型的数组形式。 基本类型 plaintext teledb CREATE OR REPLACE PROCEDURE pbasepara (aint integer,astr text) AS $$ BEGIN RAISE NOTICE 'aint % ; astr %',aint,astr; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL pbasepara(1,'teledbpg'); NOTICE: aint 1 ; astr teledbpg CALL teledb teledb CREATE OR REPLACE PROCEDURE pbasearray (aint integer[],astr text[]) AS $$ BEGIN RAISE NOTICE 'aint % ; astr %',aint,astr; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL pbasearray(ARRAY[1,2,3],ARRAY['teledbpg','pgxz']); NOTICE: aint {1,2,3} ; astr {teledbpg,pgxz} CALL teledb 复合类型 plaintext teledb CREATE TYPE public.tper AS ( id integer, mc text ); CREATE TYPE teledb CREATE OR REPLACE PROCEDURE ptype (arow public.tper) AS $$ BEGIN RAISE NOTICE 'id % ; mc %',arow.id,arow.mc; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL ptype(ROW(1,'teledbpg')::public.tper); NOTICE: id 1 ; mc teledbpg CALL teledb 复合数组 plaintext teledb CREATE OR REPLACE PROCEDURE ptypearray (arec public.tper[]) AS $$ BEGIN RAISE NOTICE 'arec %',arec; RAISE NOTICE 'arec[1].id %',arec[1].id; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V5.1.0版本产品文档
        开发手册
        存储过程开发
        参数详细介绍
        参数数据类型
      • count(distinct xx)优化
        本页介绍天翼云TeleDB数据库的count(distinct xx)优化案例。 count(distinct xxx)发生在CN节点,对于TP类业务,需要操作的数据量少的情况下,性能开销是没有问题的,而且往往比下推执行的性能开销还要小。但如果一次要操作的数据量比较大的AP类业务,则网络传输就会成功瓶颈。 针对distinct,可以改写为group by写法,将数据去重操作下推到DN上执行,提高效率。 下面是针对count(distinct xx)写法的SQL优化案例: 1. 测试数据准备: teledb CREATE TABLE t1(f1 serial not null unique,f2 text,f3 text,f4 text,f5 text,f6 text,f7 text,f8 text,f9 text,f10 text,f11 text,f12 text) distribute by shard(f1); NOTICE: Replica identity is needed for shard table, please add to this table through "alter table" command. CREATE TABLE Time: 89.938 ms teledb insert into t1 select t,md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text) from generateseries(1,1000000) as t; INSERT 0 1000000 Time: 14849.045 ms (00:14.849) teledb analyze t1; ANALYZE Time: 1340.387 ms (00:01.340) 2. 改写前的SQL执行计划和耗时: teledb explain (verbose) select count(distinct f2) from t1; QUERY PLAN Aggregate (cost103320.00..103320.01 rows1 width8) Output: count(DISTINCT f2) > Remote Subquery Scan on all (dn01,dn02,dn03,dn04,dn05,dn06,dn07,dn08,dn09,dn10) (cost100.00..100820.00 rows1000000 width33) Output: f2 > Seq Scan on public.t1 (cost0.00..62720.00 rows1000000 width33) Output: f2 (6 rows) Time: 0.748 ms postgres
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        SQL开发最佳实践
        性能优化最佳实践
        SQL优化案例
        count(distinct xx)优化
      • 使用索引提高查询效率
        本页介绍天翼云TeleDB数据库使用索引提高查询效率的最佳实践。 通过explain查看执行计划,查看SQL语句是否使用到了索引,Seq Scan表示对表进行了全表扫描,而如Index Scan,Index Only Scan则表示使用了索引扫描。 通常情况下,使用索引可以加速查询速度,但索引也会增加数据更新的开销,在数据量较小时,优化器也可能会使用全表扫描代替索引扫描。 例如,下面的SQL语句,使用了Parallel Seq Scan并行全表扫描。 teledb explain select from teledb2 where f3'1'; QUERY PLAN Remote Fast Query Execution (cost0.00..0.00 rows0 width0) Node/s: dn001, dn002 > Gather (cost1000.00..7827.20 rows1 width14) Workers Planned: 2 > Parallel Seq Scan on teledb2 (cost0.00..6827.10 rows1 width14) Filter: (f3 '1'::text) (6 rows) 在f2字段上创建索引后,下面的SQL语句,使用了Index Scan索引扫描。 teledb create index teledb2f2idx on teledb2(f2); CREATE INDEX postgres explain select from teledb2 where f21; QUERY PLAN Remote Fast Query Execution (cost0.00..0.00 rows0 width0) Node/s: dn001, dn002 > Index Scan using teledb2f2idx on teledb2 (cost0.42..4.44 rows1 width14) Index Cond: (f2 1) (4 rows) 当然,按SQL优化原则,上述SQL语句where条件都没有带分布键,导致SQL下发到了所有DN节点,建议尝试优化为带分布键查询。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        SQL开发最佳实践
        性能优化最佳实践
        SQL优化最佳实践
        使用索引提高查询效率
      • 规划器方法配置相关参数
        本页介绍天翼云TeleDB数据库规划器方法配置相关参数。 这些配置参数影响查询优化器选择查询计划的暴力方法。如果优化器为一个特定查询选择的默认计划不是最优的,一种临时解决方案是使用这些配置参数之一来强制优化器选择一个不同的计划。提高优化器选择的计划质量的更好的方式包括调整规划器的代价常数、手工运行ANALYZE、增加defaultstatisticstarget配置参数的值以及使用ALTER TABLE SET STATISTICS增加为特定列收集的统计信息量。 enablebitmapscan (boolean) 允许或禁止查询规划器使用位图扫描计划类型。默认值是on。 enablegathermerge (boolean) 启用或禁用查询规划程序对收集合并计划类型的使用。默认值是on。 enablehashagg (boolean) 允许或禁用查询规划器使用哈希聚集计划类型。默认值是on。 enablehashjoin (boolean) 允许或禁止查询规划器使用哈希连接计划类型。默认值是on。 enableindexscan (boolean) 允许或禁止查询规划器使用索引扫描计划类型。默认值是on。 enableindexonlyscan (boolean) 允许或禁止查询规划器使用只用索引扫描计划类型。默认值是on。 enablematerial (boolean) 允许或者禁止查询规划器使用物化。它不可能完全禁用物化,但是关闭这个变量将阻止规划器插入物化节点,除非为了保证正确性。默认值是on。 enablemergejoin (boolean) 允许或禁止查询规划器使用归并连接计划类型。默认值是on。 enablenestloop (boolean) 允许或禁止查询规划器使用嵌套循环连接计划。它不可能完全禁止嵌套循环连接,但是关闭这个变量将使得规划器尽可能优先使用其他方法。默认值是on。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        参数指南
        查询规划相关参数
        规划器方法配置相关参数
      • 通信加密
        本页介绍天翼云TeleDB数据库中通信加密。 通信加密是指基于传输层SSL(Secure Sockets Layer)协议加密的加密方式。SSL加密是一种安全协议,用于在互联网上建立一个加密的链接,来确保数据传输的安全性。采用SSL加密有如下优点: 数据加密 :SSL使用强大的加密算法来保护数据不被未授权访问。 身份验证 :通过证书验证,确保用户连接到的是正确的服务器,而不是一个假冒的服务器。 数据完整性 :SSL提供了消息完整性检查,确保数据在传输过程中未被篡改。 安全性 :SSL广泛被用于电子商务、网上银行和其他需要保护用户数据安全的场合。 兼容性 :几乎所有现代浏览器和Web服务器都支持SSL。 易于部署 :SSL证书可以从多个证书颁发机构获得,安装和配置过程相对简单。 增强信任 :使用SSL的网站通常会在浏览器地址栏显示一个锁形图标,增强用户对网站的信任。 通信加密的方案 通信加密方案实现原理是通过采用SSL加密,在Web浏览器和服务器之间建立通信加密连接,保护数据在传输过程中不被窃听或篡改。再通过证书验证,确保用户连接到的是正确的服务器,而不是一个假冒的服务器。 开启通信加密 您可参考如下操作开启通信加密。 1. 以用户名和密码登录TeleDBDCP管理控制台。 2. 进入TeleDBDCP控制台管理页面,开通实例。 您可参考《安装部署》中实例服务初始化及实例开通章节开通实例。 3. 在实例开通页面,填写基本信息页面,打开SSL开关,打开内部通信加密开关。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        安全配置手册
        数据加密
        通信加密
      • 冷热数据分离准备
        本页介绍天翼云TeleDB数据库冷热数据分离前的准备工作。 创建FOREIGN DATA WRAPPER teledb CREATE FOREIGN DATA WRAPPER datalakefdw HANDLER datalakefdwhandler VALIDATOR datalakefdwvalidator; CREATE FOREIGN DATA WRAPPER FOREIGN DATA WRAPPER名字可以自行设置。 创建成功的FOREIGN DATA WRAPPER可以通过查看系统表pgforeigndatawrapper是否存在。 teledb select from pgforeigndatawrapper; fdwname fdwowner fdwhandler fdwvalidator fdwacl fdwoptions +++++ datalakefdw 10 16578 16579 (1 row) 创建FOREIGN SERVER teledb CREATE SERVER minioforeignserver teledb FOREIGN DATA WRAPPER datalakefdw teledb OPTIONS (host 'XXX', protocol 'minio', isvirtual 'false', teledb( ishttps 'false'); CREATE SERVER host:对象存储的endpoint,或者控制台的ip地址加端口,例如192.168.20.15:3421。 protocol:对象存储的协议名称,可以为minio等。 isvritual:按照virutalhoststyle 还是 pathhoststyle 的方式来解析对象存储的主机,true为virutalhoststyle。 Ishttps:是否使用https协议。 创建成功的FOREIGN SERVER可以通过查看系统表pgforeignserver是否存在。 teledb select from pgforeignserver; srvname srvowner srvfdw srvtype srvversion srvacl srvoptions ++++++ minioforeignserver 10 16582 {hostXXX,protocolminio,isvirtualfalse,ishttpsfalse} (1 row) 创建USER MAPPING teledb CREATE USER MAPPING FOR XXX SERVER minioforeignserver OPTIONS (user 'XXX', accesskey 'XXXXXXXXXXXXX', secretkey 'XXXXXXXXXX'); CREATE USER MAPPING User:对象存储服务用户名(如有)。 Accesskey:对象存储服务accesskey。 Secretkey:对象存储服务secretkey。 创建成功的USERMAPPING可以通过查看系统表pgusermapping是否存在。 teledb
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        开发手册
        冷热数据分离
        冷热数据分离准备
      • grouping sets/rollup/cube用法
        本页介绍天翼云TeleDB数据库的grouping sets/rollup/cube用法。 group by用法 销售明细表。 create table tgrouping(id int,dep varchar(20),product varchar(20),num int); insert into tgrouping values(1,'业务1部','手机',90); insert into tgrouping values(2,'业务1部','电脑',80); insert into tgrouping values(3,'业务1部','手机',70); insert into tgrouping values(4,'业务2部','电脑',60); insert into tgrouping values(5,'业务2部','手机',50); insert into tgrouping values(6,'业务2部','电脑',60); insert into tgrouping values(7,'业务3部','手机',70); insert into tgrouping values(8,'业务3部','电脑',80); insert into tgrouping values(9,'业务3部','手机',90); 按dep、product 两级汇总分数。 teledb select dep,product,sum(num) from tgrouping group by dep,product order by dep,product; dep product sum ++ 业务1部 电脑 80 业务1部 手机 160 业务2部 电脑 120 业务2部 手机 50 业务3部 电脑 80 业务3部 手机 160 使用grouping sets grouping sets的每个子列表可以指定零个或多个列或表达式,并且与其直接在 GROUP BY 子句中的解释方式相同。一个空的分组集合意味着所有的行都被聚合到一个组中。 如按name、class 单级分别汇总,再计算一个总分。 teledb select dep,product,sum(num) from tgrouping group by grouping sets((dep),(product),()) order by dep,product; dep product sum ++ 业务1部 240 业务2部 170 业务3部 240 电脑 280 手机 370 650 (6 rows) 使用grouping sets 代替 group by 。 teledb
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        开发手册
        数据库基础开发
        DML操作
        grouping sets/rollup/cube用法
      • 设置主从复制模式
        本页介绍天翼云TeleDB数据库设置主从复制模式。 操作场景 该任务用于设置主从复制模式。 操作步骤 1. 切换至TeleDB控制台,在左侧导航单击实例列表 。 2. 在实例列表页面,单击目标实例所在行的详情 ,进入实例详情页面。 3. 在实例详情页,单击操作列下拉框主从复制 ,弹出设置主从复制对话框。 4. 进入设置主从复制模式 对话框,在节点组 下拉框选择节点组和在新复制模式下拉框选择对应的复制模式。 新复制模式包括全异步、全同步、Any1、Any2、First1和First2。 全异步:主数据提交事务后,不需要等待任何备节点将WAL记录复制完成即可进行下一步操作。 全同步:基于优先的同步复制,会让事务提交等待,直到它们的WAL记录被复制到所有备节点上为止。 Any1:基于规定数量的同步复制,会让事务提交等待,直到它们的WAL记录被复制到所列出备节点中的至少1个上为止。 Any2:基于规定数量的同步复制,会让事务提交等待,直到它们的WAL记录被复制到所列出备节点中的至少2个上为止。 First1:基于优先的同步复制,会让事务提交等待,直到它们的WAL记录被复制到基于优先级选择的1个备节点上为止。 First2:基于优先的同步复制,会让事务提交等待,直到它们的WAL记录被复制到基于优先级选择的2个备节点上为止。 5. 单击确定完成主从复制。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        管理平台使用手册
        控制台操作指南
        维护管理实例
        设置主从复制模式
      • 软件包下载
        在部署天翼云TeleDB数据库前,您需要先获取软件包。 获取软件包 请在软件安装开始前,提前获取云服务必要的插件包和软件包。 注意 您下载获取的软件包的MD5值需与对应版本软件包MD5进行核对,确保其一致才可以确认为正确的软件包。 您可在服务器中执行md5sum 软件包名命令查找MD5。 版本号 软件包名称 软件包说明 获取方式 V5.1.5.20.3 5.1.5.20.3x86centos.tar 该软件包是指5.1.5.20.3版本中X86架构软件包,包括内核包、管控包和DCP软件包。 请您按实际版本获取对应的软件包。您可访问天翼云网盘链接下载。 说明 天翼云网盘上软件包分享链接和提取密码,请您提交工单获取。 V5.1.5.20.3 5.1.5.20.3armkylin.tar.gz 该软件包是指5.1.5.20.3版本中arm架构软件包,包括内核包、管控包和DCP软件包。 请您按实际版本获取对应的软件包。您可访问天翼云网盘链接下载。 说明 天翼云网盘上软件包分享链接和提取密码,请您提交工单获取。 V5.1.5.20.3 5.1.5.20.3loongarchkylin.tar 该软件包是指5.1.5.20.3版本中loongarch架构软件包,包括内核包、管控包和DCP软件包。 请您按实际版本获取对应的软件包。您可访问[天翼云网盘链接](
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        安装部署
        安装前准备
        软件包下载
      • TeleDB同城双中心容灾部署
        双中心容灾部署是指在同一个城市内建立两个数据中心,其中一个作为主数据中心,负责日常的生产运行,而另一个作为灾备中心,用于在主数据库中心出现故障时接管业务,保证业务的连续性和数据完整性。 同城双中心容灾部署方案 同城双中心部署方案建议采用至少一主两从的三节点的方式,它包括两个物理机房,分别是同城IDC1机房和同城IDC2机房。同城IDC1机房为主中心采用一主一从两组节点,同城IDC2机房至少部署1个一组从节点为同城中心,其中主中心负责主要的业务处理,而同城中心则作为备份,提供数据冗余和故障恢复能力。三组节点分布在同城两个IDC机房里,机房之间使用专线互通,通过这种方式,即使主中心发生故障,同城中心也可以接管部分或全部业务,保证业务的连续性和数据的完整性。 若业务需要使用TeleDB的HTAP能力,那么必须开启TeleDB的读写多平面特性。考虑到跨机房的时延,同城IDC2机房建议只开启只读平面。在TeleDB集群中,同一平面的CN节点是对等的,由于LVS等负载均衡的组件,具备故障节点自动剔除的能力,可以保证在任意平面的CN故障时,业务请求不会失败;GTM节点以及DN节点均有同步备机存在,TeleDB在运维管理系统的辅助下,会在1分钟以内发现故障,并发起自动切换,数据保证0丢失。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        技术白皮书
        方案简介
        TeleDB容灾部署方案架构
        TeleDB同城双中心容灾部署
      • 续订与退订
        本页面介绍云数据库ClickHouse续订与退订。 续订限制说明 只有通过实名认证的客户,才可以执行续订操作。 按需资源、包年/包月转按需(已完成转按需或正在进行转按需)的资源不可续订。 未完成订单中的资源不允许续订,如开通中的资源、规格变更中的资源、退订中的资源。 已退订或释放的资源不可续费。 若资源到期后续费,续费周期自资源续订解冻开始,计算新的服务有效期,按照新的服务有效期计算费用。例如,客户资源2020年9月30号到期,10月11号续订1个月,那么资源新的服务开始时间为10月11号,到期时间为11月10号。相关费用自10月11号开始计算。 手动续订 适用范围 续订仅针对包月包年产品。 按需资源及包月包年转按需资源不可续订。已退订或已释放资源不可续订。 续订规则 包月包年资源开通成功后,用户可对其进行续订操作。 若资源到期后续订,续订周期自资源续订解冻开始,计算新的服务有效期,按照新的服务有效期计算费用。 手动续订操作 用户随时可以手动续订包月包年且未退订、未释放的资源,延长相关资源的使用时间。 手动单个续订方式1 1. 控制台资源管理界面找到所需续订的资源,点击“操作”下面的更多,点击“续费”,将跳转续订页面。 2. 在续订页面调整所需续订周期后,提交续订订单并完成支付。 说明 当续订周期达到1年或以上时,续订单将可享受包年折扣,续订金额显示折后价。
        来自:
        帮助文档
        云数据库ClickHouse
        计费说明
        续订与退订
      • 步骤二:创建DRDS账号
        本节介绍了购买步骤二。 本章节主要介绍如何在控制台创建DRDS账号。 操作步骤 步骤 1 登录分布式关系型数据库控制台。 步骤 2 在实例管理列表页面,单击目标实例名称,进入基本信息页面。 步骤 3 在左侧导航栏选择“账号管理”,进入账号管理页面。 步骤 4 在账号管理页面,单击“创建DRDS账号”。 步骤 5 在弹框中填选账号信息。 表 账号参数说明 参数 说明 账号名称 DRDS账号的名称,命名规则如下。 长度为132个字符,必须以字母开头,不区分大小写,可以包含字母,数字、下划线,不能包含其它特殊字符。 密码 DRDS账号的密码,密码复杂度要求如下。 长度为8~32个字符。 至少包含三种字符组合:大小写字母、数字、特殊字符 ~ ! @ % ^ + ? 不能使用简单、强度不够、容易被猜测的弱密码。 不能与账号名称或者倒序的账号名称相同。 确认密码 确认密码必须和输入的密码保持一致。 密码有效期 设置密码有效期,取值范围为065535的整数,单位为天。如果DRDS的账号状态为“已过期”,账号将无法登录,已有连接会断开,需要重置密码后重新登录。 0表示密码永不过期。 如果不设置密码有效期则默认密码永不过期。 说明 内核版本需大于或者等于3.0.4。 关联逻辑库 DRDS账号与逻辑库关联绑定,下拉列表中显示可关联的逻辑库。 DRDS账号只对已关联的逻辑库有访问权限。 账号权限 按需选择需要的基础权限,包括CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECT。 描述 对DRDS账号的详细描述信息,长度不能超过256个字符。 步骤 6 信息填写完成,单击“确定”即可创建成功。 结束
        来自:
        帮助文档
        分布式关系型数据库
        快速入门
        步骤二:创建DRDS账号
      • 数据安全概览
        总览页面分为云服务全景图(资产地图)、数据采集安全、数据传输/存储安全、数据使用安全和数据交换/删除安全共五大板块,实时呈现了用户资产的具体情况。 前提要求 已完成资产访问的授权,参考云资产委托授权/停止授权进行操作。 已完成添加数据库资产,参考数据库资产清单进行操作。 操作步骤 1. 登录管理控制台。 2. 单击左上角的,选择区域或项目。 3. 在左侧导航树中,单击,选择“安全> 数据安全中心”,进入数据安全中心总览界面。 4. 查看数据安全中心服务的总览—云服务全景图。 提供数据资产地图,帮助客户建立数据资产的全景视图,可视化呈现数据资产分布、数据敏感程度、当前的风险级别。 梳理云上数据资产:自动扫描并梳理云上数据资产,地图化展示资产分布,帮助用户解决数据在哪里的问题。 敏感数据展示:基于DSC的三层数据识别引擎、预置合规规则、自然语义识别技术、文件相似度检测技术,对数据资产进行分类分级。 对数据资产按照“风险VPC数”、“风险安全组数”、“风险主机数”、“风险RDS数”、“风险OBS数”进行分类展示。 每类资产按照“高危”、“中危”、“低危”、“未识别风险”对敏感数据进行分级定位。 风险监控和预警:基于风险识别引擎,对数据资产进行风险监控,展示每类资产的风险分布,并预警。 说明 将鼠标移动到数据资产图标处,可查看资产相关信息。 单击数据资产图标,在界面的右侧弹框中可详细查看该资产的“基本信息”、“风险信息”或者“风险安全组规则”等信息。 5. 查看数据安全中心服务的总览—数据采集安全。 DSC根据敏感数据规则对敏感数据进行识别和敏感等级分类,您可以在总览页面查看您资产中不同风险等级的数据的分布情况。 基于敏感字段在文件中出现的累计次数和敏感字段关联组来判断文件的敏感性,并根据文件的敏感程度将其划分为四个等级:“未识别风险”、“低风险”、“中风险”和“高风险”。风险等级依次递增。具体风险等级情况说明: 未识别风险:0级 低风险:1~3级 中风险:4~7级 高风险:8~10级 在柱状图中,不同高度代表该风险等级的资产数量。将鼠标箭头放置在柱状图上,可查看该风险等级的资产数量。 6. 查看数据安全中心服务的总览—数据传输/存储安全。 数据传输安全:DSC统计了以下可能存在传输安全的项,您可以直接单击具体项的名称,查看详细情况。 VPN连接数:您的资产中存在已创建的虚拟专用网络,具体的请参考《VPN服务用户指南》。 云专线连接数:您的资产中存在已创建的云专线物理连接,具体的请参考《云专线用户指南》。 ELB未采用加密通信的监听器:添加监听器时,未使用加密通信HTTPS协议的监听器数量的统计,建议您采用HTTS协议进行加密通信,具体的操作请参见修改监听器。 SSL证书订阅:您的资产中存在已购买或者已上传的证书数量,了解SSL证书请参考《SSL证书管理用户指南》。 WAF未采用加密通信的域名:WAF中添加域名时,未使用加密传输HTTPS协议的域名数量的统计,建议您采用HTTPS协议进行加密通信,具体的操作请参见修改服务器信息。 数据存储安全:该模块为您罗列了存在未加密的对象桶,为了防止您的资产存在不必要的存储安全,建议您单击对象桶名称,前往OBS界面,对未加密的对象桶进行加密。 7. 查看数据安全中心服务的总览—数据使用安全。 该模块统计了“近30分钟”、“近3小时”、“近24小时”、“近7天”、“近30天”内的数据使用安全信息。 未处理异常事件:按“数据访问异常”、“数据操作异常”、“数据管理异常”所占比例进行展示。同时,展示了异常事件总数、违例确认总数和违例排除总数。 单击“未处理异常事件”中的其中一个颜色区域,可查看指定数据异常占比。 当不需要展示某种类型的异常事件时,单击事件分布图右侧攻击类型对应的颜色方块,取消在事件分布圆环中的展示。 Top5访问源IP:前5的访问源IP的统计。 Top5被访问高风险对象:被访问的对象中,排在前5的高风险对象。 Top5访问帐号:前5的访问帐号的统计。 8. 查看数据安全中心服务的总览—数据交换/删除安全。 数据交换安全:展示了已创建的“静态脱敏任务数”以及“水印API调用次数”,如何创建数据脱敏任务请参考创建数据脱敏任务。 数据删除安全:DSC为您统计了数据库、ECS、OBS资产的当日删除数和总删除数。
        来自:
        帮助文档
        数据安全中心
        用户指南
        数据安全概览
      • 使用V2签名时的HttpURLConnection开发
        本节主要介绍使用V2签名时的HttpURLConnection开发。 应用场景 V2签名下,使用HttpURLConnection开发。 前提条件 已开通对象存储(经典版)Ⅰ型服务。 具体操作 可以参考下列示例进行HttpURLConnection开发。 import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Base64; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.SortedMap; import java.util.TimeZone; import java.util.TreeMap; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; public class OOSDemoForV2Signer { private static final String DATESTR "EEE, d MMM yyyy HH:mm:ss 'GMT'"; private static final SimpleDateFormat DATEFMT new SimpleDateFormat(DATESTR, Locale.ENGLISH); static { TimeZone gmt TimeZone.getTimeZone("GMT"); DATEFMT.setTimeZone(gmt); } private static final String OOSACCESSKEY "your ak"; private static final String OOSSECRETKEY "your sk"; private static final String OOSENDPOINT "ooscn.ctyunapi.cn"; private static final String OOSOBJECTCONTENT "yourobjectcontent"; private static final int CONNTIMEOUT 30000; private static final int READTIMEOUT 30000; public void putObject(String bucket, String objectKey) { try { Map headers new HashMap<>(); headers.put("ContentType", "text/plain"); headers.put("xamzdate", "xxxx"); HttpURLConnection connection generateConnection("PUT", bucket, objectKey, headers); connection.setFixedLengthStreamingMode(OOSOBJECTCONTENT.length()); connection.setDoOutput(true); connection.connect(); byte[] requestBody OOSOBJECTCONTENT.getBytes(); try (OutputStream outputStream connection.getOutputStream()) { outputStream.write(requestBody); } int responseCode connection.getResponseCode(); if (responseCode 200) { System.out.println("put object success"); } else { try (InputStream inputStream connection.getErrorStream()) { BufferedReader reader new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line reader.readLine()) ! null) { System.out.println(line); } } } } catch (Exception e) { e.printStackTrace(); } } public void getObject(String bucket, String objectKey) { try { HttpURLConnection connection generateConnection("GET", bucket, objectKey, null); connection.connect(); int responseCode connection.getResponseCode(); // 在responseCode为200 的情况下, 可将connection.getInputStream()的对象数据读出。 if (responseCode 200) { System.out.println("get object success"); } try (InputStream inputStream responseCode 200 ? connection.getInputStream() : connection.getErrorStream()) { BufferedReader reader new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line reader.readLine()) ! null) { System.out.println(line); } } } catch (Exception e) { // 异常可选择抛出或者处理掉。 e.printStackTrace(); } } public void deleteObject(String bucket, String objectKey) { try { HttpURLConnection connection generateConnection("DELETE", bucket, objectKey, null); connection.connect(); int responseCode connection.getResponseCode(); if (responseCode 204) { System.out.println("delete object success"); } else { try (InputStream inputStream connection.getErrorStream()) { BufferedReader reader new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line reader.readLine()) ! null) { System.out.println(line); } } } } catch (Exception e) { // 异常可选择抛出或者处理掉。 e.printStackTrace(); } } / 1 并不是headers里的所有头域,都参与计算签名。详情请参照 3.1.1章节StringToSign的构成说明 2 任何头以xamzmeta这个前缀开始都会被认为是用户的元数据,当用户检索时,它将会和对象一起被存储并返回。 PUT请求头大小限制为8KiB。在PUT请求头中,用户定义的元数据大小限制为2KiB。 例:headers.put("xamzmetatest", "oos"); / private HttpURLConnection generateConnection(String method, String bucket, String objectKey, Map headers) throws Exception { if (headers null) { headers new TreeMap<>(); } if (!headers.containsKey("Date")) { String date DATEFMT.format(new Date()); headers.put("Date", date); } Map querys new HashMap<>(32); // 设置查询参数示例,可按需选择是否在请求url上设置查询参数。更多接口参数请参考《OOS开发者文档v6》 querys.put("responsecontenttype", "application/octetstream"); String authorization v2Sign(method, bucket, objectKey, headers, querys); String requestUrl " + bucket + "." + OOSENDPOINT + "/" + urlEncode(objectKey, false); if (querys.size() ! 0) { requestUrl + "?" + encodeParameters(querys); } URL url new URL(requestUrl); HttpURLConnection connection (HttpURLConnection)url.openConnection(); connection.setRequestProperty("Authorization", authorization); connection.setConnectTimeout(CONNTIMEOUT); connection.setReadTimeout(READTIMEOUT); connection.setRequestMethod(method); if (null ! headers) { headers.forEach(connection::setRequestProperty); } return connection; } private String encodeParameters(Map querys) { StringBuilder builder new StringBuilder(); Iterator > pairs querys.entrySet().iterator(); while (pairs.hasNext()) { Map.Entry pair pairs.next(); builder.append(urlEncode(pair.getKey(), false)); builder.append(""); builder.append(urlEncode(pair.getValue(), false)); if (pairs.hasNext()) { builder.append("&"); } } return builder.toString(); } // 以下是签名计算相关方法 / The set of request parameters which must be included in the canonical string to sign. / private static final List SIGNEDPARAMETERS Arrays.asList("acl", "torrent", "logging", "location", "policy", "requestPayment", "versioning", "versions", "versionId", "notification", "uploadId", "uploads", "partNumber", "website", "delete", "lifecycle", "tagging", "cors", "restore", "responsecachecontrol", "responsecontentdisposition", "responsecontentencoding", "responsecontentlanguage", "responsecontenttype", "responseexpires"); private String v2Sign(String method, String bucket, String objectKey, Map headers, Map querys) throws Exception { String canonicalString getCanonicalString(method, toResourcePath(bucket, objectKey), headers, querys); String signature sign(canonicalString); return "AWS " + OOSACCESSKEY + ":" + signature; } private String sign(String data) throws Exception { try { Mac mac Mac.getInstance("HmacSHA1"); mac.init(new SecretKeySpec(OOSSECRETKEY.getBytes(StandardCharsets.UTF8), "HmacSHA1")); byte[] bs mac.doFinal(data.getBytes(StandardCharsets.UTF8)); return Base64.getEncoder().encodeToString(bs); } catch (Exception e) { throw new Exception("Unable to calculate a request signature: " + e.getMessage(), e); } } / Calculate the canonical string for a REST/HTTP request to OOS. When expires is nonnull, it will be used instead of the Date header. / private String getCanonicalString(String method, String resource, Map headers, Map querys) { StringBuilder buf new StringBuilder(); buf.append(method).append("n"); SortedMap interestingHeaders new TreeMap<>(); if (headers ! null && headers.size() > 0) { for (Map.Entry entry : headers.entrySet()) { String key entry.getKey(); String value entry.getValue(); if (key null) { continue; } String lk key.toLowerCase(Locale.getDefault()); if ("contenttype".equals(lk) "contentmd5".equals(lk) "date".equals(lk) lk.startsWith("xamz")) { interestingHeaders.put(lk, value); } } } // Remove default date timestamp if "xamzdate" is set. if (interestingHeaders.containsKey("xamzdate")) { interestingHeaders.put("date", ""); } // These headers require that we still put a new line in after them, // even if they don't exist. if (!interestingHeaders.containsKey("contenttype")) { interestingHeaders.put("contenttype", ""); } if (!interestingHeaders.containsKey("contentmd5")) { interestingHeaders.put("contentmd5", ""); } // Any parameters that are prefixed with "xamz" need to be included // in the headers section of the canonical string to sign if (querys ! null) { for (Map.Entry parameter : querys.entrySet()) { if (parameter.getKey().toLowerCase().startsWith("xamz")) { interestingHeaders.put(parameter.getKey().toLowerCase(), parameter.getValue()); } } } for (Map.Entry entry : interestingHeaders.entrySet()) { String key entry.getKey(); Object value entry.getValue(); if (key.toLowerCase().startsWith("xamz")) { buf.append(key).append(':').append(value); } else { buf.append(value); } buf.append("n"); } buf.append(resource); if (querys ! null) { String[] parameterNames querys.keySet().toArray(new String[0]); Arrays.sort(parameterNames); char separator '?'; for (String parameterName : parameterNames) { // Skip any parameters that aren't part of the canonical signed string if (!SIGNEDPARAMETERS.contains(parameterName)) { continue; } buf.append(separator); buf.append(parameterName); String parameterValue querys.get(parameterName); if (parameterValue ! null && !"".equals(parameterValue)) { buf.append("").append(parameterValue); } separator '&'; } } return buf.toString(); } private String toResourcePath(String bucket, String objectKey) { String resourcePath "/" + ((bucket ! null && !"".equals(bucket)) ? bucket : "") + ((objectKey ! null) ? "/" + objectKey : ""); return urlEncode(resourcePath, true); } / @param keepPathSlash 实际上,根据RFC 3986规范,url中的 '/'和'~' 可以不用转译,URLEncoder做了转译,但是为了兼容浏览器解析文件名,要求 '/'和'~'不能做转译。 @param url 客户请求的url,也就是object key @return 转译后的url / private String urlEncode(String url, boolean keepPathSlash) { String encoded; try { encoded URLEncoder.encode(url, StandardCharsets.UTF8.toString()); } catch (UnsupportedEncodingException e) { throw new RuntimeException("UTF8 encoding is not supported.", e); } if (keepPathSlash) { // Web browsers do not always handle '+' characters well, use the wellsupported '%20' instead. encoded encoded.replaceAll("+", "%20"); // Change all "%2F" back to "/", so that when users download a file in a virtual folder by the presigned // URL, // the web browsers won't mess up the filename. (e.g. 'folder1folder2filename' instead of 'filename') encoded encoded.replace("%2F", "/"); encoded encoded.replace("%7E", "~"); } return encoded; } public static void main(String[] args) { String bucket "your bucket"; String objectKey "your object key"; OOSDemoForV2Signer v2 new OOSDemoForV2Signer(); v2.putObject(bucket, objectKey); v2.getObject(bucket, objectKey); v2.deleteObject(bucket, objectKey); } }
        来自:
        帮助文档
        对象存储(经典版)I型
        最佳实践
        使用HttpURLConnection开发
        使用V2签名时的HttpURLConnection开发
      • 主子账号使用手册-II 类型资源池
        为子帐号开放所有企业项目权限 创建子帐号后,如果您希望子帐号可以看到所有的企业项目,而不仅是个别项目,可以参照以下步骤: 1. 对于创建完毕的子帐号,且子账户已经加入到用户组,选择该子账户所在的用户组,点击操作列的授权。 2. 输入框搜索mysql,选择mysql的相关策略,也可根据自己需要的其他策略,搜索加入,确认无误勾选该策略并点击右下角下一步。 注意 MySQL相关策略中,最少选择一个,表示希望对该企业项目下的MySQL实例进行相关管理。 如果您操作的是Ⅱ类型资源池,可以搜索“mysql”关键词,可以看到MySQLreviewer,MySQLuser,MySQLadmin三种权限,可选择这三者中至少一种,作为该用户组的权限。具体的每种策略权限区别可以参考主子账号和IAM权限管理。 3. 进入设置最小授权范围,选择想要配置的资源池,并点击右下角的确认。 4. 显示授权成功。 5. 回到用户组列表,点击查看,可以看到授权记录。 6. 此时用子帐号登录天翼云官网,进入数据库管理控制台,即可看到所有企业项目的资源。
        来自:
        帮助文档
        关系数据库MySQL版
        用户指南
        账号与安全
        主子账号使用手册-II 类型资源池
      • 分级视图
        本小节介绍服务器安全卫士的资产清点分级视图。 功能说明 分级视图,是一种系统化的资产查询视图,通过系统化地分类,展示资产的统计情况,帮助用户快速了解资产总体信息。同时,作为分级视图详情的入口,以结构化的方式,有效地引导用户进行索引查询。 共有12个功能模块,分别为: 主机资产:模块包含所有主机相关信息,包括基本信息、运维信息、代理信息、Bash插件安装信息等; 进程端口:模块包含主机中所有进程,及运行进程的端口相关信息; 系统账号:模块包含主机中所有账号,及用户组相关信息; 硬件配置:模块包含所有主机的硬件配置信息,及硬件消耗情况; 软件应用:模块包含主机中所有软件应用相关信息; Web服务:模块包含主机中所有Web服务相关信息; 数据库:模块包含主机中所有数据库相关信息; Web站点:模块包含主机中所有Web站点相关信息; Web应用:模块包含主机中所有Web应用相关信息; Web应用框架:模块包含主机中所有Web框架相关信息; 安装包和类库:模块包含主机中安装包和Jar包相关信息; 其它:模块包含了一些非核心的资产信息,包括:启动项、计划任务、环境变量、内核变量等。 查看方法 1.通过点击模块及折叠按钮 ,可展开查看具体资产统计信息。 2.点击右上角的 按钮,可以将全部模块的内容展开。 3.展开后,右上角按钮变为 ,点击收起,可以将全部模块的内容收起。 4.点击模块统计数值,即可跳转到对应的”资产详情页面”,查看所有主机中该资产的详细信息。 5.如想仅查看某个主机的资产情况,可以点击”查找主机” 按钮,筛选出该主机后”查看”。 所有主机中的资产信息,每天自动更新一次,如果想获取最新信息,可以点击右上角的”更新数据”按钮,手动触发更新;对于功能中的统计数据,也可以手动触发”更新统计”。 6.在资产详细信息查询中,提供了两种视角(资产视角、主机视角),用户基于不同的统计查询需要,可相互切换。 同时在资产详情页面,用户可以对列表进行操作,得到想要的查询结果。 筛选/搜索区:根据不同需要,对列表内容进行筛选; 更新数据按钮:点击 ,手动触发更新当前资产数据; 全部导出按钮:点击 ,可导出列表中的全部资产数据; 设置显示列按钮:点击 ,通过勾选列名,控制列表中信息的显示/隐藏; 复选框按钮 :点击复选框,可选中该行数据,进行“导出”等操作。
        来自:
        帮助文档
        服务器安全卫士(文档停止维护)
        资产清点
        分级视图
      • 非分布键 join通常使用hash join性能更好
        本页介绍天翼云TeleDB数据库的非分布键 join使用hash join会在性能上更好的场景说明。 非分布键关联,默认下推DN节点执行,DN节点之间会发生数据重分布,重分布数据量大的时候,性能会有明显下降。这种场景,通常使用Hash Join关联,性能会比Merge Join和Nested Loop更好。 而为了提高TP类业务查询的性能,我们经常需要对一些字段创建索引,使用有索引字段join时,优化器往往也会使用Merge Join和Nested Loop。针对此场景,可以通过会话级别关闭Merge Join和Nested Loop,让优化器走Hash Join,或通过hint指定Hash Join。 以下是关于该场景的测试情况: 1. 测试数据准备: teledb CREATE TABLE t1(f1 serial not null,f2 text,f3 text,f4 text,f5 text,f6 text,f7 text,f8 text,f9 text,f10 text,f11 text,f12 text) distribute by shard(f1); CREATE TABLE Time: 481.042 ms teledb create index t1f1idx on t1(f2); CREATE INDEX Time: 85.521 ms teledb CREATE TABLE t2(f1 serial not null,f2 text,f3 text,f4 text,f5 text,f6 text,f7 text,f8 text,f9 text,f10 text,f11 text,f12 text) distribute by shard(f1); CREATE TABLE Time: 75.973 ms teledb create index t2f1idx on t2(f2); CREATE INDEX Time: 29.890 ms teledb insert into t1 select t,md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text),md5(t::text) from generateseries(1,1000000) as t; INSERT 0 1000000 Time: 16450.623 ms (00:16.451) teledb
        来自:
      • 导入工单列表
        本页介绍天翼云TeleDB数据库导入工单列表相关操作。 1、工单查询 输入查询条件后单击查询按钮,执行查询操作。支持的查询条件: 1. 工单状态: a 工单创建:工单保存到业务系统过程中。 b 执行中:导入任务执行中。 c 执行完成:导入任务执行成功。 d 执行异常:导入任务执行失败。 2. 时间范围:某一时间段创建或执行的导入工单。 3. 关键词:可输入工单号/库名/创建人相关关键字。 2、数据导入 单击数据导入按钮可添加新的数据导入任务,详见提交导入任务章节。 3、执行异常查看 执行异常的工单,可以单击工单状态上的,查看异常原因。 4、重试 针对异常的工单,可以根据异常原因,进行选择是否需要重试,单击重试按钮即可进行重试。 注意 重试操作并不会更改配置,请考虑重试是否可能成功后再单击按钮。 5、详情 在工单列表找到目标工单,单击工单号或在操作列单击详情按钮,在打开的工单详情弹窗可查看目标工单的详细信息。 内容 说明 工单号 系统生成的工单唯一id。 工单类型 展示工单是导入或导出类型。 库信息 导入任务对应的目标库/模式信息。 工单状态 展示工单当前状态。 创建人 导入任务的创建用户。 创建时间 工单保存到系统的时间。 最后操作时间 工单状态最后更新时间。 导入文件类型 导入的文件格式类型,可在创建工单任务时选择。 工单说明 备注信息,可在创建工单任务时填写。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        管理平台使用手册
        数据管理服务操作指南
        数据导入
        导入工单列表
      • TaurusDB密码过期策略
        本节介绍了密码过期问题与处理方法。 TaurusDB 8.0版本支持通过设置全局变量“defaultpasswordlifetime”来控制用户密码的默认过期时间。 参数“defaultpasswordlifetime”的值为N,表示密码N天后过期,单位为天。默认值为0,表示创建的用户密码永不过期。 修改全局自动密码过期策略 您可以在云数据库TaurusDB界面,通过设置参数“defaultpasswordlifetime”的值,修改密码过期策略。 参数修改具体请参见编辑参数模板。 通过命令修改全局变量“defaultpasswordlifetime”的值。 mysql> set global defaultpasswordlifetime0; 查看当前所有用户的密码过期时间 执行以下命令: mysql> select user,host,passwordexpired,passwordlastchanged,passwordlifetime from user; 查看指定用户的密码过期策略 执行以下命令: mysql> show create user jeffrey @'localhost'; “EXPIRE DEFAULT”表示遵从全局到期策略。 设置指定用户的密码过期策略 创建用户的同时设置密码过期策略 create user ' script '@'localhost' identified by ' ' password expire interval 90 day; 创建用户后设置密码过期策略 ALTER USER ' script '@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY; 设置密码永不过期 mysql> CREATE USER ' mike '@'%' PASSWORD EXPIRE NEVER; mysql> ALTER USER ' mike '@'%' PASSWORD EXPIRE NEVER; 设置密码遵从全局到期策略 mysql> CREATE USER ' mike '@'%' PASSWORD EXPIRE DEFAULT; mysql> ALTER USER ' mike '@'%' PASSWORD EXPIRE DEFAULT;
        来自:
        帮助文档
        云数据库TaurusDB
        常见问题
        数据库参数修改类
        TaurusDB密码过期策略
      • 标签
        本节介绍了云数据库GaussDB 的标签功能。 操作场景 标签管理服务(Tag Management Service,TMS)用于用户在云平台,通过统一的标签管理各种资源。TMS服务与各服务共同实现标签管理能力,TMS提供全局标签管理能力,各服务维护自身标签管理 。 建议您先在TMS系统中设置预定义标签。 标签由“键”和“值”组成,每个标签中的一个“键”只能对应一个“值”。 每个实例最多支持20个标签配额。 添加标签 步骤 1 登录管理控制台。 步骤 2 在“实例管理”页面,选择指定的实例,单击实例名称,进入实例的“基本信息”页签。 步骤 3 在左侧导航栏,单击“标签”,单击“添加标签”,在“添加标签”弹出框中,输入标签的键和值,单击“确定”。 标签的键不能为空且必须唯一,长度为1~36个字符,只能包含字母、数字、中划线、下划线和@符号。 标签的值可以为空字符串,长度为0~43个字符,只能包含字母、数字、中划线、下划线、 英文句点和@符号。 步骤 4 添加成功后,您可在当前实例的所有关联的标签集合中,查询并管理自己的标签。 编辑标签 步骤 1 登录管理控制台。 步骤 2 在“实例管理”页面,选择指定的实例,单击实例名称。 步骤 3 在左侧导航栏,单击“标签”,选择需要编辑的标签,单击“编辑”。 步骤 4 在“编辑标签”弹出框中修改标签值,单击“确定”。 编辑标签时,不能修改标签的键,只能修改标签的值。 标签的值可以为空字符串,长度为0~43个字符,只能包含字母、数字、中划线、下划线、英文句点和@符号。 步骤 5 编辑成功后,您可在当前实例的所有关联的标签集合中,查询并管理自己的标签。
        来自:
        帮助文档
        云数据库GaussDB
        用户指南
        标签
      • 数据库连接
        本节主要介绍数据库连接类问题 如何接入GeminiDB Redis 目前GeminiDB Redis提供使用内网、公网、程序代码等方式接入GeminiDB Redis,具体方法请参见连接方式介绍。 如何使用GeminiDB Redis提供的多个节点IP地址 GeminiDB Redis提供多个IP地址供客户连接,连接任何一个IP地址都可以访问整个集群,其目的是为了提供负载均衡和容灾能力。 您可以通过以下两种方法使用多个IP。 1. 业务侧实现连接池,实现负载均衡和故障检测处理。 2. 联系客服,为您配置ELB(Elastic Load Balance,弹性负载均衡)服务,提供唯一IP供客户使用。 GeminiDB Redis提供的ELB的实现方式是怎样的 详情请参见弹性负载均衡。 如何创建和连接弹性云主机 1. 创建弹性云主机,请参见《弹性云主机快速入门》。 该弹性云主机用于连接GeminiDB Redis的实例,需要与目标实例处于同一虚拟私有云和子网内。 正确配置目标实例安全组,使得弹性云主机处于目标实例所属安全组允许访问的范围内。 2. 连接弹性云主机,请参见《弹性云主机快速入门》中“登录弹性云主机”的内容。 GeminiDB Redis实例购买成功后是否支持更换VPC GeminiDB Redis实例创建完成后暂不支持直接通过控制台更换VPC。 但您可以通过已有的全量备份恢复到新实例的方法切换到目标VPC。具体操作请参考恢复备份到新实例。
        来自:
        帮助文档
        云数据库GeminiDB
        GeminiDB Redis接口
        常见问题
        数据库连接
      • 参数数据类型
        本页介绍天翼云TeleDB数据库存储过程开发的参数数据类型。 数据类型(可以有模式修饰),可以是基本类型,复合类型、域类型、游标、或者可以引用一个现有表类型、字段类型(建立时转换为对应的类型)、还可以是多态类型 anyelement、anyarray,也可以是各种数据类型的数组形式。 基本类型 plaintext teledb CREATE OR REPLACE PROCEDURE pbasepara (aint integer,astr text) AS $$ BEGIN RAISE NOTICE 'aint % ; astr %',aint,astr; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL pbasepara(1,'teledbpg'); NOTICE: aint 1 ; astr teledbpg CALL teledb teledb CREATE OR REPLACE PROCEDURE pbasearray (aint integer[],astr text[]) AS $$ BEGIN RAISE NOTICE 'aint % ; astr %',aint,astr; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL pbasearray(ARRAY[1,2,3],ARRAY['teledbpg','pgxz']); NOTICE: aint {1,2,3} ; astr {teledbpg,pgxz} CALL teledb 复合类型 plaintext teledb CREATE TYPE public.tper AS ( id integer, mc text ); CREATE TYPE teledb CREATE OR REPLACE PROCEDURE ptype (arow public.tper) AS $$ BEGIN RAISE NOTICE 'id % ; mc %',arow.id,arow.mc; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL ptype(ROW(1,'teledbpg')::public.tper); NOTICE: id 1 ; mc teledbpg CALL teledb 复合数组 plaintext teledb CREATE OR REPLACE PROCEDURE ptypearray (arec public.tper[]) AS $$ BEGIN RAISE NOTICE 'arec %',arec; RAISE NOTICE 'arec[1].id %',arec[1].id; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V2.0.0版本产品文档
        开发手册
        存储过程开发
        参数详细介绍
        参数数据类型
      • 应用程序语法介绍
        您可以通过本页了解天翼云TeleDB数据库的建立函数语法、[OR REPLACE] 更新函数介绍、[模式名.]函数名介绍。 建立函数语法 plaintext CREATE [OR REPLACE] FUNCTION [模式名.]函数名 ([参数模式 [参数名] 数据类型 [default 默认值] [,…]]) RETRUNS [SETOF] 数据类型 AS [标签] [DECLARE 变量定义] BEGIN 注释 /注释/ 语句执行 END; [标签] LANGUAGE PLPGSQL; [OR REPLACE] 更新函数介绍 OR REPLACE 的作用为函数存在时则替换,建立 PL/pgsql 函数时如果不带 OR REPLACE 关键字, 则遇到函数已经存在,系统会报错,如下所示: plaintext teledb select prosrc from pgproc where proname'f'; prosrc BEGIN + RAISE NOTICE 'Hello ,teledb';+ END; + (1 row) teledb CREATE FUNCTION f() RETURNS VOID AS $$ BEGIN RAISE NOTICE 'Hello ,teledb'; END; $$ LANGUAGE PLPGSQL; ERROR: function "f" already exists with same argument types teledb CREATE OR REPLACE FUNCTION f() RETURNS VOID AS $$ BEGIN RAISE NOTICE 'Hello ,teledb'; END; $$ LANGUAGE PLPGSQL; CREATE FUNCTION teledb select prosrc from pgproc where proname'f'; prosrc BEGIN + RAISE NOTICE 'Hello ,teledb';+ END; + (1 row) teledb select f(); NOTICE: Hello ,teledb f (1 row) [模式名.]函数名介绍 建立函数名称,模式名可以指定,也可以不指定,不指存则存放在当前模式下,如上面例子就没有指定模式名,则就存放在当前模式下,如下所示: plaintext teledb select from pgnamespace; nspname nspowner nspacl ++ pgtoast 10 pgoracle 10 squeeze 10 pgtemp1 10 pgtoasttemp1 10 pgcatalog 10 {teledbUC/teledb,U/teledb} public 10 {teledbUC/teledb,UC/teledb} informationschema 10 {teledbUC/teledb,U/teledb} (8 rows) teledb
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V3.0.0版本产品文档
        开发手册
        PL:pgsql开发
        应用程序语法介绍
      • 参数数据类型
        本页介绍天翼云TeleDB数据库存储过程开发的参数数据类型。 数据类型(可以有模式修饰),可以是基本类型,复合类型、域类型、游标、或者可以引用一个现有表类型、字段类型(建立时转换为对应的类型)、还可以是多态类型 anyelement、anyarray,也可以是各种数据类型的数组形式。 基本类型 plaintext teledb CREATE OR REPLACE PROCEDURE pbasepara (aint integer,astr text) AS $$ BEGIN RAISE NOTICE 'aint % ; astr %',aint,astr; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL pbasepara(1,'teledbpg'); NOTICE: aint 1 ; astr teledbpg CALL teledb teledb CREATE OR REPLACE PROCEDURE pbasearray (aint integer[],astr text[]) AS $$ BEGIN RAISE NOTICE 'aint % ; astr %',aint,astr; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL pbasearray(ARRAY[1,2,3],ARRAY['teledbpg','pgxz']); NOTICE: aint {1,2,3} ; astr {teledbpg,pgxz} CALL teledb 复合类型 plaintext teledb CREATE TYPE public.tper AS ( id integer, mc text ); CREATE TYPE teledb CREATE OR REPLACE PROCEDURE ptype (arow public.tper) AS $$ BEGIN RAISE NOTICE 'id % ; mc %',arow.id,arow.mc; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL ptype(ROW(1,'teledbpg')::public.tper); NOTICE: id 1 ; mc teledbpg CALL teledb 复合数组 plaintext teledb CREATE OR REPLACE PROCEDURE ptypearray (arec public.tper[]) AS $$ BEGIN RAISE NOTICE 'arec %',arec; RAISE NOTICE 'arec[1].id %',arec[1].id; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V3.0.0版本产品文档
        开发手册
        存储过程开发
        参数详细介绍
        参数数据类型
      • 应用程序语法介绍
        您可以通过本页了解天翼云TeleDB数据库的建立函数语法、[OR REPLACE] 更新函数介绍、[模式名.]函数名介绍。 建立函数语法 plaintext CREATE [OR REPLACE] FUNCTION [模式名.]函数名 ([参数模式 [参数名] 数据类型 [default 默认值] [,…]]) RETRUNS [SETOF] 数据类型 AS [标签] [DECLARE 变量定义] BEGIN 注释 /注释/ 语句执行 END; [标签] LANGUAGE PLPGSQL; [OR REPLACE] 更新函数介绍 OR REPLACE 的作用为函数存在时则替换,建立 PL/pgsql 函数时如果不带 OR REPLACE 关键字, 则遇到函数已经存在,系统会报错,如下所示: plaintext teledb select prosrc from pgproc where proname'f'; prosrc BEGIN + RAISE NOTICE 'Hello ,teledb';+ END; + (1 row) teledb CREATE FUNCTION f() RETURNS VOID AS $$ BEGIN RAISE NOTICE 'Hello ,teledb'; END; $$ LANGUAGE PLPGSQL; ERROR: function "f" already exists with same argument types teledb CREATE OR REPLACE FUNCTION f() RETURNS VOID AS $$ BEGIN RAISE NOTICE 'Hello ,teledb'; END; $$ LANGUAGE PLPGSQL; CREATE FUNCTION teledb select prosrc from pgproc where proname'f'; prosrc BEGIN + RAISE NOTICE 'Hello ,teledb';+ END; + (1 row) teledb select f(); NOTICE: Hello ,teledb f (1 row) [模式名.]函数名介绍 建立函数名称,模式名可以指定,也可以不指定,不指存则存放在当前模式下,如上面例子就没有指定模式名,则就存放在当前模式下,如下所示: plaintext teledb select from pgnamespace; nspname nspowner nspacl ++ pgtoast 10 pgoracle 10 squeeze 10 pgtemp1 10 pgtoasttemp1 10 pgcatalog 10 {teledbUC/teledb,U/teledb} public 10 {teledbUC/teledb,UC/teledb} informationschema 10 {teledbUC/teledb,U/teledb} (8 rows) teledb
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V4.0.0版本产品文档
        开发手册
        PL:pgsql开发
        应用程序语法介绍
      • 参数数据类型
        本页介绍天翼云TeleDB数据库存储过程开发的参数数据类型。 数据类型(可以有模式修饰),可以是基本类型,复合类型、域类型、游标、或者可以引用一个现有表类型、字段类型(建立时转换为对应的类型)、还可以是多态类型 anyelement、anyarray,也可以是各种数据类型的数组形式。 基本类型 plaintext teledb CREATE OR REPLACE PROCEDURE pbasepara (aint integer,astr text) AS $$ BEGIN RAISE NOTICE 'aint % ; astr %',aint,astr; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL pbasepara(1,'teledbpg'); NOTICE: aint 1 ; astr teledbpg CALL teledb teledb CREATE OR REPLACE PROCEDURE pbasearray (aint integer[],astr text[]) AS $$ BEGIN RAISE NOTICE 'aint % ; astr %',aint,astr; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL pbasearray(ARRAY[1,2,3],ARRAY['teledbpg','pgxz']); NOTICE: aint {1,2,3} ; astr {teledbpg,pgxz} CALL teledb 复合类型 plaintext teledb CREATE TYPE public.tper AS ( id integer, mc text ); CREATE TYPE teledb CREATE OR REPLACE PROCEDURE ptype (arow public.tper) AS $$ BEGIN RAISE NOTICE 'id % ; mc %',arow.id,arow.mc; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb CALL ptype(ROW(1,'teledbpg')::public.tper); NOTICE: id 1 ; mc teledbpg CALL teledb 复合数组 plaintext teledb CREATE OR REPLACE PROCEDURE ptypearray (arec public.tper[]) AS $$ BEGIN RAISE NOTICE 'arec %',arec; RAISE NOTICE 'arec[1].id %',arec[1].id; END; $$ LANGUAGE PLPGSQL; CREATE PROCEDURE teledb
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品历史版本
        V5.0.0版本产品文档
        开发手册
        存储过程开发
        参数详细介绍
        参数数据类型
      • 1
      • ...
      • 252
      • 253
      • 254
      • 255
      • 256
      • ...
      • 345
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      云聚517 · 好价翼起拼

      爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      聚力AI赋能 天翼云大模型专项

      大模型特惠专区·Token Plan 轻享包低至9.9元起

      青云志云端助力计划

      一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云

      企业出海解决方案

      助力您的业务扬帆出海,通达全球!

      天翼云信创专区

      “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      产品推荐

      物理机 DPS

      多活容灾服务 MDR

      轻量型云主机

      天翼云CTyunOS系统

      AI Store

      Token服务

      人脸活体检测

      通用型OCR

      驾驶证识别

      推荐文档

      产品优势

      启动会议

      常见问题

      产品定义

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 息壤智算平台
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号