华为云用户手册

  • 回调示例 直播推流和断流生成事件通知示例如下。通知消息体字段如表1所示。 { "domain":"push.example.com", "app":"live", "stream":"example_stream", "user_args":"auth_info=yz1TG0PVN/5isfyrGrRj10gKPCWqSS2X02t6QsRrocH+mEq0gQ0g8k6KhalS84sQ+kDprFyqI0yajbYiFmUO8e45B7ryaS+MpJBlYkhwnuFLnRiKK/IXG7.33436b625354564f6e4d4d434f55&cdn=hw", "client_ip":"100.111.*.*", "node_ip":"112.11.*.*", "publish_timestamp":"1587954134", "event":"PUBLISH", "auth_timestamp":1587954140, "auth_sign":"ff3b2bxxx5cfd56e76d72bed4c4aa2dxxxca8c2e46467d205a6417d4fc" }
  • 使用限制 单账号跟踪的事件可以通过 云审计 控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的 CTS /system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到 对象存储服务 (OBS)或 云日志 服务(LTS),才可在OBS桶或LTS日志组里面查看历史事件信息。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 管理知识库 创建知识库完成后,可执行如下表2所示的管理知识库相关操作。 表2 管理知识库 操作 说明 查看知识库详情 在知识库列表中单击知识库名称,进入知识库详情页,可查看该知识库数据概况和更新记录。 命中测试 命中测试即测试检索的命中率。 在知识库列表中“操作”列单击“命中测试”。 在“命中测试”页面根据界面提示输入测试文本,设置“相似度阈值”(相似度阈值的取值范围[0, 1],例如配置为0.5,则返回相似度大于等于0.5的结果)、“查询数量”。 单击“测试”。 在页面右侧“测试结果”区域可查看测试效果。相似度越大则表示检索命中率越高。 在页面左侧“测试历史”区域可查看该知识库的测试历史记录,每个知识库测试记录最多保留50条。 修改知识库 不能修改已启用的知识库;可先停用知识库后再修改。 在知识库列表中“操作”列单击“修改”。 在“修改知识库”页面,可修改知识库描述。 删除知识库 不能删除已启用的知识库;可先停用知识库后再删除。 在知识库列表中“操作”列单击“删除”。 在“删除知识库”对话框,单击“确认”。 启用知识库 在知识库列表中,对于“已停用”状态的知识库,可在“操作”列单击“启用”将其重新启用,启用后的知识库才可在创建应用时引用。 停用知识库 在知识库列表中,对于“已启用”状态的知识库,可在“操作”列单击“停用”将其暂停使用。
  • 更多操作 创建数据集完成后,可根据需要执行如表2所示的操作。 表2 更多操作 操作 步骤 查看数据集详情 在“微调数据集”页面选择“我创建的”页签。 在数据集列表中单击数据集名称,在微调数据集详情页面查看数据概况、调度历史等。 修改数据集 在“微调数据集”页面选择“我创建的”页签。 在数据集列表勾选数据集并单击“操作”列的“修改”。 在“修改数据集”页面,仅支持修改数据集描述、修改标签名称。 删除数据集 单个删除数据集: 在“我的数据集”页面选择“我创建的”页签。 在数据集列表勾选单个数据集,然后选择“操作”列的“删除”。 单击“确认”。 批量删除数据集: 在“我的数据集”页面选择“我创建的”页签。 在数据集列表勾选多个数据集,再单击列表上方“批量删除”。 在“批量删除”对话框,单击“确认”。 标注数据集 说明: 只有同时满足用途为“模型训练”、任务领域为“ 自然语言处理 ”、任务子领域为“文本生成”、数据集格式为“对话文本”四个条件的数据集才可进行标注。 在“微调数据集”页面选择“我创建的”页签。 在数据集列表勾选单个数据集,然后选择“操作”列的“标注”。 进入“数据标注”页面,参照标注数据进行数据标注。
  • 解决方案 一站式使用应用平台流程如图1所示。 图1 使用流程 表1 使用流程详解 序号 流程环节 说明 1 准备工作 将应用接入AppStage前需要依次完成申请公测、购买AppStage、关联组织、配置AppStage各中心服务授权、添加组织的部门/成员信息、录入产品/服务/微服务信息和申请权限。 2 应用开发 配置开发团队及服务扩展信息 添加开发中心用户 开发中心的用户数根据购买规格有相应的用户数量限制,组织管理员通过用户的添加或删除来合理管理开发中心的使用人员。 创建团队 在开发中心进行服务开发前,需要组织管理员先创建一个团队,将团队关联需要开发的服务。 服务配置 将团队关联服务后,还需将团队关联的服务关联CodeArts项目,后续的服务开发管理过程中才能正常使用CodeArts服务的代码托管、流水线、编译构建功能。 添加团队成员 在团队多用户协作开发过程中,不同角色成员执行各自权限和责任事项,因此需要在团队中添加协作开发的各角色成员(项目经理、开发人员、测试人员等),实现统一有序的成员信息管理。 创建及规划版本 创建版本 对团队所关联的服务划分版本,包括创建版本的基本配置信息以及选择版本开始和结束时间。 规划交付件 在版本开发启动初期对产品开发过程所需的交付件进行规划,以辅助开发过程规范有序且可追溯。 开发版本 创建代码仓 使用代码托管内置的仓库模板创建代码管理的仓库。 下载代码 基于Git的 代码托管服务 ,支持将仓库文件下载到本地进行文件的操作。 安装插件 开发人员可下载所需的开发工具,如WiseStudio 插件、Nuwa 插件、Wushan 插件后进行安装。 开发代码 开发代码的详细指导请参见《开发指南》。 提交代码到代码仓 开发在本地完成业务代码后,需要提交代码文件至代码仓库。 代码安全检视 进行安全编码TOP问题的信息统计和检查结果录入。 管理交付件 管理版本开发过程不同阶段所需或交付的必要文档,保证版本开发过程阶段性成果沉淀以及过程可追溯。 构建版本 根据需要的场景,如开发测试环境应用部署、生产环境应用部署等,对这些自动化任务进行自定义编排,一次配置后就可以一键自动化触发调度执行。 测试版本 对于版本测试过程发现的缺陷进行记录、跟踪、分析和解决,包括管理版本缺陷、管理测试结论以及管理关键风险等。 编辑总体测试结论、系统预置的测试类型结论,新增和管理自定义测试类型的测试结论,以及新增和管理版本关键风险问题。 发布版本 待版本开发及编译构建完成,且发布准入检查项均通过后,可由开发人员、测试人员或项目经理提交标准发布申请,待项目经理审批通过后,将软件发布到对应的部署平台。 3 应用部署 服务环境配置 使用AppStage运维中心前需要先准备环境并为服务关联区域、账号和企业项目。 申请资源 应用部署需要使用虚拟机、CCE、数据库等相关资源,您可以申请资源,或者在华为云购买资源后,将资源接入AppStage。 更新环境 开发完成的应用软件包,通过流水线发布,可以发布至运维中心的部署服务中,使用部署服务完成应用部署。 4 应用运维 数据接入 虚拟机日志接入 支持通过部署filebeat完成虚拟机日志采集。日志接入后,可以对日志进行检索,查看已接入日志,具体操作请参见日志检索。 容器日志接入 支持将容器日志接入AppStage运维中心。 日志接入后,可以对日志进行检索,查看已接入日志,具体操作请参见日志检索。 主机监控接入 支持定义服务的监控模板,然后通过为主机绑定监控模板,采集主机监控数据。 CES 指标接入 支持将 云监控服务 CES采集的监控指标数据接入至AppStage运维中心,如需将CES生成的告警接入AppStage运维中心,可参考CES告警接入操作。 运维监控 指标开发 对已产生或接入的数据进行指标开发 监控报表开发 对已创建的指标或视图数据进行业务报表开发。配置后可以查看业务报表监控,具体操作请参见查看业务报表。 告警配置 支持对虚拟机监控数据或业务数据配置告警,及时掌握虚拟机状态,容器接入并安装监控插件后会自动生成告警。告警配置后可以查看告警,并及时处理告警问题,具体操作请参见查看告警。
  • 背景信息 应用平台以“应用”为中心,基于云原生技术,打造了覆盖应用开发、托管、运维全生命周期支持的应用平台,面向企业IT应用、移动应用等提供一站式、集成式的云原生应用服务能力,支持开箱即用,全流程规范可视,高效异地协作,是沉淀行业通用能力,结合华为优秀实践,为产业上云及行业SaaS构建的竞争力底座。 开发应用主要使用AppStage的开发中心,其深度集成CodeArts的功能,购买AppStage后需开通CodeArts后才能使用开发中心,请在AppStage购买页面根据页面提示,前往开通CodeArts地址进行开通。
  • 管理关键风险 在“测试评估”页面选择“关键风险”页签,然后单击“新增”。 在“新增关键风险”页面,如图6所示,参数说明请参见表6。 图6 新增关键风险 表6 关键风险参数说明 参数名 参数说明 风险描述 风险问题的描述。 级别 区分三个级别:低、中、高 影响分析 风险问题的相关影响分析。 规避措施和计划 规避该风险问题的相关措施和计划。 单击“确定”。新增的关键风险显示在风险列表中。 可选:(可选)在风险列表“操作”列单击“编辑”,在“编辑关键风险”页面可编辑风险问题的相关信息,参数说明可参见表6。 可选:(可选)在风险列表“操作”列单击“删除”,在“删除风险”对话框确认删除的风险问题并单击“确定”,即可删除相应的风险问题。
  • 证书管理 API 说明 上传设备CA证书 应用服务器可调用此接口在 物联网平台 上传设备的CA证书。 获取设备CA证书列表 应用服务器可调用此接口在物联网平台获取设备的CA证书列表。 删除设备CA证书 应用服务器可调用此接口在物联网平台删除设备的CA证书。 查询单个设备CA证书 应用服务器可调用此接口在物联网平台查询设备的CA证书。 更新单个设备CA证书 应用服务器可调用此接口在物联网平台更新设备的CA证书。 生成CA证书验证码/验证设备CA证书 应用服务器可调用此接口在物联网平台生成CA证书验证码或验证设备的CA证书。
  • 注册组管理 API 说明 查询注册组列表 应用服务器可调用此接口查询物联网平台中的注册组信息列表。 创建注册组 应用服务器可调用此接口在物联网平台创建一个注册组。 删除注册组 应用服务器可调用此接口在物联网平台上根据注册组名称删除指定注册组。 查询注册组详情 应用服务器可调用此接口查询物联网平台中注册组详情。 删除注册组 应用服务器可调用此接口在物联网平台上根据注册组ID删除指定注册组。 修改注册组 应用服务器可调用此接口修改物联网平台中指定注册组的基本信息。 查询注册组下的设备 应用服务器可调用此接口查询物联网平台中注册组设备信息。
  • 设备管理 API 说明 注册设备 应用服务器可调用此接口在物联网平台注册一个设备,仅在注册后设备才可以接入物联网平台。 查询设备列表 应用服务器可调用此接口查询物联网平台中的设备信息列表。 查询设备 应用服务器可调用此接口查询物联网平台中指定设备的详细信息。 修改设备 应用服务器可调用此接口修改物联网平台中指定设备的基本信息。 删除设备 应用服务器可调用此接口在物联网平台上删除指定设备。若设备下连接了非直连设备,则必须把设备下的非直连设备都删除后,才能删除该设备。 操作设备 应用服务器可调用此接口对设备执行操作。 发放设备 应用服务器可调用此接口对设备执行发放操作。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 access_point_id String 接入点id。 最小长度:1 最大长度:256 access_point_name String 接入点名称。 最小长度:1 最大长度:256 region_id String 华为云区域ID。节选自https://developer.huaweicloud.com/endpoint。 最小长度:1 最大长度:128 region_name String 华为云区 域名 称。节选自https://developer.huaweicloud.com/endpoint。 最小长度:1 最大长度:128 edition String 实例版本。Basic:基础版;Enterprise:企业版;Standard:基础版。 最小长度:1 最大长度:256 access_infos Array of AccessInfo objects 专享实例接入信息 数组长度:0 - 10 表5 AccessInfo 参数 参数类型 描述 protocol String 接入协议 type String 接入类型,目前支持应用接入和设备接入 port Integer 设备/应用接入端口 最小值:0 最大值:65535 public_address Array of strings 实例的公网接入地址(公网接入地址唯一) 最小长度:0 最大长度:65535 数组长度:0 - 10 domain_name String 接入域名(接入域名唯一)
  • 响应示例 状态码: 200 OK { "access_point_id" : "DMP-CNNorth-1-1", "access_point_name" : "设备管理-北京一-1", "region_id" : "cn-north-1", "region_name" : "华北-北京一", "edition" : "Standard", "access_infos" : [ { "protocol" : "HTTPS", "type" : "Application", "port" : 8743, "public_address" : [ "100.0.0.1" ], "domain_name" : "iotda-app.cn-north-1.myhuaweicloud.com" }, { "protocol" : "MQTT", "type" : "Device", "port" : 1883, "public_address" : [ "100.0.0.1" ], "domain_name" : "basic-mqtt.cn-north-1.myhuaweicloud.com" }, { "protocol" : "MQ TTS ", "type" : "Device", "port" : 8883, "public_address" : [ "100.0.0.1" ], "domain_name" : "basic-mqtts.cn-north-1.myhuaweicloud.com" } ] }
  • URI GET /v5/iotps/{project_id}/access-points/{access_point_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。 最小长度:1 最大长度:32 access_point_id 是 String 接入点id,用于区分不同的区域。 最小长度:1 最大长度:64 表2 Query参数 参数 是否必选 参数类型 描述 region_id 是 String 区域ID,用于区分不同的区域。 最小长度:1 最大长度:64
  • 相关参数说明 对于和CPU相关的参数(即参数值与CPU变动有关,内存变动时不会影响取值):threadpool_size、slave_parallel_workers,参考如下表格规则重置参数值: 表1 CPU变更场景下重置参数值 场景 参数值无修改 参数值有修改 升配(CPU升高) 重置为新规格的默认值 在修改值与新规格默认值之间优先取较大的值,即Max(default,custom) 降配(CPU降低) 重置为新规格的默认值 在修改值与新规格默认值之间优先取较小的值,即Min(default,custom) 对于和内存相关的参数(即参数值与内存变动有关,CPU变动时不会影响取值):innodb_buffer_pool_size、innodb_log_buffer_size、innodb_log_files_in_group、max_connections、innodb_page_cleaners、innodb_buffer_pool_instances和back_log,参考如下表格规则重置参数值: 表2 内存变更场景下重置参数值 场景 参数值无修改 参数值有修改 升配(内存升高) 重置为新规格的默认值 在修改值与新规格默认值之间优先取较大的值,即Max(default,custom) 降配(内存降低) 重置为新规格的默认值 在修改值与新规格默认值之间优先取较小的值,即Min(default,custom) 以下参数没有修改时,重置为新规格默认值,有修改时保留修改值:innodb_io_capacity、innodb_io_capacity_max。
  • 约束限制 账户余额大于等于0元,才可升级至RDS。 当FlexusRDS实例升级为云数据库RDS实例时,该实例不可被删除,并且不能对该实例做如下操作:重启数据库、修改参数组、创建备份等。 升级过程中若存在大事务,可能导致升级失败。 升级所需的时间需要5~15分钟(非业务高峰期),若超过升级时长,请及时联系华为云客服。 升级过程中会重启实例,业务会中断,中断时间受业务、数据量等因素影响,请选择在业务低峰期进行升级。
  • 注意事项 当有对应的小版本更新时(定期同步开源社区问题、漏洞修复),请及时升级小版本。 升级数据库内核小版本会重启实例,服务可能会出现闪断,请您尽量在业务低峰期执行该操作,或确保您的应用有自动重连机制。 升级内核小版本期间,除了主备切换时的网络闪断外,由于主备之间默认是半同步复制,升级过程中会有两次单条SQL持续最长十秒的更新及写入等待,用户可通过修改主备间的复制模式为异步来规避此场景。 如果主备实例在同一个AZ,升级内核小版本会触发一次主备倒换;如果主备实例在不同AZ,则会触发两次主备倒换。 升级内核小版本后,实例会升级到新的内核小版本,无法降级。如果升级失败,将会自动回退到原版本。 升级内核小版本一般是分钟级完成。 小版本升级过程中禁止event的DDL操作,如create event、drop event和alter event。 如果小版本升级时,界面提示主节点存在DDL操作,可通过如下方式处理: 将实例STATUS为SLAVESIDE_DISABLED状态的event,更改为ENABLED或者DISABLED状态后再进行升级。 删除SLAVESIDE_DISABLED状态的event后再进行升级。
  • 查看日志明细 在实例列表,选择目标实例,单击实例名称。 选择“日志”,在“操作日志”页签下,查看操作日志。 您可单击页面右上角的级别筛选框查看不同级别的日志记录。 Flexus云数据库RDS实例支持查看以下操作的日志记录: resetPassword instanceRestore instanceRestart updateParameterGroup backupsDownLoad 您还可单击右上角的选择时间区域,查看不同时间段内的操作日志。
  • enable_upgrade_merge_lock_mode 参数说明:当该参数设置为on时,通过提升deltamerge内部实现的锁级别,避免和update/delete并发操作时的报错。 参数类型:USERSET 取值范围: 布尔型 on,提升deltamerge内部实现的锁级别,并发执行deltamerge和update/delete操作时,一个操作先执行,另一个操作被阻塞,在前一个操作完成后,后一个操作再执行。 off,在对HDFS表的delta table的同一行并发执行deltamerge和update/delete操作时,后一个对同一行数据更新的操作会报错退出。 默认值:off
  • view_independent 参数说明:用于设置是否开启视图与表、函数、同义词的解耦功能。基表恢复后目前已支持自动关联重建。 参数类型:SIGHUP 取值范围:布尔型 on表示启用视图解耦功能,存在视图依赖的表、函数、同义词及其他视图可以单独删除(临时表及临时视图除外),关联视图保留但不可用。 off表示关闭视图解耦功能,存在视图依赖的表、函数、同义词及其他视图不可以单独删除,仅可使用cascade级联删除。 默认值: off
  • job_queue_processes 参数说明:表示系统可以并发执行的job数目。 参数类型:POSTMASTER 取值范围:0~1000 功能: 当job_queue_processes设置为0值,表示不启用定时任务功能,任何job都不会被执行(因为开启定时任务的功能会对系统的性能有影响,有些局点可能不需要定时任务的功能,可以通过设置为0不启用定时任务功能)。 当job_queue_processes为大于0时,表示启用定时任务功能且系统能够并发处理的最大任务数。 启用定时任务功能后,job_scheduler线程会在定时时间间隔轮询pg_jobs系统表,系统设置定时任务检查周期默认为1s。 由于并行运行的任务数太多会消耗更多的系统资源,因此需要设置系统并发处理的任务数,当前并发的任务数达到job_queue_processes时,且此时又有任务到期,那么这些任务本次得不到执行而延期到下一轮询周期。因此,建议用户需要根据每个任务的执行时长合理的设置任务的时间间隔(即submit接口中的interval参数),来避免由于任务执行时间太长而导致下个轮询周期无法正常执行。 注:如果同一时间内并行的job数很多,过小的参数值会导致job等待。而过大的参数值则消耗更多的系统资源,建议设置此参数为100,用户可以根据系统资源情况合理调整。 默认值:10
  • default_temptable_type 参数说明:用于控制CREATE TABLE创建临时表时在TEMP或TEMPORARY前未指定表类型所创建临时表的类型。该参数仅9.1.0及以上集群版本支持。 参数类型:USERSET 取值范围:枚举类型 local:表示在未指定类型的情况下创建local型临时表。 volatile:表示在未指定类型的情况下创建volatile型临时表。 默认值:local
  • default_distribution_mode 参数说明:用于设置表的默认分布方式。该参数仅8.1.2及以上版本支持。 参数类型:USERSET 取值范围:枚举类型 roundrobin,创建表不指定分布方式时,按如下规则选取默认分布方式: 若建表时包含主键/唯一约束,则选取HASH分布,分布列为主键/唯一约束对应的列。 若建表时不包含主键/唯一约束,则选取ROUNDROBIN分布。 hash,创建表不指定分布方式时,按如下规则选取默认分布方式: 若建表时包含主键/唯一约束,则选取HASH分布,分布列为主键/唯一约束对应的列。 若建表时不包含主键/唯一约束,但存在数据类型支持作分布列的列,则选取HASH分布,分布列为第一个数据类型支持作分布列的列。 若建表时不包含主键/唯一约束,也不存在数据类型支持作分布列的列,选取ROUNDROBIN分布。 默认值:roundrobin 新建8.1.2集群版本默认值为roundrobin,升级到8.1.2集群版本场景该参数的默认值为hash。
  • enable_hadoop_env 参数说明:设置使用Hadoop特性时,是否允许在数据库中创建本地行存表和列存表。 GaussDB (DWS)集群中,集群安装好后,该参数默认设为off。以支持本地行列存储和跨集群访问Hadoop特性。不推荐用户调整enable_hadoop_env的值。 参数类型:USERSET 取值范围: 布尔型 on/true,表示使用Hadoop特性时,不允许在数据库中创建本地行存表和列存表。 off/false,表示使用Hadoop特性时,可以在数据库中创建本地行存表和列存表。 默认值:off
  • 示例:从MySQL向GaussDB(DWS)进行数据迁移 下面示例演示如何通过CopyManager从mysql向GaussDB(DWS)进行数据迁移的过程。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 //以下用例以gsjdbc4.jar为例,如果要使用gsjdbc200.jar,请替换驱动类名(将代码中的“org.postgresql”替换成“com.huawei.gauss200.jdbc”)与连接URL串前缀(将“jdbc:postgresql”替换为“jdbc:gaussdb”)。 import java.io.StringReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.postgresql.copy.CopyManager; import org.postgresql.core.BaseConnection; public class Migration{ public static void main(String[] args) { String url = new String("jdbc:postgresql://10.180.155.74:8000/gaussdb"); //数据库URL String user = new String("jack"); //DWS用户名 String pass = new String("********"); //DWS密码 String tablename = new String("migration_table"); //定义表信息 String delimiter = new String("|"); //定义分隔符 String encoding = new String("UTF8"); //定义字符集 String driver = "org.postgresql.Driver"; StringBuffer buffer = new StringBuffer(); //定义存放格式 化数据的缓存 try { //获取源数据库查询结果集 ResultSet rs = getDataSet(); //遍历结果集,逐行获取记录 //将每条记录中各字段值,按指定分隔符分割,由换行符结束,拼成一个字符串 //把拼成的字符串,添加到缓存buffer while (rs.next()) { buffer.append(rs.getString(1) + delimiter + rs.getString(2) + delimiter + rs.getString(3) + delimiter + rs.getString(4) + "\n"); } rs.close(); try { //建立目标数据库连接 Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, pass); BaseConnection baseConn = (BaseConnection) conn; baseConn.setAutoCommit(false); //初始化表信息 String sql = "Copy " + tablename + " from STDIN DELIMITER " + "'" + delimiter + "'" + " ENCODING " + "'" + encoding + "'"; //提交缓存buffer中的数据 CopyManager cp = new CopyManager(baseConn); StringReader reader = new StringReader(buffer.toString()); cp.copyIn(sql, reader); baseConn.commit(); reader.close(); baseConn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(System.out); } catch (SQLException e) { e.printStackTrace(System.out); } } catch (Exception e) { e.printStackTrace(); } } //******************************** // 从源数据库返回查询结果集 //********************************* private static ResultSet getDataSet() { ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:mysql://10.119.179.227:3306/jack?useSSL=false&allowPublicKeyRetrieval=true", "jack", "********"); Statement stmt = conn.createStatement(); rs = stmt.executeQuery("select * from migration_table"); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return rs; } } 父主题: 基于JDBC开发
  • PG_STAT_DATABASE_CONFLICTS PG_STAT_DATABASE_CONFLICTS视图显示数据库冲突状态的统计信息。 表1 PG_STAT_DATABASE_CONFLICTS字段 名称 类型 描述 datid oid 数据库OID。 datname name 数据库名。 confl_tablespace bigint 冲突的表空间的数目。 confl_lock bigint 冲突的锁数目。 confl_snapshot bigint 冲突的快照数目。 confl_bufferpin bigint 冲突的缓冲区数目。 confl_deadlock bigint 冲突的死锁数目。 父主题: 系统视图
  • MPP_TABLES MPP_TABLES视图显示PGXC_CLASS中的表信息。 表1 MPP_TABLES字段 名称 类型 描述 schemaname name 包含表的模式名。 tablename name 表名。 tableowner name 表的所有者。 tablespace name 表所在的表空间。 pgroup name 节点群的名称。 nodeoids oidvector_extend 表分布的节点OID列表。 父主题: 系统视图
  • 索引的选择原则 索引建立在数据库表中的某些列上。因此,在创建索引时,应该仔细考虑在哪些列上创建索引。 在经常需要搜索查询的列上创建索引,可以加快搜索的速度。 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构。 在经常使用连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度。 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。 在经常使用WHERE子句的列上创建索引,加快条件的判断速度。 为经常出现在关键字ORDER BY、GROUP BY、DISTINCT后面的字段建立索引。 索引创建成功后,系统会自动判断何时引用索引。当系统认为使用索引比顺序扫描更快时,就会使用索引。 索引创建成功后,必须和表保持同步以保证能够准确地找到新数据,这样就增加了数据操作的负荷。因此请定期删除无用的索引。
  • 索引类型 btree:B-tree索引使用一种类似于B+树的结构来存储数据的键值,通过这种结构能够快速的查找索引。btree适合支持比较查询以及查询范围。 gin:GIN索引是倒排索引,可以处理包含多个键的值(比如数组)。 gist:Gist索引适用于几何和地理等多维数据类型和集合数据类型。 Psort:Psort索引。针对列存表进行局部排序索引。 行存表支持的索引类型:btree(行存表缺省值)、gin、gist。列存表支持的索引类型:Psort(列存表缺省值)、btree、gin。 对于点查询场景,推荐建立btree索引。
  • 常用方法 表1 CopyManager常用方法 返回值 方法 描述 throws CopyIn copyIn(String sql) - SQLException long copyIn(String sql, InputStream from) 使用COPY FROM STDIN从InputStream中快速向数据库中的表加载数据。 SQLException,IOException long copyIn(String sql, InputStream from, int bufferSize) 使用COPY FROM STDIN从InputStream中快速向数据库中的表加载数据。 SQLException,IOException long copyIn(String sql, Reader from) 使用COPY FROM STDIN从Reader中快速向数据库中的表加载数据。 SQLException,IOException long copyIn(String sql, Reader from, int bufferSize) 使用COPY FROM STDIN从Reader中快速向数据库中的表加载数据。 SQLException,IOException CopyOut copyOut(String sql) - SQLException long copyOut(String sql, OutputStream to) 将一个COPY TO STDOUT的结果集从数据库发送到OutputStream类中。 SQLException,IOException long copyOut(String sql, Writer to) 将一个COPY TO STDOUT的结果集从数据库发送到Writer类中。 SQLException,IOException
  • 定时任务管理 创建测试表: 1 CREATE TABLE test(id int, time date); 当结果显示为如下信息,则表示创建成功。 1 CREATE TABLE 创建自定义存储过程: 1 2 3 4 5 6 7 8 9 CREATE OR REPLACE PROCEDURE PRC_JOB_1() AS N_NUM integer :=1; BEGIN FOR I IN 1..1000 LOOP INSERT INTO test VALUES(I,SYSDATE); END LOOP; END; / 当结果显示为如下信息,则表示创建成功。 1 CREATE PROCEDURE 创建任务: 新创建的任务(未指定job_id)表示每隔1分钟执行一次存储过程PRC_JOB_1。 1 2 3 4 5 call dbms_job.submit('call public.prc_job_1(); ', sysdate, 'interval ''1 minute''', :a); job ----- 1 (1 row) 指定job_id创建任务。 1 2 3 4 5 call dbms_job.isubmit(2,'call public.prc_job_1(); ', sysdate, 'interval ''1 minute'''); isubmit --------- (1 row) 通过USER_JOBS视图查看当前用户已创建的任务信息。 需要有系统管理员权限才可以访问此系统视图,字段说明详见表1。 1 2 3 4 5 6 7 8 9 10 select job,dbname,start_date,last_date,this_date,next_date,broken,status,interval,failures,what from user_jobs; job | dbname | start_date | last_date | this_date | next_date | broken | status | interval | failures | what -----+----------+----------------------------+----------------------------+----------------------------+---------------------+--------+--------+---------------------+----------+---------------- ----------- 1 | db_demo | 2022-03-25 07:58:01.829436 | 2022-03-25 07:58:03.174817 | 2022-03-25 07:58:01.829436 | 2022-03-25 07:59:01 | n | s | interval '1 minute' | 0 | call public.prc _job_1(); 2 | db_demo | 2022-03-25 07:58:15.893383 | 2022-03-25 07:58:16.608959 | 2022-03-25 07:58:15.893383 | 2022-03-25 07:59:15 | n | s | interval '1 minute' | 0 | call public.prc _job_1(); (2 rows) 停止任务。 1 2 3 4 5 call dbms_job.broken(1,true); broken -------- (1 row) 启动任务。 1 2 3 4 5 call dbms_job.broken(1,false); broken -------- (1 row) 修改任务属性。 修改JOB的Next_date参数信息。例如,修改Job1的Next_date为1小时以后开始执行。 1 2 3 4 5 call dbms_job.next_date(1, sysdate+1.0/24); next_date ----------- (1 row) 修改JOB的Interval参数信息。例如,修改Job1的Interval为每隔1小时执行一次。 1 2 3 4 5 call dbms_job.interval(1,'sysdate + 1.0/24'); interval ---------- (1 row) 修改JOB的What参数信息。例如,修改Job1的What为执行SQL语句“insert into public.test values(333, sysdate+5);”。 1 2 3 4 5 call dbms_job.what(1,'insert into public.test values(333, sysdate+5);'); what ------ (1 row) 同时修改JOB的Next_date、Interval、What等多个参数信息。 1 2 3 4 5 call dbms_job.change(1, 'call public.prc_job_1();', sysdate, 'interval ''1 minute'''); change -------- (1 row) 删除JOB。 1 2 3 4 5 call dbms_job.remove(1); remove -------- (1 row) JOB的权限控制。 当创建一个JOB时,该JOB会和创建该JOB的数据库和用户绑定(即:pg_job系统视图新增的JOB记录中的dbname和log_user)。 如果当前用户是DBA用户、系统管理员、该JOB的创建用户(即:pg_job中的log_user),那么该用户有权限通过高级包接口remove、change、next_data、what、interval删除或修改JOB的参数信息。否则,会提示当前用户没有权限操作该JOB。 如果当前数据库是该JOB创建所属的数据库(即:为pg_job系统视图中的dbname),那么连接到当前数据库上可以通过高级包接口remove、change、next_data、what、interval删除或修改JOB的参数信息。 当删除JOB所属的数据库(即:为pg_job系统视图中的dbname)时,系统会关联删除该数据库从属的JOB记录。 当删除JOB所属的用户(即:为pg_job系统视图中的log_user)时,系统会关联删除该用户从属的JOB记录。
共100000条