华为云用户手册

  • 设置多账号日志汇聚任务 使用管理账号或者委托管理员账号登录管理控制台,选择“ 云日志 服务 LTS”进入日志管理页面。 在日志应用下方,单击“多账号日志汇聚中心”。 在多账号日志汇聚配置页面,开启日志接收状态,左侧选择某个成员账号,右侧勾选对应的源日志组/日志流,支持自定义目标日志组/日志流的名称。 若不需要使用日志汇聚配置功能时,可以关闭日志接收状态,则所有汇聚配置都会失效,源日志流停止汇聚到目标日志流上。 支持创建日志流的数量不超过总数量。更多信息请参考基础资源限制。 设置完成后,单击“确定”,该账号汇聚配置创建中,预计5分钟左右创建完成,请稍后刷新查看配置。 目标日志流初始化时默认采用源账号日志流的索引配置和结构化配置,配置成功后,若源账号日志流修改索引/结构化配置则不会同步到目标日志流。 删除源账号的日志组/日志流不会对目标账号的日志组/日志流造成影响。 取消勾选日志组/日志流并成功下发配置后,该日志组/日志流将不再继续汇聚。
  • 方案介绍 组织(以下简称Organizations)云服务为企业用户提供多账号关系的管理能力。Organizations支持用户将多个华为云账号整合到创建的组织中,并可以集中管理组织下的所有账号。用户可以在组织中设置访问策略,帮助用户更好地满足业务的安全性和合规性需求。 云日志服务LTS 联合Organizations推出多账号日志汇聚中心,您可以在Organizations使用管理账号指定某个成员账号成为LTS可信服务的委托管理员账号,然后可以在LTS将组织下某个成员账号的日志流复制到管理账号或者委托管理员账号中,实现多账号日志集中汇聚的目的。 某个成员账号的源日志组/日志流实际上是被复制一份到管理账号或者委托管理员账号对应的目标日志组/日志流中,因此两个账号间的日志组/日志流之间不会互相干扰,可以在各自账号下独立配置转储、消费、加工等任务。
  • 背景信息 集团公司经常采用多账号解决方案(LandingZone),不同的业务部门使用不同的账号,实现权限、资源等的隔离,提高账号的安全性。 集团公司的安全合规部门有统一收集日志的诉求,期望将不同账号下各个业务部门的关键日志集中存储和分析,汇聚到一个日志账号中,用于应对不同国家和地区的安全合规审计要求。 集团公司的运营部门也可能出于运营分析的诉求,期望将不同账号下各个业务部门的关键日志集中存储和分析,汇聚到一个日志账号中,方便后续进行统一的大数据处理和可视化展示。
  • 步骤1:新增项目 登录KooMap服务控制台,进入控制台页面。 在左侧导航栏,选择“AR地图”下的“项目管理”菜单,进入“项目管理”页面。 在“项目管理”页面,单击“新增项目”。 在“新增项目”弹窗中,参考表1填写项目相关信息。 表1 新增项目 配置项 配置说明 项目名称 必填项。 输入项目名称。 名称不可重复。 行政区域 必选项。 选择项目覆盖的行政区域。 项目描述 选填项。 根据界面提示输入有关项目描述信息。 单击“确定”,完成新增项目的创建。
  • 步骤2:上传数据 在“项目管理”页面,单击项目名称(蓝色字体),进入该项目详情页。 单击“上传数据”,根据表2填写待上传数据的相关信息。 表2 上传数据配置参数 配置项 配置说明 数据名称 必填项。 输入数据名称。 名称不可重复。 数据类型 必选项。 目前仅支持“Insta360”。 上传数据 单击“上传文件夹”上传本地的全景视频。 如果上传数据选择错误,可删除重新上传。 数据描述 选填项。 输入待上传数据的相关描述。 单击“确定”,开始上传数据。 上传数据完成后,显示“完成”对话框。
  • 计费示例 假设您在2023/03/10 8:45:30部署专业版实例(假设实例版本单价为12.88元/小时/实例,公网带宽单价为0.063元/小时/实例),然后在9:30:00将其全部删除,则计费周期分为如下两个时间段: 8:00:00~9:00:00时间段,在8:45:30~9:00:00间产生费用,该计费周期内的计费时长为870秒。则参考计费项中的计费公式,该计费时间段内的费用为:870÷3600x12.88x1+870÷3600x0.063x1=3.13(元)。 9:00:00~10:00:00时间段,在9:00:00~9:30:00间产生费用,该计费周期内的计费时长为1800秒。则参考计费项中的计费公式,该计费时间段的费用为:1800÷3600x12.88x1+1800÷3600x0.063x1=6.47(元)。
  • 计费周期 按需计费时,实例按秒计费,每一个小时整点结算一次费用(以GMT+08:00时间为准),结算完毕后进入新的计费周期。计费的起点以部署在API网关上实例启动运行的时间点为准,终点以实例删除的时间为准。 例如,您在2023/03/10 8:45:30部署了专业版实例,然后在9:30:00将其全部删除,则计费周期分为如下两个时间段: 8:00:00~9:00:00时间段,在8:45:30~9:00:00间产生费用,该计费周期内的计费时长为870秒。 9:00:00~10:00:00时间段,在9:00:00~9:30:00间产生费用,该计费周期内的计费时长为1800秒。
  • 升级实例版本后对计费的影响 如果您当前使用的实例版本不能满足需要,API网关支持升级产品版本,例如从“基础版”升级到“专业版”或者铂金版,并且对现有业务没有影响。 如果您在一个小时内升级了实例版本,将会产生多条计费信息。每条计费信息的开始时间和结束时间对应不同配置在该小时内的生效时间。 例如2023/03/10 9:00:00,您部署运行了专业版实例(假设实例版本单价为12.88元/小时/实例,公网带宽单价为0.063元/小时/实例)。并在9:30:00升级实例版本到企业版(假设实例版本单价为19.36元/小时/实例,公网带宽单价为0.063元/小时/实例),那么在9:00:00 ~ 10:00:00间会产生两条计费信息: 第一条对应9:00:00 ~ 9:30:00,按照专业版计费。则参考计费项中的计费公式,该计费时间段内的费用为:1800÷3600x12.88x1+1800÷3600x0.063x1=6.47(元)。 第二条对应9:30:00 ~ 10:00:00,按照企业版计费。则参考计费项中的计费公式,该计费时间段内的费用为:1800÷3600x19.36x1+1800÷3600x0.063x1=9.71(元)。
  • 适用计费项 表1 按需计费适用计费项 计费项 说明 版本(实例规格) API网关提供的实例版本有:基础版、专业版、企业版、铂金版等,您可以根据实际业务需要按需使用。实例版本说明,请参考产品规格。如果您当前使用的实例版本不能满足需要,API网关支持升级产品版本,例如从“基础版”升级到“专业版”或者铂金版,并且对现有业务没有影响。 实例版本单价,请参考价格详情中的按需计费价格。 公网带宽 使用的公网入口和公网出口带宽大小。 购买时长 使用实例或公网带宽的时间长度,按小时计费,精确到秒。 购买个数 实例的个数。 假设您计划使用1个专业版实例,开启公网出口,公网带宽大小为5Mbit/s,使用时长1小时,在价格计算器页面底部,您将看到所需的配置费用。 图1 按需计费配置费用示例 配置费用包括版本、公网带宽、实例数以及使用时长。
  • 共享版API网关 共享版API网关按调用量费用+公网流量费用计费,调用量指API调用次数,流量指API调用的下行网络流量。计费模式详情请参考表3。 共享版APIG已下线,当前仅存量用户可以使用。关于计费模式详情请参考价格详情,下文不再具体描述。 表3 共享版API网关计费模式 计费模式 按需计费 付费方式 后付费 按照实际使用量计费。 计费周期 按天结算。 账单出账时间通常在当前计费周期结束后一小时内,最长不超过三个小时。 适用计费项 使用量(包含API调用量和公网流量) 如果后端服务与API网关不在同一区域,或后端服务不在华为云,将会额外收取API网关到后端服务的流量费用。 适用场景 适用于API需求较小的场景。
  • 操作步骤 参考获取docker容器引擎的长期有效登录指令中的步骤1设置编程访问权限。 参考获取docker容器引擎的长期有效登录指令中的步骤2至步骤4获取资源空间名、镜像仓库地址、AK以及登录密钥信息。 使用如下的格式拼接长期拉取和推送镜像的指令。 1. 镜像拉取指令拼接 ctr image pull --user [资源空间名]@[AK]:[登录密钥] [镜像仓库地址] 其中,资源空间名和镜像仓库地址在2中获取,AK在3中获取,登录密钥为4的执行结果。 2. 镜像推送指令拼接 ctr image push --user [资源空间名]@[AK]:[登录密钥] [镜像仓库地址] 其中,资源空间名和镜像仓库地址在2中获取,AK在3中获取,登录密钥为4的执行结果。 登录密钥字符串是经过加密的,无法将登录密钥字符串逆向解密成SK。 获取的指令可在其他机器上使用并进行镜像上传下载。
  • 样式配置 内间距:设置容器内组件与容器四边的间距,可分别配置上、下、左、右或四周。默认值为20px,范围为0~100px。 外间距:设置容器外与其他容器四边的间距,可分别配置上、下、左、右或四周。默认值为0px,范围为0~100px。 边框: 位置:设置边框的位置,支持配置上、下、左、右和四周。 宽度:设置边框的宽度。默认值为0px,范围为0~50px。 样式:设置边框样式,根据需求选择“无”、“圆点”、“虚线”和“实线”。 颜色:设置边框显示的颜色。 圆角:给元素添加圆角效果,设置圆角的大小和位置。 默认值为0px,范围为0~500px。 背景:设置组件样式的背景颜色。 阴影: X:X偏移,阴影相对于其源元素在水平方向(X轴)的偏移距离,取值范围[-100, 100]。 Y:Y偏移,阴影在垂直方向(Y轴)的偏移距离,取值范围[-100, 100]。 模糊:阴影的模糊程度。值为0时表示阴影边缘锐利,没有模糊。值越大,阴影的边缘就越模糊,从而产生更柔和的阴影效果。取值范围[0, 100]。 扩散:扩散半径,它允许阴影在原始尺寸基础上向外扩散。正值会使阴影扩大,负值则会减小阴影的尺寸。取值范围[-100, 100]。 颜色:设置阴影的颜色。
  • 样式配置 内间距:设置容器内组件与容器四边的间距,可分别配置上、下、左、右或四周。默认值为20px,范围为0~100px。 外间距:设置容器外与其他容器四边的间距,可分别配置上、下、左、右或四周。默认值为0px,范围为0~100px。 边框: 位置:设置边框的位置,支持配置上、下、左、右和四周。 宽度:设置边框的宽度。默认值为0px,范围为0~50px。 样式:设置边框样式,根据需求选择“无”、“圆点”、“虚线”和“实线”。 颜色:设置边框显示的颜色。 圆角:给元素添加圆角效果,设置圆角的大小和位置。 默认值为0px,范围为0~500px。 背景:设置组件样式的背景颜色。 阴影: X:X偏移,阴影相对于其源元素在水平方向(X轴)的偏移距离,取值范围[-100, 100]。 Y:Y偏移,阴影在垂直方向(Y轴)的偏移距离,取值范围[-100, 100]。 模糊:阴影的模糊程度。值为0时表示阴影边缘锐利,没有模糊。值越大,阴影的边缘就越模糊,从而产生更柔和的阴影效果。取值范围[0, 100]。 扩散:扩散半径,它允许阴影在原始尺寸基础上向外扩散。正值会使阴影扩大,负值则会减小阴影的尺寸。取值范围[-100, 100]。 颜色:设置阴影的颜色。
  • 数据配置 数据配置完成后,需单击“更新数据”,进行数据刷新。刷新数据间隔时间至少为5秒,请勿频繁单击。 数据源:下拉框中选项数据分析的数据来源。可选择应用中已创建的表单数据进行展示,创建表单详情请参见如何创建一个表单。 分析维度:选择表单中数据分析的维度,例如商品类型。可自定义排序方式及重命名。 图9 设置漏斗图分析维度 数据汇总指标:指每个类别的数据值,通常表示为一个百分比或一个具体的数值。 单击“添加指标”可添加多个数据汇总指标,最多可添加三个指标。 选择字段:选择数据分析指标字段,例如已售出数量。 当分析维度选择字段为子表单字段时,数据汇总指标字段也只能从子表单中选择。 字段重命名:可对数据汇总指标进行重命名。 汇总方式:数据分析的汇总方式,支持求和、平均值、最大值、最小值、计数及去重计数。 非数字类型组件,例如,单行文本输入,多行文本输入,单选、复选框、日期选择器、备注等,仅支持计数和去重计数的汇总方式。 数学类组件,例如,数字输入框,支持求和、平均值、最大值、最小值、计数及去重计数的汇总方式。 排序方式:根据需求自定义排序方式,可选择默认、升序或降序。 默认按照数据源导入的时间排序,可自定义设置升序或降序显示。 图10 设置漏斗图数据汇总指标 数据筛选:设置过滤条件,筛选数据源符合条件数据信息。 图11 设置漏斗图数据筛选条件
  • 基础配置 标题:该模块在页面呈现给用户的名称。 帮助提示:为字段添加帮助信息。设置后,标题字段后会显示。 描述信息:为字段添加附加的说明信息。 图例:指在多维度可视化图形表达中,用以区分不同维度可视化图形的提示标识。 设置图例位置:可选择“上方”、“右侧”、“下方”和“左侧”。 图2 设置图例位置为下方 数据标签:用于描述数据的元数据。开启后将在漏斗图上显示。 图3 关闭数据标签 图4 设置漏斗图显示数据标签 标签内容:设置标签展示内容。 图5 标签内容为分析维度 图6 标签内容为分析维度 百分比 图7 标签内容为分析维度 值 图8 标签内容为分析维度 值 百分比
  • 步骤三:数据一致性校验 迁移完成之后,可使用数据校验工具DataCheck校验源端、目标端的数据是否一致。 下载软件包后,解压DataCheck-*.zip包,进入DataCheck-*目录,即可使用。目录下各文件的使用说明参见表2。 配置工具包。 Windows环境下: 打开conf文件夹中的dbinfo.properties文件,根据实际需要进行配置。ADB源的配置参考下图: 图16 配置DataCheck 文件中的密码src.passwd和dws.passwd可使用工具,执行以下命令生成密文。 encryption.bat password 运行成功后会在本地bin目录下生成加密文件,如下图。 Linux环境下: 其他步骤相同。密文生成方法与上文中Window环境下的方法类似,命令为sh encryption.sh [password]。 执行数据校验。 Windows环境下: 打开check.input文件,将要校验的数据库(不填默认使用conf配置文件内的内容)、源表、目标端表填入,Row Range可根据需要填写特定范围的数据查询语句。 源端的库名在配置文件中配置后,check.input文件中的源端会默认填写配置文件中的库名,若check.input文件中填入其他库名,以check.input文件中的优先级为高。 校验级别Check Strategy支持high、middle、low三种,若未填写,默认为low。 下图为元数据对比的check_input文件。 图17 check_input 在bin目录下使用命令datacheck.bat执行校验工具: 查看已生成的校验结果 check_input_result.xlsx: 下图为源端元数据与目标端一致的结果。 下图为源端元数据与目标端不一致的结果。 Linux环境下: 编辑check_input.xlsx文件并上传,参考Window环境下的第一步。 使用命令sh datacheck.sh执行校验工具。 查看校验结果check_input_result.xlsx(校验结果分析与Windows场景相同)。
  • 参考信息 表2 DataCheck目录说明 文件或文件夹 说明 DataCheck bin 保存校验工具入口脚本。 Windows版本:datacheck.bat Linux版本:datacheck.sh conf 配置文件,进行源数据库和目的数据库的连接配置和日志打印设置。 lib 保存校验工具运行所需的相关jar包。 check_input.xlsx 待校验的表信息,包括Schema名、表名、列名等。 记录用户的校验级别信息和校验规则。已支持3种级别校验,包括high、middle、low,默认为low。 logs 压缩包中不包含该文件,校验工具执行后自动生成,记录工具运行过程日志。 check_input_result.xlsx 压缩包中不包含该文件,执行校验工具后会在check_input.xlsx相同路径下生成校验结果文件。
  • CodeArts Build基本操作流程 图1 CodeArts Build基本操作流程 表1 CodeArts Build操作流程说明 流程 说明 开通CodeArts Build 为您介绍如何开通CodeArts Build和购买构建加速包以及并发包。 配置CodeArts Build项目级角色权限 为您介绍使用CodeArts Build前的项目级基础权限配置、访问CodeArts Build服务页面的方式以及CodeArts Build首页功能总览。 新建构建任务 为您介绍图形化新建构建任务和代码化新建构建任务的操作指导,以及如何配置构建任务的参数、执行计划、单任务角色权限和事件通知。 配置构建步骤 CodeArts Build内置了30+种构建工具,您可以根据实际使用情况选择使用的构建工具,每种工具分别为您介绍了图形化构建的配置指导和代码化构建的代码示例。 执行构建任务 构建任务可通过流水线触发或者定时任务触发执行,本节为您介绍在CodeArts Build服务页面执行单个构建任务。 针对C/C++语言构建任务的效率提升,可参考购买构建并发包和加速构建任务实现构建加速。 针对多构建任务的效率提升,可参考多任务YAML文件结构详解和购买构建并发包搭配实现构建加速。 查看构建任务 为您介绍如何查看构建任务信息以及构建任务的执行结果。
  • 与其他服务的关系 FunctionGraph服务与以下云服务的对接,实现相关功能,如表1所示。 表1 对接服务 服务名称 实现功能 消息通知 服务( SMN ) 构建FunctionGraph函数来处理SMN的通知,相关内容请参考消息通知服务用户指南。 API网关(API Gateway) 通过HTTPS调用FunctionGraph函数,使用API Gateway自定义REST API和终端节点来实现。相关内容请参考API网关用户指南。 对象存储服务 (OBS) 构建FunctionGraph函数来处理OBS存储桶事件,例如对象事件或删除事件。当用户将一张照片上传到存储桶时,OBS存储桶调用FunctionGraph函数,实现读取图像和创建照片缩略图。相关内容请参考对象存储服务用户指南。 数据接入服务 (DIS) 构建FunctionGraph函数定期轮询DIS数据流中的新记录,例如网站点击流、财务交易记录、社交媒体源、IT日志和位置跟踪事件等。相关内容请参考数据接入服务用户指南。 云日志服务(LTS) 构建FunctionGraph函数来处理云日志服务订阅的日志。当云日志服务采集到订阅的日志后,可以通过FunctionGraph函数对其进行自定义处理、分析或将其加载到其他系统。相关操作请参考云日志服务用户指南。 云审计 服务( CTS ) 构建FunctionGraph函数,根据CTS云审计服务类型和操作订阅所需要的事件通知,由函数对日志中的关键信息进行分析和处理。相关内容请参考云审计服务用户指南。 通过云审计服务,您可以记录与FunctionGraph服务相关的操作事件,便于日后的查询、审计和回溯。相关内容请参考云审计服务支持的FunctionGraph操作列表。 审计日志。开通云审计服务后,系统开始记录云服务资源的操作。云审计服务管理控制台保存最近7天的操作记录。操作步骤请参考查看追踪事件。 文档数据库服务(DDS) 使用DDS触发器,每次更新数据库中的表时,都可以触发Functiongraph函数以执行额外的工作,创建DDS文档数据库实例请参见购买文档数据库实例。 云监控服务 CES ) FunctionGraph函数实现了与 云监控 服务对接,函数上报云监控服务的监控指标,用户可以通过云监控服务来查看函数产生的监控指标和告警信息。相关内容请参考云监控服务用户指南。 云监控支持的函数监控指标请参考监控配置。 虚拟私有云(VPC) 函数支持用户创建虚拟私有云(VPC)并访问自己VPC内的资源,同时支持通过SNAT方式绑定EIP访问外网。相关内容请参考虚拟私有云用户指南。
  • 预置任务简介 样例项目中预置了以下4个代码检查任务。 表1 预置任务 预置任务 任务说明 phoenix-codecheck-worker 检查Worker功能对应代码的任务。 phoenix-codecheck-result 检查Result功能对应代码的任务。 phoenix-codecheck-vote 检查Vote功能对应代码的任务。 phoenix-sample-javas 检查整个代码仓库对应的JavaScript代码的任务。 本章节以任务“phoenix-codecheck-worker”为例进行讲解。
  • 前提准备 已参考自定义购买E CS 购买本实践使用的弹性云服务器。 代码检查服务接入的自定义执行机只支持EulerOS2.5操作系统。 接入的自定义执行机中已安装Git-lfs,若未安装,可参考以下示例安装Git-lfs。本示例以使用命令的方式安装为例。 在执行机上执行以下命令。 # 下载 wget -O git-lfs.tar.gz https://github.com/git-lfs/git-lfs/releases/download/v3.4.1/git-lfs-linux-amd64-v3.4.1.tar.gz # 解压 tar -zxvf git-lfs.tar.gz # 进入解压后的目录 cd git-lfs-3.4.1 # 执行安装脚本 sh install.sh # 验证 git lfs version 已挂载云硬盘。
  • 前提准备 已在私有网络创建自定义执行机。执行机规格为CentOS 7,推荐配置为CPU:8U,内存:32G,系统盘:100G,数据盘:250G。 配置执行机网络,确保执行机能够同时访问华为云服务和自建代码仓服务。 接入的自定义执行机中已安装Git-lfs,若未安装,可参考以下示例安装Git-lfs。本示例以使用命令的方式安装为例。 在执行机上执行以下命令。 # 下载 wget -O git-lfs.tar.gz https://github.com/git-lfs/git-lfs/releases/download/v3.4.1/git-lfs-linux-amd64-v3.4.1.tar.gz # 解压 tar -zxvf git-lfs.tar.gz # 进入解压后的目录 cd git-lfs-3.4.1 # 执行安装脚本 sh install.sh # 验证 git lfs version 已挂载云硬盘。
  • 开启Binlog 通过在建HStore表时指定表级参数enable_binlog,开启HStore表的Binlog功能。 1 2 3 4 5 6 7 8 9 10 CREATE TABLE hstore_binlog_source ( c1 INT PRIMARY KEY, c2 INT, c3 INT ) WITH ( ORIENTATION = COLUMN, enable_hstore_opt=true, enable_binlog=on, binlog_ttl = 86400 );
  • Binlog格式与原理 表1 binlog字段格式 字段名称 字段类型 含义 gs_binlog_sync_point BIGINT Binlog系统字段,表示该记录的同步点值,普通GTM模式下,该值唯一且有序。 gs_binlog_event_sequence BIGINT Binlog的系统字段, 用于表示同一事务类操作的先后顺序。 gs_binlog_event_type CHAR Binlog的系统字段, 表示当前记录的操作类型。 type可能有以下几种取值: 'I' 即INSERT, 表示当前Binlog是插入一条新记录。 'd' 即DELETE,表示当前Binlog是删除一条记录。 'B' 即BEFORE_UPDATE,表示当前Binlog是更新前的记录。 'U'即AFTER_UPDATE,表示当前Binlog是更新后的记录。 gs_binlog_timestamp_us BIGINT Binlog的系统字段, 表示当前记录入库时的时间戳。 只有开启binlog时间戳功能时会有,没开启binlog时间戳时为空。仅9.1.0.200及以上版本支持。 user_column_1 用户列 用户的自定义数据列 ... ... ... usert_column_n 用户列 用户的自定义数据列
  • 查询binlog 通过DWS提供的系统函数,可以直接查询目标表在指定DN上binlog信息,以及是否被下游消费完毕等信息。 1 2 3 4 5 6 7 8 9 10 -- 模拟Flink调用系统函数获取同步点,参数分别表示 表名、槽位名、是否checkPoint点位,目标DN(为0表示所有DN)。 select * from pg_catalog.pgxc_get_binlog_sync_point('hstore_binlog_source', 'slot1', false, 0); select * from pg_catalog.pgxc_get_binlog_sync_point('hstore_binlog_source', 'slot1', true, 0); -- 进行增删改产生增量binlog。 INSERT INTO hstore_binlog_source VALUES(100, 1, 1); delete hstore_binlog_source where c1 = 100; INSERT INTO hstore_binlog_source VALUES(200, 1, 1); update hstore_binlog_source set c2 =2 where c1 = 200; -- 模拟Flink调用系统函数查询指定CSN区间的Binlog,参数分别表示表名,目标DN(为0表示所有DN),起始CSN点位, 终止CSN点位。 select * from pgxc_get_binlog_changes('hstore_binlog_source', 0, 0 , 9999999999);
  • 开启Binlog时间戳功能 如果需要读取指定时间点之后binlog的功能,通过在建HStore表时指定表级参数enable_binlog_timestamp,开启HStore表的Binlog时间戳功能。仅9.1.0.200及以上版本支持。 1 2 3 4 5 6 7 8 9 10 CREATE TABLE hstore_binlog_source( c1 INT PRIMARY KEY, c2 INT, c3 INT ) WITH ( ORIENTATION = COLUMN, enable_hstore_opt=true, enable_binlog_timestamp =on, binlog_ttl = 86400 );
  • 约束与限制 当前仅8.3.0.100及以上版本支持HStore和Hstore-opt记录Binlog功能,且V3表处于试商用阶段,使用前需要联系技术支持进行评估。 使用Binlog的前置条件是必须存在主键约束,并且为HStore表或者Hstore-opt表,分布方式只能是Hash分布。 Binlog表仅记录insert/delete/update(upsert)等DML操作进行记录,不会记录DDL。 当前Binlog表不支持的操作: Insert overwrite、修改分布列、给临时表开启Binlog、exchange/merge/split partition。 当前Binlog表并不限制用户进行以下DDL操作,但进行操作后会导致增量数据与同步点位信息会被清空,需要评估后再执行: ADD COLUMN 增加列、DROP COLUMN 删除列、SET TYPE 修改列、TRUNCATE 清空表数据。 Binlog表在线或者离线扩容期间会等待Binlog记录的消费,只有Binlog记录消费完毕才可以继续进行接下来的扩缩容步骤,默认等待时间为1小时,可通过guc参数binlog_consume_timeout来设置,如果等待超时或者等待出错都会退出扩缩容过程,认为该表扩缩容失败。 VACUUM FULL Binlog表时,会等待Binlog记录的消费,只有Binlog记录消费完毕才可以进行接下来的VACUUM FULL操作,默认等待时间为1小时,可通过guc参数binlog_consume_timeout来设置,如果等待超时或者等待出错都会退出VACUUM FULL过程,认为该表VACUUM FULL失败。且由于需要等待Binlog记录消费完毕,所以即使VACUUM FULL一个分区表,也会对分区的主表上7级锁,阻塞整个表的插入更新或者删除。 Binlog表在备份恢复期间,仅会被当做普通HStore表进行备份,恢复后辅助表的增量数据与同步点信息会清空,需要重新开始同步。 支持Binlog时间戳功能,通过设置enable_binlog_timestamp打开,同样只有HStore和Hstore-opt两种表支持打开。该约束仅9.1.0.200及以上版本支持。
  • 数据同步示例 GaussDB (DWS)侧: 新建binlog表时,enable_hstore_binlog_table参数需要设置为true,可以通过show enable_hstore_binlog_table来查询。 -- 源表(产生binlog) 1 CREATE TABLE test_binlog_source(a int, b int, c int, primary key(a, b)) with(orientation=column, enable_hstore=on, enable_binlog=true); -- 目标表 1 CREATE TABLE test_binlog_sink(a int, b int, c int, primary key(a, b)) with(orientation=column, enable_hstore=on); Flink侧: 执行如下命令进行完整数据同步: 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 -- 建立源表的映射表 CREATE TABLE test_binlog_source ( a int, b int, c int, primary key(a) ) with ( 'connector' = 'dws', 'url' = 'jdbc:gaussdb://ip:port/gaussdb', 'binlog' = 'true', 'tableName' = 'test_binlog_source', 'binlogSlotName' = 'slot', 'username'='xxx', 'password'='xxx'); ​-- 建立目标表的映射表 CREATE TABLE test_binlog_sink ( a int, b int, c int, primary key(a) ) with ( 'connector' = 'dws', 'url' = 'jdbc:gaussdb://ip:port/gaussdb', 'tableName' = 'test_binlog_sink', 'ignoreUpdateBefore'='false', 'connectionSize' = '1', 'username'='xxx', 'password'='xxx'); ​ INSERT INTO test_binlog_sink select * from test_binlog_source;
  • 注意事项 当前仅8.3.0.100及以上的版本支持HStore和HStore-opt记录Binlog功能,且处于试商用阶段,使用前需要进行评估。 目前GaussDB(DWS)只有Hstore表支持Binlog功能,表需要包含主键且设置enable_binlog=on。 消费的Binlog表名不要带有特殊字符,如.、""等。 如果多个任务消费同一张表的Binlog数据,需要保证每个任务的binlogSlotName唯一。 为了达到最高的消费速度,建议将任务的并发度和DWS集群DN数设置一致。 使用dws-connector-flink的Sink能力来写入Binlog数据的话,需要注意以下几点: 如果需要保证DN内的数据写入顺序则需要设置connectionSize设置为1。 如果源端有更新主键操作或者需要flink进行聚合计算的话,将ignoreUpdateBefore设置为false,否则不建议将 ignoreUpdateBefore设置为false(默认true)。
  • Binlog相关参数说明 下表仅涉及消费Binlog时的参数。 表1 消费Binlog时的参数 参数 说明 数据类型 默认值 binlog 是否读取Binlog信息 Boolean false binlogSlotName 槽位信息,可以理解一个标识。由于可能存在多个Flink任务同时消费同一张表的Binlog信息,所以该场景需要保证每个任务的binlogSlotName不同。 String Flink映射表的表名 binlogBatchReadSize 批量读取binlog的数据行数 Integer 5000 fullSyncBinlogBatchReadSize 全量读取binlog的数据行数 Integer 50000 binlogReadTimeout 增量消费Binlog数据时超时时间,单位毫秒 Integer 600000 fullSyncBinlogReadTimeout 全量消费Binlog数据时超时时间,单位毫秒 Long 1800000 binlogSleepTime 实时消费不到Binlog数据时休眠时间,单位毫秒。如果连续读取不到Binlog数据,则休眠时间为:binlogSleepTime * 次数,最大为binlogMaxSleepTime。读取到数据后,则重置。 Long 500 binlogMaxSleepTime 实时消费不到Binlog数据时最大休眠时间,单位毫秒。 Long 10000 binlogMaxRetryTimes 消费Binlog数据出错后的重试次数。 Integer 1 binlogRetryInterval 消费binlog数据出错后的重试时间间隔。重试时sleep时间:binlogRetryInterval * (1~binlogMaxRetryTimes) +Random(100)。单位毫秒。 Long 100 binlogParallelNum 消费Binlog数据时线程数,只有任务并发度小于DWS集群DN数时,该参数才有效,即此时一个并发度会消费多个DN上的数据,所以可以考虑设置该参数。 Integer 3 connectionPoolSize JDBC连接池连接大小。 Integer 5 needRedistribution 表示是否兼容扩充重分布(需要升级到对应内核版本,如果是低版本则设置为false);如果设置成true的话,flink的restart-strategy不能设置为none。 Boolean true newSystemValue 表示读取binlog数据时是否使用新的系统字段(需要升级到对应内核版本,如果是低版本则设置为false)。 Boolean true checkNodeChangeInterval 检测节点变化的间隔,只有needRedistribution=true才生效。 Long 10000 connectionSocketTimeout 连接处理超时时间(可以看成客户端执行SQL超时时间),单位毫秒;默认值为0,即不设置超时时间。 Integer 0 binlogIgnoreUpdateBefor 是否过滤Binlog记录中的before_update记录,以及delete记录是否只返回主键信息。该参数仅9.1.0.200及以上版本支持。 Boolean false binlogStartTime 设置从某个时间点开始消费Binlog(只能增量消费),格式为yyyy-MM-dd hh:mm:ss且表需要开启enable_binlog_timestamp。 该参数仅9.1.0.200及以上版本支持。 String 无 binlogSyncPointSize 增量读取binlog同步点区间的大小(增量读取binlog时,如果数据量过大可能涉及下盘,可通过调整该参数控制)。 该参数仅9.1.0.200及以上版本支持。 Integer 5000
共100000条