华为云用户手册

  • 文件介绍 {widget}.js为组件逻辑文件,整个Widget的渲染核心JS,在组件编辑状态和页面最终的发布运行态都会被加载执行。一个推荐的组件架构,应包含表1中API。其中,init、render和beforeDestory为组件的通用生命周期函数,其余为推荐模板实现。 表1 组件架构组成 API名称 API解释 是否必须 init(生命周期函数) 组件初始化入口API,初始化组件通用能力,负责注册组件事件和组件动作。 是 render(生命周期函数) 组件核心渲染API,负责组件的实例化、数据调用及事件、动作的实际实现。 是 beforeDestroy(生命周期函数) 组件销毁回调事件,负责组件在销毁期间的内存释放逻辑实现,需要把组件绑定的一些dom事件及全局的引用销毁。 是 initContainer render中抽取的独立逻辑,初始化组件container,所有组件逻辑统一。 统一实现,无需改动。 getInitProps render中抽取的独立逻辑,基于默认prop和组件配置的props进行融合处理,并返回。 建议实现。 initI18n 初始化组件message-en/message-zh的多语言信息,统一注册到独立的i18nVue实例中,供组件获取桩数据、获取默认配置、初始化组件统一使用。 建议实现。 initReaderVm render中抽取的独立逻辑,初始化运行态组件VM实例。在实例中获取数据并实现组件的核心渲染。 建议实现。 registerWidgetActionAndEvent init中抽取的独立逻辑,注册组件对外暴露的的事件和动作。 按需实现,组件定义事件和动作时使用。 getMockData 组件在没有对接外部数据源时,使用的获取桩数据的API自定义实现。考虑数据集天然支持二维数组对象,桩数据结构统一为二维数组对象[{id:3,name:'zhangsan'}]。某些场景假如只需要一个简单值val,可以设置组件桩数据设置为简单二维对象数组[{val:123}]。 -
  • 文件示例 messages-zh.json配置示例 { "zh-CN": { "dataSetting.s": "系列", "setting": "EchartsWidgetTemplate配置" } } messages-en.json配置示例 { "en-US": { "dataSetting.s": "Series", "setting": "EchartsWidgetTemplate Setting" } }
  • 文件介绍 i18n.json为组件的国际化资源文件,用于配置多语言,目前支持的多语言包含中英文两种,相应的key值分别为['zh-CN','en-US']。多语言文件支持配置在多个Json中,在packageinfo.json中的配置示例如下: "i18n": [{ "name": "messages-en" // 组件的多语言文件,相应文件为messages-en.json }, { "name": "messages-zh" // 组件的多语言文件,相应文件为messages-zh.json } ],
  • setLocalStorage 用于设置某个localStorage的值,使用方式参考如下: /* @param {string} key * @param {string/obj} value * @param {number} expires */ HttpUtils.setLocalStorage("key","value",1000) 内置API支持设置localstorage的失效时间,单位为s。
  • getUrlParam 用于获取查询字符串中的参数,使用方式参考如下: /* * 例如某个页面的URL为“https://10.10.10.1:12900/magno/render/cool__app_0000000000NABzEjpNIH/page1?param=1”, 通过执行 * HttpUtils.getUrlParam("param")返回该参数的值“1”。 */ HttpUtils.getUrlParam("param")
  • refreshToken 用于手动刷新页面的accesstoken,通常用在执行退出逻辑时,执行该方法刷新页面的accesstoken。使用方式参考如下: /* @param {*} connector * @param {*} successCallBack * @param {*} errorCallback */ HttpUtils.refreshToken(connector,successCallBack,successCallBack)
  • getCsrfToken 通过ajax的方式,调用平台的接口时使用,使用方式参考如下: /* * 如果使用平台桥接器的方式,平台会自动在请求header中添加csrf-token头。 */ HttpUtils.getCsrfToken(function(csrfToken) { $.ajax({ headers: { CS RF-Token: csrfToken }, }) });
  • registerEvents 一般用于在组件初始化阶段注册事件,只有通过此API注册后的事件才会在组件的事件列表中展现。同样只有注册的事件之后才能通过triggerEvent触发,使用方式参考如下: /* @param {obj} widgetInst 组件对象自身 * @param {string} eventName 事件名 * @param {string/{langKey:string}} eventDescription 事件描述 */ Studio.registerEvents(this, "selectItem", { zh_CN: "选中选项", en_US: "Choose Select item", }); 其中,“事件描述”(第三个参数)可以设置为String或者多语言对象。
  • registerWidget 必须在{widget}.editor.js中注册组件,使用方式参考如下: /* @param {string} widgetName * @param {string} description */ Studio.registerWidget("widgetVueTemplate", "The widget template showing how to use the Vue library", params);
  • registerConnector 必须在connector.js中注册connector,使用方式参考如下: /* @param {string} connectorID * @param {string} connectorName * @param {string} description * @param {obj} connector * @param {obj} model */ Studio.registerConnector("BridgeBasicTemplate", "BridgeBasicTemplate", "The bridge template showing how to use a bridge", BridgeBasicTemplate, BridgeBasicTemplateModel); 用户在接入桥接器时,如果预置的桥接器无法满足要求,可自定义桥接器。关于connector/model等参数对象的规则介绍,请参考自定义桥接器。
  • registerAction 一般用于在初始化阶段注册动作,只有通过此API注册后的事件才会在组件的动作列表中展现。使用方式参考如下: /* @param {obj} widgetInst widget实例 * @param {string} actionName 动作名称 * @param {string/{langKey:string}} actionDescription 动作描述 * @param {array} params 事件触发时传入的参数数组对象 * @param {*} receiveActionCbk 动作的回调函数,在回调函数中定义该动作的执行逻辑 */ Studio.registerAction( this, "setSelectedItem", { zh_CN: "设置选中选项", en_US: "Set Selected item" }, [{ name: "itemVal"}], this.setSelectVal.bind(this) ); setSelectVal的实现如下: /** * 响应外界组件组件交互,设置下拉框选中值 * @param {*} event */ setSelectVal(event) { this.readerVm.$set(this.readerVm.selectConf, "selectValue", event.itemVal); }, 配置动作时,可以在AstroCanvas画布交付界面,配置itemVal的值为“${e.xxx}”将事件抛出的“xxx”参数复制到itemVal中。然后select组件内统一从itemVal获取数据。select组件的内部处理API如上面代码。
  • getSafeUrl() 对外部链接进行xss安全过滤 ,获取安全的绝对URL地址,使用方式参考如下: /* * @param {*} url */ SafeUtils.getSafeUrl(url); SafeUtils.getSafeUrl('/test.html') //return:https://appcube.cn-north-4.huaweicloud.com/test.html SafeUtils.getSafeUrl('javascript:alert(123)') //return:'unsafe:' 只有安全的链接才会被访问,其他形式的URL都会响应一个“unsafe:”,无法访问。
  • 数据集成任务支持的数据源 表1中为数据集成所支持的全量数据源类型,具体每种数据源所支持的任务模式和集成模式请参见接入数据源。 连接数据源的用户需要有创建连接数据库会话的权限。 表1 数据集成支持的数据源 数据源类型 支持的版本 API 无版本号 ActiveMQ 5.15.9 ArtemisMQ 2.9.0 DB2 9.7 DIS 无版本号 DWS 1.3.4 DM 无版本号 FTP 无版本号 Gauss100 FusionInsight _LibrA_V100R003C20、FusionInsight_LibrA_V300R001C00 HL7 2.1、2.2、2.3、2.3.1、2.4、2.5、2.6、2.7、2.8、2.8.1 HANA 1.0 IBM MQ 9.1 Kafka 1.1.0、2.3.0 LDAP 无版本号 MongoDB 3.4 MQS 无版本号 MRS Hbase MRS 3.*.* MRS HDFS MRS 3.*.* MRS Hive MRS 3.*.* MRS Kafka MRS 3.*.* MySQL 5.7、8.0 OBS 3 Oracle 11.2g(不推荐)、12.1g(不推荐)、12.2g、19c PostgreSQL 11 RabbitMQ 3.6.10 RocketMQ 4.7.0 Redis 3.0.7、4.0.11 SAP SAP Java Connector 3.0.19 SNMP v1、v2、v3 SQL Server 2014、2019、2022 GaussDB (for MySQL) 2.0.15.6 WebSocket 无版本号 自定义数据源 无版本号
  • 数据API支持的数据源 表2 数据API支持的数据源 数据源类型 支持的版本 Gauss100 FusionInsight_LibrA_V100R003C20、FusionInsight_LibrA_V300R001C00 MySQL 5.6,5.7,8.0 MRS HBase MRS 3.*.* MRS Hive MRS 3.*.* Oracle 11g PostgreSQL 11.0 SQL Server 2012、2014、2016、2017 DWS 1.3.4 HIVE 2.3.2 HANA 1.0 MongoDB 3.4 Redis 2.8.x,3.x.x
  • 概述 ROMA Site是ROMA Connect的边缘形态,与ROMA Connect具有相同的数据集成、服务集成和消息集成能力。ROMA Site可部署于用户IDC和第三方公有云,与云端ROMA Connect反向互联,不破坏企业的安全边界。 ROMA Site实例是一个独立的资源空间,所有的操作都是在实例内进行,不同实例间的资源相互隔离。您可以根据业务需要使用一个或多个实例。 若需要删除实例,会同步删除实例中所创建的所有资源数据,请谨慎操作。建议在删除实例前导出实例的资产数据进行备份。 ROMA Site实例与华为云断连会导致实例状态异常、告警无法上报与部分功能不可用等问题。
  • 前提条件 创建自建站点类型的实例前,需参考准备资源章节完成虚拟机资源准备。 已在准备资源时购买智能边缘平台IEF服务,IEF详情请参考智能边缘平台IEF。 如果用户准备的虚拟机无法通过公网访问IEF时,可以选择通过私网访问。私网访问需要满足以下条件: 已通过专线或VPN连接IEF,连接步骤参见通过专线或VPN链接IEF。 使用私有网络时,还需在边缘节点上将1中获取到的DNS的终端节点IP配置到边缘节点的/etc/resolv.conf配置文件中。
  • 保留期规则 进入保留期后的资源,您不可以正常使用,但存储在该资源中的内容会被系统保留。保留期到期时如您仍未全额付费,相应的资源将被释放或删除,您资源的内容也会被删除。 包年/包月资源:宽限期到期,若您仍未对资源进行续费,则资源进入保留期,保留期内资源不可用。若您在保留期内对资源续费,包年/包月资源在宽限期和保留期内产生的相关费用将在您续费时一并收取(抵扣续费周期时长);若保留期到期您仍未续费,相应的资源将被释放,您资源的内容也会被删除。 按需资源:宽限期到期,若您仍未支付账户欠款,则资源进入保留期,保留期内不计费。保留期到期时,若您仍未支付账户欠款,相应的资源将被删除,您资源的内容也会被删除。
  • 解决方法 手动安装vscode-server。 获取VS Code的commitID 下载相应版本vscode-server压缩包,请根据开发环境cpu架构选择arm版本或x86版本。 替换下面链接中${commitID}为步骤1 获取VS Code的commitID中commitID。 arm版本,下载vscode-server-linux-arm64.tar.gz https://update.code.visualstudio.com/commit:${commitID}/server-linux-arm64/stable x86版本,下载vscode-server-linux-x64.tar.gz https://update.code.visualstudio.com/commit:${commitID}/server-linux-x64/stable 进入远程环境。 打开VS Code中的Terminal。 在VS Code的Terminal中执行如下命令,连接到远端开发环境。 ssh -tt -o StrictHostKeyChecking=no -i ${IdentityFile} ${User}@${HostName} -p ${Port} 参数说明: - IdentityFile:本地密钥路径 - User:用户名,例如:ma-user - HostName:IP地址 - Port:端口号 手动安装vscode-server。 在VS Code的Terminal中执行如下命令,清空残留的vscode-server,注意替换命令中${commitID}为步骤1 获取VS Code的commitID中commitID。 rm -rf /home/ma-user/.vscode-server/bin/${commitID}/* mkdir -p /home/ma-user/.vscode-server/bin/${commitID} 上传vscode-server压缩包到开发环境。执行如下命令: exit scp -i xxx.pem -P 31205 本地vscode-server压缩包路径 ma-user@xxx:/home/ma-user/.vscode-server/bin ssh -tt -o StrictHostKeyChecking=no -i ${IdentityFile} ${User}@${HostName} -p ${Port} 参数说明: - IdentityFile:本地密钥路径 - User:用户名,例如:ma-user - HostName:IP地址 - Port:端口号 以arm版本为例,将vscode-server压缩包解压至$HOME/.vscode-server/bin文件夹,注意替换命令中${commitID}为步骤1 获取VS Code的commitID中commitID。 cd /home/ma-user/.vscode-server/bin tar -zxf vscode-server-linux-arm64.tar.gz mv vscode-server-linux-arm64/* ${commitID} 重新远程连接。
  • 概述 用户使用客户端连接DWS集群时,如果用户仅连接一个CN节点地址,通过该CN节点内网IP或弹性公网IP连接时,只能连接到固定的CN节点上,存在CN单点问题。如果通过内网 域名 或公网域名连接,域名解析服务会对每个客户端随机选择一个内网/公网IP地址,其解析机制并不能保证负载均衡,同样也存在CN单点问题。因此引入了弹性负载均衡服务(Elastic Load Balance,下称ELB)解决集群访问的单点问题。 弹性负载均衡(ELB)是将访问流量根据转发策略分发到后端多台弹性云服务器的流量分发控制服务,可以通过流量分发扩展应用系统对外的服务能力,提高应用程序的容错能力。了解更多,请参见弹性负载均衡。 利用ELB健康检查机制可将集群的CN请求快速转发到正常工作的CN节点上,当有CN故障节点时,也能第一时间切换流量到健康节点上,最大化降低集群访问故障。当前支持同VPC绑定ELB和跨VPC绑定ELB两种类型操作。 该特性仅8.1.1.200及以上集群版本支持。 为保证集群负载均衡和高可用,避免CN单点故障问题,客户生产业务下,要求集群创建后进行ELB绑定。 集群跨VPC绑定ELB时支持绑定与集群VPC不一致的独享型负载均衡。 ELB不支持跨库访问。
  • 约束与限制 绑定ELB时,需创建和GaussDB(DWS)集群相同的区域、VPC以及企业项目的ELB进行绑定。 GaussDB(DWS)的ELB功能仅支持独享型ELB规格,不支持共享型ELB绑定操作。 部分Region因为独享型ELB规格没有上线,所以不支持负载均衡能力。详情可跳转至ELB控制台查看是否支持独享型ELB。 绑定ELB时,需创建TCP网络型且有内网IP的ELB进行绑定。 创建ELB时,ELB规格需要用户按本身业务访问流量评估,建议选取最大规格。GaussDB(DWS)侧仅是绑定关联ELB,并不改变ELB规格。 创建ELB时,仅需创建ELB,无需创建ELB服务的监听器与后端服务器组,GaussDB(DWS)会自动创建所需要的ELB监听器与后端服务器组。 创建ELB时,不能存在与数据库相同端口的监听器,否则会导致ELB绑定失败。 绑定ELB时,GaussDB(DWS)侧默认为ELB服务配置“ROUND_ROBIN”转发策略,并设置10秒的健康检查间隔,50秒超时时间以及3次重试次数。用户如果需要修改此ELB默认参数时,请充分评估影响。 跨VPC绑定ELB时,仅支持独享型负载均衡。 跨VPC绑定ELB时,需检查集群VPC与ELB所属VPC下的子网网段不能重复。 解绑ELB时,GaussDB(DWS)侧会清除ELB中集群相关信息,但并不会删除用户ELB,请注意ELB本身的计费影响,防止不必要的成本支出。 如需要公网IP或者域名访问ELB集群时,请通过ELB服务管理页面进行EIP绑定或者域名操作。 如果集群为IPv4集群,则仅支持绑定IPv4的ELB;如果集群为IPv6双栈集群,则仅支持绑定IPv6双栈的ELB。暂不支持交叉场景的ELB绑定。
  • 背景信息 GaussDB(DWS)支持在变更操作前(扩/缩容、经典规格变更、升级)进行集群巡检,即在对应变更页面单击“立即巡检”按钮后会巡检当前集群的健康状态和集群指标是否满足变更要求,检查通过后可开始变更。如果巡检不通过,可打开巡检详情,查看不通过的巡检项,根据详情说明处理不通过的巡检项。巡检项检查标准详情请参见表1。 该特性仅8.1.1及以上集群版本支持。 如果用户无法处理不通过的巡检项,请联系技术支持人员。
  • 概述 阈值告警相关概念: 告警规则:告警规则由告警规则名称,告警规则描述,规则绑定集群列表,告警策略触发关系,告警策略项构成。一条告警规则可绑定某个指定集群或所有集群,拥有一个或多个告警策略。其中,告警策略之间组合关系由“策略触发关系”选项描述。告警规则的阈值触发和抑制条件由每条告警策略描述。 告警策略:为某个告警指标指定的触发条件,抑制条件,告警级别的组合称为告警策略。 告警指标:数据库集群的某个指标项,一般是一个时间序列数据,例如:节点CPU使用率,查询触发下盘量等。 告警规则分类: 默认规则:GaussDB(DWS)阈值告警模块的最佳实践。 自定义规则:用户可自由选择或组合监控指标形成个性化的告警规则。目前版本仅支持用户自定义schema使用率告警规则。 告警规则操作: 修改:修改告警规则的选项。所有告警规则都可以修改编辑,但默认告警规则只能修改部分选项,而自定义告警规则可以修改全部选项。 启用/停用:启用或停用告警规则。所有的告警规则都可以启用/停用,启用后告警规则会被告警引擎纳入检查列表,可以正常触发。停用后的告警规则将被告警引擎移出检查列表,不会触发该规则检查。 删除:删除告警规则。只有自定义告警规则可以被删除,用户无法删除默认告警规则。
  • 概述 告警管理包含查看告警规则、告警规则配置与告警信息订阅功能。其中,告警规则可以提供过去一周的告警信息统计与告警信息明细,方便用户自行查看租户下的告警。该特性除了以默认值的形式提供一套GaussDB(DWS)告警最佳实践外,还允许用户根据自己的业务特点,个性化修改告警阈值。告警管理通过 消息通知 服务(Simple Message Notification,简称 SMN )发送GaussDB(DWS) 告警通知,用户可订阅告警启用通知。 该特性仅8.1.1.200及以上集群版本支持。 告警管理目前暂不支持按照企业项目划分告警。
  • 检视代码、合并分支 开发人员发起合并请求。 开发人员Chris完成代码开发,确认无误后,即可发起合并请求,将功能分支合并到master中。 进入代码仓库,选择“合并请求”页签,单击“新建”。 源分支选择“Feature-Store”,目标分支选择“master”,单击“下一步”。 参照表3编辑合并请求详情。 表3 合并请求配置 配置项 配置建议 标题 输入“添加门店网络列表”。 合并人 单击,在弹框中勾选“Maggie”,单击“确定”。 审核人 单击,在弹框中勾选“Maggie”,单击“确定”。 单击“新建合并请求”完成合并请求的创建。 项目经理评审并完成代码合入。 本文档中,合并请求的评审人与合并人均是项目经理Maggie。因此Maggie可评审合并请求内容,并在评审通过后完成分支合入。 进入代码仓库后,选择“合并请求”页签,可找到由开发人员Chris创建的合并请求。 单击该请求,查看合并请求详情。 可在页面中留下评审意见。单击审核门禁中“通过”完成审核。 单击“合入”,将分支合入“master”。 如果发起分支合并请求时勾选了“合并后删除源分支”,分支“Feature-Store”将在分支合并完成后被删除。
  • 开始批量迁移 执行如下命令,查看脚本参数。 python migrate_to_repo.py -h usage: migrate_to_repo.py [-h] [-p {SSH,HTTP,ssh,http}] [-m {API,FILE,api,file}] optional arguments: -h, --help show this help message and exit -p {SSH,HTTP,ssh,http}, --protocol {SSH,HTTP,ssh,http} protocol specified for clone or push -m {API,FILE,api,file}, --mode {API,FILE,api,file} import mode # 参数说明 # -p 协议,默认是SSH协议,可选为SSH/ssh/HTTP/http
  • CodeArts Repo最佳实践汇总 表1 常用最佳实践 实践 描述 批量迁移GitLab内网仓库到CodeArts Repo CodeArts Repo现有迁仓能力只支持公网之间迁移,缺少客户内网自建代码托管平台往Repo迁移的快速方案,因此提供批量迁移内网代码托管平台仓库到Repo的脚本。 如何批量将外部仓库导入CodeArts Repo CodeArts Repo现有迁仓能力只支持公网之间迁移,缺少客户内网自建代码托管平台往Repo迁移的快速方案,因此提供批量迁移内网代码托管平台仓库到Repo的脚本。 HE2E DevOps实践之管理代码 本文以“DevOps全流程示例项目”为例,介绍如何在项目中进行代码开发。
  • 在线拨测按需 表2 在线拨测按需增值特性 计费方式 按需 适用场景 测试计划服务提供了在线拨测能力,提供7*24小时现网拨测,支持告警,实时看护及主动拨测式应用检测。 计费项 次数 购买限制 开通在线拨测按需,须完成CodeArts基础版及以上规格套餐或CodeArts TestPlan套餐的购买,购买的套餐到期后,在线拨测按需将无法继续使用。 计费公式 单价*次数。 计费场景 根据在线拨测的调用次数进行计费。计费的起点是您开通在线拨测按需的时间,终点则是到您关闭按需的时间,每天整点结算一次费用。 购买须知 当超出在线拨测按需套餐包的配额产生的用量,将自动转为按需付费。 当用户的账户余额不足以抵扣产生的按需费用,在线拨测功能将无法正常使用。 在线拨测按需套餐包不支持即时变更,支持关闭按需。
  • 在线拨测按需套餐包 表1 在线拨测按需套餐包增值特性 计费方式 包年/包月 适用场景 测试计划服务提供了在线拨测能力,提供7*24小时现网拨测,支持告警,实时看护及主动拨测式应用检测。 计费项 套数 购买限制 购买在线拨测按需套餐包增值特性前,须完成CodeArts基础版及以上规格套餐或CodeArts TestPlan套餐的购买,购买的套餐到期后,在线拨测按需套餐包将无法继续使用。 计费公式 单价*购买数量*购买时长。 计费周期 根据购买时长确定(以GMT+8时间为准)。一个计费周期的起点是您开通或续费在线拨测按需套餐包增值特性的时间(精确到秒),终点则是到期日的23:59:59。 例如,如果您在2023/03/08 15:50:04购买时长为一个月的在线拨测按需套餐包增值特性,那么其计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59。 到期后影响 在线拨测按需套餐包增值特性到期未续费时,在线拨测相关能力会转到按需付费,请参考在线拨测按需。 购买须知 在线拨测按需套餐包需要在开通按需付费的前提下使用,如果未开通按需,在线拨测能力将无法使用。 当超出在线拨测按需套餐包的配额产生的用量,将自动转为按需付费。 套餐包到期后资源不会自动关闭,将会以按需付费的方式继续使用。 套餐包可多次叠加购买(限购9999个),购买后不支持即时变更数量、时长,不能退订,请您确认好订单信息进行购买。
  • Kafka实时入库到GaussDB(DWS) 通过 数据湖探索 服务 DLI Flink作业将Kafka的消费数据实时同步至GaussDB(DWS) 数据仓库 ,实现Kafka实时入库到GaussDB(DWS)的过程。 了解DLI请参见 数据湖 产品介绍 。 了解Kafka请参见分布式消息服务Kafka产品介绍。 图1 Kafka实时入库DWS 具体操作请参见通过DLI Flink作业将Kafka数据实时写入DWS。 父主题: 实时入库
  • 表自动分析 GaussDB(DWS)提供了三种场景下表的自动分析。 当查询中存在“统计信息完全缺失”或“修改量达到analyze阈值”的表,且执行计划不采取FQS(Fast Query Shipping)执行时,则通过GUC参数autoanalyze控制此场景下表统计信息的自动收集。此时,查询语句会等待统计信息收集成功后,生成更优的执行计划,再执行原查询语句。 当autovacuum设置为on时,系统会定时启动autovacuum线程,对“修改量达到analyze阈值”的表在后台自动进行统计信息收集。 表1 表自动分析 触发方式 触发条件 触发频率 控制参数 备注 同步 统计信息完全缺失 查询时 autoanalyze truncate主表时会清空统计信息。 同步 数据修改量达到analyze阈值 查询时 autoanalyze 先触发analyze,后选择最优计划。 异步 数据修改量达到analyze阈值 autovacuum线程轮询检查 autovacuum_mode, autovacuum_naptime 2s等锁超时, 5min执行超时。 autoanalyze只支持默认采样方式,不支持百分比采样方式。 多列统计信息仅支持百分比采样,因此autoanalyze不收集多列统计信息。 查询过程因表的“统计信息完全缺失”和“修改量达到analyze阈值”而自动触发autoanalyze的场景,当前不支持对外表触发autoanalyze,不支持对带有ON COMMIT [DELETE ROWS | DROP]选项的临时表触发autoanalyze。 修改量达到analyze阈值是指:表的修改量超过autovacuum_analyze_threshold + autovacuum_analyze_scale_factor * reltuples,其中reltuples是pg_class中记录的表的估算行数。 基于定时启动的autovacuum线程触发的autoanalyze,仅支持行存表和列存表,不支持外表、HDFS表、OBS外表、临时表、unlogged表和toast表。 查询时触发analyze会对分区表的所有分区加四级锁,直到查询所在事务提交后才会放锁。四级锁不堵塞增删改查,但会堵塞分区的修改操作,比如分区的truncate,可以通过将object_mtime_record_mode设置为disable_partition,实现提前释放分区锁。 autovacuum自动清理功能的生效还依赖于下面两个GUC参数: track_counts参数需要设置为on,开启收集收据库统计数据功能。 autovacuum_max_workers参数需要大于0,该参数表示能同时运行的自动清理线程的最大数量。
共100000条