华为云用户手册

  • TaurusDB权限 默认情况下,管理员创建的 IAM 用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 TaurusDB部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在所有项目中设置权限,则该权限在所有区域项目中都生效。访问TaurusDB时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对TaurusDB服务,管理员能够控制IAM用户仅能对某一类数据库资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,TaurusDB支持的API授权项请参见策略及授权项说明。 如表1所示,包括了云数据库TaurusDB的所有系统权限。 表1 TaurusDB系统权限 策略名称 描述 类别 GaussDB FullAccess 云数据库TaurusDB服务的所有执行权限。 系统策略。 GaussDB ReadOnlyAccess 云数据库TaurusDB服务的只读访问权限。 系统策略。 表2列出了云数据库TaurusDB常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表2 常用操作与系统权限的关系 操作 GaussDB FullAccess GaussDB ReadOnlyAccess 创建TaurusDB实例 支持 不支持 删除TaurusDB实例 支持 不支持 查询TaurusDB实例列表 支持 支持 表3 常用操作与对应授权项 操作名称 授权项 备注 修改参数模板 gaussdb:param:modify - 变更数据库实例的规格 gaussdb:instance:modifySpec - 创建数据库实例 gaussdb:instance:create 界面选择VPC、子网、安全组需要配置: vpc:vpcs:list vpc:vpcs:get vpc:subnets:get vpc:securityGroups:get 创建加密实例需要在项目上配置KMS Administrator权限。 创建包周期实例需要配置CBC权限: bss:renewal:view bss:renewal:update bss:balance:view bss:order:view bss:order:update bss:order:pay 创建TDE实例时,需要配置授予创建服务关联委托的权限:iam:agencies:createServiceLinkedAgencyV5。 创建手动备份 gaussdb:backup:create - 查询备份列表 gaussdb:backup:list - 查询错误日志 gaussdb:log:list - 重启实例 gaussdb:instance:restart - 查询数据库实例列表 gaussdb:instance:list - 创建参数模板 gaussdb:param:create - 删除参数模板 gaussdb:param:delete - 修改备份策略 gaussdb:instance:modifyBackupPolicy - 查看参数模板 gaussdb:param:list - 删除实例 gaussdb:instance:delete 退订包周期实例需要配置: bss:unsubscribe:update 删除手动备份 gaussdb:backup:delete - 查询项目标签 gaussdb:tag:list - 应用参数模板 gaussdb:param:apply - 批量添加删除项目标签 gaussdb:instance:dealTag - 变更配额 gaussdb:quota:modify - 升级数据库实例版本 gaussdb:instance:upgrade - 只读升主 gaussdb:instance:switchover - 修改数据库端口 gaussdb:instance:modifyPort - 修改实例安全组 gaussdb:instance:modifySecurityGroup - 修改读写内网地址 gaussdb:instance:modifyIp 界面选择IP需要配置: vpc:vpcs:list vpc:vpcs:get 开启、关闭SSL gaussdb:instance:modifySSL - 修改实例名称 gaussdb:instance:rename - 添加只读节点 gaussdb:instance:addNodes - 删除只读节点 gaussdb:instance:deleteNodes - 修改存储空间 gaussdb:instance:modifyStorageSize - 修改数据库实例密码 gaussdb:instance:modifyPassword - 绑定公网IP gaussdb:instance:bindPublicIp 界面列出公网IP需要配置: vpc:publicIps:get vpc:publicIps:list 解绑公网IP gaussdb:instance:unbindPublicIp - 修改监控策略 gaussdb:instance:modifyMonitorPolicy - 修改节点倒换优先级 gaussdb:instance:modifySwitchoverPriority - 修改可维护时间窗 gaussdb:instance:modifyMaintenanceWindow - 节点隔离 gaussdb:instance:isolateNodes - 修改全量SQL策略 gaussdb:instance:modifyTraceSQLPolicy - 查询HTAP实例列表 gaussdb:htapInstance:list - 创建HTAP实例 gaussdb:htapInstance:create - 修改云数据库 GaussDB HTAP实例 gaussdb:htapInstance:modify - 删除HTAP实例 gaussdb:htapInstance:delete - 修改HTAP实例名称 gaussdb:htapInstance:rename - 重启HTAP实例 gaussdb:htapInstance:restart - 升级HTAP实例版本 gaussdb:htapInstance:upgrade - 倒换HTAP实例 gaussdb:htapInstance:switchover - 变更HTAP实例的规格 gaussdb:htapInstance:modifySpec - 扩容HTAP实例磁盘空间 gaussdb:htapInstance:modifyStorageSize - 绑定HTAP实例公网IP gaussdb:htapInstance:bindPublicIp - 解绑HTAP实例公网IP gaussdb:htapInstance:unbindPublicIp - 修改HTAP实例端口 gaussdb:htapInstance:modifyPort - 修改HTAP实例密码 gaussdb:htapInstance:modifyPassword - 创建HTAP实例数据同步 gaussdb:htapInstance:createDataSync - 修改HTAP实例数据同步 gaussdb:htapInstance:modifyDataSync - 删除HTAP实例数据同步 gaussdb:htapInstance:deleteDataSync - 创建数据库代理 gaussdb:proxy:create - 修改代理地址 gaussdb:proxy:modifyIp - 修改数据库代理读权重 gaussdb:proxy:modifyWeight - 修改数据库代理端口 gaussdb:proxy:modifyPort - 修改数据库代理访问控制 gaussdb:proxy:modifyAccess - 删除数据库代理 gaussdb:proxy:delete - 查询数据库代理列表 gaussdb:proxy:list - 升级数据库代理版本 gaussdb:proxy:upgrade - 修改数据库代理名称 gaussdb:proxy:rename - 扩容数据库代理节点 gaussdb:proxy:addNodes - 缩容数据库代理节点 gaussdb:proxy:deleteNodes - 变更数据库代理规格 gaussdb:proxy:modifySpec - 申请数据库代理内网 域名 gaussdb:proxy:createDns - 修改数据库代理域名 gaussdb:proxy:modifyDns - 删除数据库代理域名 gaussdb:proxy:deleteDns - 修改数据库代理路由模式 gaussdb:proxy:modifyRouteMode - 修改数据库代理SSL gaussdb:proxy:modifySSL - 创建数据库用户 gaussdb:user:create - 删除数据库用户 gaussdb:user:delete - 修改数据库用户密码 gaussdb:user:modify - 查询数据库用户 gaussdb:user:list - 数据库用户授权 gaussdb:user:grantPrivilege - 回收数据库用户权限 gaussdb:user:revokePrivilege - 创建数据库 gaussdb:database:create - 删除数据库 gaussdb:database:delete - 查询数据库列表 gaussdb:database:list - 查询预定义标签 - 查询预定义标签需要配置: tms:resourceTags:list 查询配置日志组 - 查询配置日志组需要配置: lts:groups:get 查询配置日志流 - 查询配置日志流需要配置: lts:topics:get 设置自动变配 gaussdb:autoscaling:createPolicy 设置自动变配需要配置: iam:agencies:listAgencies
  • 数据保护技术 TaurusDB通过多种数据保护手段和特性,保障存储在TaurusDB中的数据安全可靠。 表1 多种数据保护手段 数据保护手段 简要说明 传输加密(HTTPS) 支持HTTP和HTTPS两种传输协议,为保证数据传输的安全性,推荐您使用更加安全的HTTPS协议。 数据备份 支持设置数据库的备份和恢复,来保障数据的可靠性。 敏感操作保护 控制台支持敏感操作保护,开启后执行删实例等敏感操作时,系统会进行身份验证,进一步保证TaurusDB配置和数据的安全性。 SSL 数据加密 可以使用SSL来加密数据库TaurusDB和客户端的连接。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。 父主题: 安全
  • 鲲鹏架构实例规格 鲲鹏架构的实例规格支持独享型规格。 独享型:完全独享的CPU和内存,性能长期稳定,不会因为物理机上其他实例的行为而受到影响。适用于对性能稳定性要求较高的应用场景。 独享型实例支持的区域如下:华北-北京四、华东-上海一、华南-广州、华南-广州-友好用户环境、西南-贵阳一、华北-乌兰察布一、亚太-新加坡、亚太-雅加达、土耳其-伊斯坦布尔、拉美-圣保罗一。 表2 鲲鹏架构实例规格 规格类型 规格码 vCPU(个) 内存(GB) 独享型 gaussdb.mysql.xlarge.arm.4 4 16 gaussdb.mysql.xlarge.arm.8 4 32 gaussdb.mysql.2xlarge.arm.4 8 32 gaussdb.mysql.2xlarge.arm.8 8 64 gaussdb.mysql.4xlarge.arm.4 16 64 gaussdb.mysql.4xlarge.arm.8 16 128 gaussdb.mysql.8xlarge.arm.4 32 128 gaussdb.mysql.8xlarge.arm.8 32 256 gaussdb.mysql.12xlarge.arm.4 48 192 gaussdb.mysql.12xlarge.arm.8 48 384 gaussdb.mysql.15xlarge.arm.8 60 480 数据库实例规格请以实际环境为准。 TPS和QPS性能数据,请参见《性能白皮书》。
  • X86架构实例规格 X86架构的实例规格支持两种子系列:独享型规格和通用型规格。 独享型:完全独享的CPU和内存,性能长期稳定,不会因为物理机上其他实例的行为而受到影响。适用于对性能稳定性要求较高的应用场景。 独享型实例支持的区域如下:华北-北京四、华东-上海一、华南-广州、华南-广州-友好用户环境、西南-贵阳一、华北-乌兰察布一、亚太-新加坡、亚太-雅加达、土耳其-伊斯坦布尔、拉美-圣保罗一。 通用型:与同一物理机上的其他通用版规格实例共享CPU和内存,通过资源复用换取CPU使用率最大化,性价比较高。适用于对性能稳定性要求较低的应用场景。 支持的区域如下:华北-北京四、华东-上海一、华南-广州。 表1 X86架构实例规格 规格类型 规格码 vCPU(个) 内存(GB) 独享型 gaussdb.mysql.large.x86.4 2 8 gaussdb.mysql.large.x86.8 2 16 gaussdb.mysql.xlarge.x86.4 4 16 gaussdb.mysql.xlarge.x86.8 4 32 gaussdb.mysql.2xlarge.x86.4 8 32 gaussdb.mysql.2xlarge.x86.8 8 64 gaussdb.mysql.4xlarge.x86.4 16 64 gaussdb.mysql.4xlarge.x86.8 16 128 gaussdb.mysql.8xlarge.x86.4 32 128 gaussdb.mysql.8xlarge.x86.8 32 256 gaussdb.mysql.16xlarge.x86.4 60 256 gaussdb.mysql.16xlarge.x86.8 64 512 通用型 gaussdb.mysql.large.x86.normal.4 2 8 gaussdb.mysql.xlarge.x86.normal.2 4 8 gaussdb.mysql.xlarge.x86.normal.4 4 16 gaussdb.mysql.2xlarge.x86.normal.2 8 16 gaussdb.mysql.2xlarge.x86.normal.4 8 32 gaussdb.mysql.4xlarge.x86.normal.2 16 32 gaussdb.mysql.4xlarge.x86.normal.4 16 64 gaussdb.mysql.8xlarge.x86.normal.2 32 64 gaussdb.mysql.8xlarge.x86.normal.4 32 128 数据库实例规格请以实际环境为准。 TPS和QPS性能数据,请参见《性能白皮书》。
  • TaurusDB实例状态 数据库实例状态是数据库实例的运行情况。用户可以使用管理控制台查看数据库实例状态。 表1 状态及说明 状态 说明 正常 数据库实例正常和可用。 异常 数据库实例不可用。 创建中 正在创建数据库实例。 创建失败 数据库实例创建失败。 重启中 正在重启数据库实例。 实例名称修改中 正在修改数据库实例名称。 端口修改中 正在修改数据库实例的数据库端口。 规格变更中 正在变更数据库实例的CPU和内存规格。 添加只读中 正在进行数据库实例添加只读节点。 删除只读中 正在进行数据库实例删除只读节点。 只读升主中 只读节点正在切换为主节点。 只读节点隔离中 只读节点正在进行隔离。 只读节点已隔离 只读节点完成隔离操作。 备份中 正在备份数据库实例。 扩容中 正在扩容数据库实例的磁盘空间。 冻结 账户余额小于或等于0元,系统对该用户下的实例进行冻结。您需前往费用中心进行充值,充值成功且欠款核销后,冻结保留期内的实例才会解冻。 证书配置变更中 正在进行数据库实例证书配置变更。 Serverless算力变更中 Serverless实例正在进行算力变更。 小版本升级中 正在进行数据库实例内核版本升级。 已删除 数据库实例已被删除,对于已经删除的实例,将不会在实例列表中显示。 父主题: 实例说明
  • 身份认证 用户访问云数据库TaurusDB时支持对数据库用户进行身份验证,包含密码验证和IAM验证两种方式。 密码验证 您需要对数据库实例进行管理,使用数据管理服务(Data Admin Service)登录数据库时,需要对账号密码进行验证,验证成功后方可进行操作。 IAM验证 您可以使用 统一身份认证 服务(Identity and Access Management, IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。您创建的IAM用户,需要通过验证用户和密码才可以使用TaurusDB资源。具体请参见创建IAM用户并登录。
  • 访问控制 权限控制 购买实例之后,您可以使用IAM为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,通过IAM进行精细的权限管理。具体内容请参见TaurusDB权限管理。 VPC和子网 虚拟私有云(Virtual Private Cloud, VPC)为云数据库构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云上资源的安全性,简化用户的网络部署。您可以在VPC中定义安全组、VPN、IP地址段、带宽等网络特性,方便管理、配置内部网络,进行安全、快捷的网络变更。 子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。 具体内容请参见创建虚拟私有云和子网。 安全组 安全组是一个逻辑上的分组,为同一个虚拟私有云内具有相同安全保护需求并相互信任的弹性云服务器和TaurusDB数据库实例提供访问策略。为了保障数据库的安全性和稳定性,在使用TaurusDB数据库实例之前,您需要设置安全组,开通需访问数据库的IP地址和端口。
  • 存储类型介绍 表1 存储类型介绍 存储类型 特点 适用场景 DL6(Cloud Database Engine Level 6) 原“共享存储”。TaurusDB历史版本默认支持的存储类型,2024年7月前创建的实例默认的存储类型。 DL6存储类型的实例采用3AZ部署,RPO=0;性能更佳、峰值吞吐量更高。 对性能敏感,业务高峰对存储IO要求极高的核心应用系统,如金融、电商、政务和游戏等。 DL5(Cloud Database Engine Level 5) TaurusDB全新推出的存储类型,底层基于华为云自研硬件及网络底座技术,保持了DL6的3AZ,RPO=0的高可用性,峰值性能有所下降,单位容量的成本显著降低。 CPU密集型的次核心业务系统;或有降低成本诉求,追求高性价比的应用模块。 由于两类存储依托于不同物理介质,对于已创建的实例,存储类型无法支持直接切换。如需切换存储类型,建议您购买一个新的TaurusDB实例并配置预期的存储类型,将原有实例的数据通过DRS工具迁移到新实例上。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • TaurusDB与其他服务的关系 TaurusDB与其他服务之间的关系,具体表1所示。 表1 与其他服务的关系 相关服务 交互功能 弹性云服务器(E CS ) TaurusDB配合弹性云服务器(Elastic Cloud Server,简称ECS)一起使用,通过内网连接TaurusDB可以有效地降低应用响应时间、节省公网流量费用。 虚拟私有云(VPC) 对您的TaurusDB数据库实例进行网络隔离和访问控制。 对象存储服务 (OBS) 存储您的TaurusDB数据库实例的自动和手动备份数据。 云监控服务 (Cloud Eye) 云监控 服务是一个开放性的监控平台,帮助用户实时监测TaurusDB资源的动态。云监控服务提供多种告警方式以保证及时预警,为您的服务正常运行保驾护航。 云审计 服务( CTS ) 云审计服务(Cloud Trace Service,简称CTS),为用户提供云服务资源的操作记录,供您查询、审计和回溯使用。 数据复制服务 (DRS) 使用数据复制服务,实现数据库平滑迁移上云。 企业管理服务(EPS) 企业管理服务(Enterprise Project Management Service,简称EPS)提供统一的云资源按企业项目管理,以及企业项目内的资源管理、成员管理。 标签管理服务(TMS) 标签管理服务(Tag Management Service,简称TMS)是一种快速便捷将标签集中管理的可视化服务,提供跨区域、跨服务的集中标签管理和资源分类功能。 分布式数据库 中间件(DDM) 对于云数据库TaurusDB,使用分布式数据库中间件服务(Distributed Database Middleware,简称DDM),后端对接多个数据库实例,实现分布式数据库的透明访问。
  • RDS for PostgreSQ L实例 规格 RDS for PostgreSQL实例支持的数据库版本请参见数据库引擎和版本。 RDS for PostgreSQL实例规格的CPU架构分为X86架构和ARM架构,详见表1。支持的规格列表请参见表4、表5和表6。 X86架构:通用型(推荐)、独享型(推荐)、通用增强型(存量经营)、通用增强II型(存量经营) ARM架构:鲲鹏通用增强型 表1 实例规格类型 规格 说明 适用场景 约束限制 通用型(推荐) 与同一物理机上的其他通用型规格实例共享CPU资源,通过资源复用换取CPU使用率最大化,性价比较高,适用于对性能稳定性要求较低的应用场景。 侧重对成本、性价比要求较高的场景。 后续主推规格,支持的区域如表2所示。 独享型(推荐) 完全独享的CPU和内存,性能长期稳定,不会因为物理机上其它实例的行为而受到影响,适用于对性能稳定性要求较高的应用场景。 电商、游戏、金融、政企等核心数据库场景。 后续主推规格,支持的区域如表2所示。 通用增强型、通用增强II型 CPU性能强劲,并搭载全新网络加速引擎,以及DPDK(Data Plane Development Kit)快速报文处理机制,提供更高的网络性能以及算力,满足不同场景需求。 对数据库算力与网络有更高性能要求的网站和Web应用场景。 该规格为存量经营。 鲲鹏通用增强型 搭载鲲鹏920处理器及25GE智能高速网卡,提供强劲鲲鹏算力和高性能网络 政府、互联网等企业场景。 支持的区域如表3所示。 表2 通用型、独享型支持的区域 规格类型 区域 通用型、独享型 华北-北京四、华北-乌兰察布一 华东-上海一 华南-广州、华南-广州-友好用户环境 西南-贵阳一 亚太-曼谷、亚太-新加坡 中国-香港 拉美-圣保罗一、拉美-圣地亚哥、拉美-墨西哥城一、拉美-墨西哥城二 非洲-约翰内斯堡 表3 鲲鹏通用增强型支持的区域 规格类型 区域 可用区 PostgreSQL版本 鲲鹏通用增强型 华北-北京四 可用区一、可用区二、可用区七 11 华东-上海一 可用区一、可用区三 11 华南-广州 可用区二、可用区五 11 华南-深圳 可用区一 11 西南-贵阳一 可用区一 11 华北-乌兰察布一 可用区一 11 表4 X86架构实例规格(通用型、独享型) 规格 主备实例规格码 只读实例规格码 单机实例规格码 vCPU(个) 内存(GB) 通用型 rds.pg.n1.medium.2.ha rds.pg.n1.medium.2.rr rds.pg.n1.medium.2 1 2 rds.pg.n1.large.2.ha rds.pg.n1.large.2.rr rds.pg.n1.large.2 2 4 rds.pg.n1.large.4.ha rds.pg.n1.large.4.rr rds.pg.n1.large.4 2 8 rds.pg.n1.xlarge.2.ha rds.pg.n1.xlarge.2.rr rds.pg.n1.xlarge.2 4 8 rds.pg.n1.xlarge.4.ha rds.pg.n1.xlarge.4.rr rds.pg.n1.xlarge.4 4 16 rds.pg.n1.2xlarge.2.ha rds.pg.n1.2xlarge.2.rr rds.pg.n1.2xlarge.2 8 16 rds.pg.n1.2xlarge.4.ha rds.pg.n1.2xlarge.4.rr rds.pg.n1.2xlarge.4 8 32 独享型 说明: SSD云盘和极速型SSD支持的独享型规格存在差异,请以实际环境为准。 rds.pg.x1.large.2.ha rds.pg.x1.large.2.rr - 2 4 rds.pg.x1.large.4.ha rds.pg.x1.large.4.rr - 2 8 rds.pg.x1.large.8.ha rds.pg.x1.large.8.rr - 2 16 rds.pg.x1.xlarge.2.ha rds.pg.x1.xlarge.2.rr - 4 8 rds.pg.x1.xlarge.4.ha rds.pg.x1.xlarge.4.rr - 4 16 rds.pg.x1.xlarge.8.ha rds.pg.x1.xlarge.8.rr - 4 32 rds.pg.x1.2xlarge.2.ha rds.pg.x1.2xlarge.2.rr - 8 16 rds.pg.x1.2xlarge.4.ha rds.pg.x1.2xlarge.4.rr - 8 32 rds.pg.x1.2xlarge.8.ha rds.pg.x1.2xlarge.8.rr - 8 64 rds.pg.x1.4xlarge.2.ha rds.pg.x1.4xlarge.2.rr - 16 32 rds.pg.x1.4xlarge.4.ha rds.pg.x1.4xlarge.4.rr - 16 64 rds.pg.x1.4xlarge.8.ha rds.pg.x1.4xlarge.8.rr - 16 128 rds.pg.x1.8xlarge.2.ha rds.pg.x1.8xlarge.2.rr - 32 64 rds.pg.x1.8xlarge.4.ha rds.pg.x1.8xlarge.4.rr - 32 128 rds.pg.x1.16xlarge.2.ha rds.pg.x1.16xlarge.2.rr - 64 128 rds.pg.x1.16xlarge.4.ha rds.pg.x1.16xlarge.4.rr - 64 256 rds.pg.x1.16xlarge.8.ha rds.pg.x1.16xlarge.8.rr - 64 512 表5 X86架构实例规格(通用增强型、通用增强II型) 规格 vCPU(个) 内存(GB) 通用增强型 1 2 1 4 2 4 2 8 2 16 4 8 4 16 4 32 8 32 8 64 16 64 32 128 60 128 60 256 通用增强II型 2 4 2 8 2 16 4 8 4 16 4 32 8 16 8 32 8 64 16 32 16 64 16 128 32 64 32 128 64 128 64 256 64 512 表6 ARM架构实例规格 规格 主备实例规格码 只读实例规格码 单机实例规格码 vCPU(个) 内存(GB) 鲲鹏通用增强型 rds.pg.large.arm2.ha rds.pg.large.arm2.rr rds.pg.large.arm2.single 2 4 rds.pg.large.arm4.ha rds.pg.large.arm4.rr rds.pg.large.arm4.single 2 8 rds.pg.xlarge.arm2.ha rds.pg.xlarge.arm2.rr rds.pg.xlarge.arm2.single 4 8 rds.pg.xlarge.arm4.ha rds.pg.xlarge.arm4.rr rds.pg.xlarge.arm4.single 4 16 rds.pg.2xlarge.arm2.ha rds.pg.2xlarge.arm2.rr rds.pg.2xlarge.arm2.single 8 16 rds.pg.2xlarge.arm4.ha rds.pg.2xlarge.arm4.rr rds.pg.2xlarge.arm4.single 8 32 rds.pg.4xlarge.arm2.ha rds.pg.4xlarge.arm2.rr rds.pg.4xlarge.arm2.single 16 32 rds.pg.4xlarge.arm4.ha rds.pg.4xlarge.arm4.rr rds.pg.4xlarge.arm4.single 16 64 rds.pg.8xlarge.arm2.ha rds.pg.8xlarge.arm2.rr rds.pg.8xlarge.arm2.single 32 64 rds.pg.8xlarge.arm4.ha rds.pg.8xlarge.arm4.rr rds.pg.8xlarge.arm4.single 32 128 rds.pg.15xlarge.arm2.ha rds.pg.15xlarge.arm2.rr rds.pg.15xlarge.arm2.single 60 120 数据库实例规格请以实际环境为准。 父主题: 实例规格
  • 写数据至多个Sink表 EXECUTE STATEMENT SET BEGIN ... END; 是写数据至多个Sink表的必填语句,用于定义在同一个作业中执行多个插入数据的操作。 写数据至多个Sink表时,EXECUTE STATEMENT SET BEGIN ... END;是必填项。 语法格式 1 2 3 4 5 6 7 8 9 10 11 EXECUTE STATEMENT SET BEGIN -- 第一个DML语句 INSERT INTO your_sink1 SELECT ... FROM your_source WHERE ...; -- 第二个DML语句 INSERT INTO your_sink2 SELECT ... FROM your_source WHERE ... ... END; 示例 本例定义了源表datagen_source、Sink表print_sinkA和print_sinkB。然后使用EXECUTE STATEMENT执行两个INSERT INTO语句,分将转换后的数据写入两个不同的sink。 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 --使用 datagen connector创建源表 datagen_source CREATE TABLE datagen_source ( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'datagen' ); --使用print connector创建结果表 print_sinkA 和 print_sinkB CREATE TABLE print_sinkA( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'print' ); CREATE TABLE print_sinkB( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'print' ); --使用 EXECUTE STATEMENT SET BEGIN来执行两个 INSERT INTO 语句。 --第一个INSERT INTO语句将datagen_source表中的数据按需转换后写入 print_sinkA。 --第二个 INSERT INTO 语句将数据按需转换后写入 print_sinkB。。 EXECUTE STATEMENT SET BEGIN INSERT INTO print_sinkA SELECT UPPER(name), min(age) FROM datagen_source GROUP BY UPPER(name); INSERT INTO print_sinkB SELECT LOWER(name), max(age) FROM datagen_source GROUP BY LOWER(name); END;
  • 写数据至一个Sink表 语法格式 1 2 INSERT INTO your_sink SELECT ... FROM your_source WHERE ... 示例 本例定义了两个表my_source 和my_sink,并使用INSERT INTO语句source表选择数据并插入到sink表。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 --使用datagen connector创建源表my_source CREATE TABLE my_source ( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'datagen'); --使用jdbc connector创建目标表my_sink CREATE TABLE my_sink ( name VARCHAR, age BIGINT ) WITH ( 'connector' = 'jdbc', 'url' = 'jdbc:mysql://xxx/your-database', 'table-name' = 'your-table', 'username' = 'your-username', 'password' = 'your-password' ); --使用INSERT INTO语句从my_source表选择数据,并插入到my_sink表 INSERT INTO my_sink SELECT name, age FROM my_source;
  • 常见问题 Q:若Flink作业日志中有如下报错信息,应该怎么解决? java.io.IOException: unable to open JDBC writer ... Caused by: org.postgresql.util.PSQLException: The connection attempt failed. ... Caused by: java.net.SocketTimeoutException: connect timed out A:应考虑是跨源没有绑定,或者跨源没有绑定成功。 参考增强型跨源连接章节,重新配置跨源。参考 DLI 跨源连接DWS失败进行问题排查。 Q:如果该DWS表在某schema下,则应该如何配置? A:如下示例是使用schema为dbuser2下的表area_info: --创建地址维表 create table area_info ( area_id string, area_province_name string, area_city_name string, area_county_name string, area_street_name string, region_name string ) WITH ( 'connector' = 'gaussdb', 'driver' = 'org.postgresql.Driver', 'url' = 'jdbc:postgresql://DwsAddress:DwsPort/DwsDbname', 'table-name' = 'dbuser2.area_info', 'username' = 'DwsUserName', 'password' = 'DwsPassword', 'lookup.cache.max-rows' = '10000', 'lookup.cache.ttl' = '2h' );
  • 参数说明 表1 参数说明 参数 是否必选 默认值 数据类型 说明 connector 是 无 String connector类型,需配置为'gaussdb'。 url 是 无 String jdbc连接地址。 使用gsjdbc4驱动连接时,格式为:jdbc:postgresql://${ip}:${port}/${dbName} 。 使用gsjdbc200驱动连接时,格式为:jdbc:gaussdb://${ip}:${port}/${dbName}。 table-name 是 无 String 读取数据库中的数据所在的表名。 driver 否 无 String jdbc连接驱动,默认为: org.postgresql.Driver。 使用gsjdbc4驱动连接时,加载的数据库驱动类为:org.postgresql.Driver。 使用gsjdbc200驱动连接时,加载的数据库驱动类为:com.huawei.gauss200.jdbc.Driver。 username 否 无 String 数据库认证用户名,需要和'password'一起配置。 password 否 无 String 数据库认证密码,需要和'username'一起配置。 scan.partition.column 否 无 String 用于对输入进行分区的列名。 与scan.partition.lower-bound、scan.partition.upper-bound、scan.partition.num必须同时存在或者同时不存在。 scan.partition.lower-bound 否 无 Integer 第一个分区的最小值。 与scan.partition.column、scan.partition.upper-bound、scan.partition.num必须同时存在或者同时不存在。 scan.partition.upper-bound 否 无 Integer 最后一个分区的最大值。 与scan.partition.column、scan.partition.lower-bound、scan.partition.num必须同时存在或者同时不存在。 scan.partition.num 否 无 Integer 分区的个数。 与scan.partition.column、scan.partition.upper-bound、scan.partition.upper-bound必须同时存在或者同时不存在。 scan.fetch-size 否 0 Integer 每次从数据库拉取数据的行数。默认值为0,表示不限制。 scan.auto-commit 否 true Boolean 设置自动提交标志。 它决定每一个statement是否以事务的方式自动提交。 lookup.cache.max-rows 否 无 Integer 维表配置,缓存的最大行数,超过该值时,最先添加的数据将被标记为过期。 默认表示不使用该配置。 lookup.cache.ttl 否 无 Duration 维表配置,缓存超时时间,超过该时间的数据会被剔除。格式为:{length value}{time unit label},如123ms, 321s,支持的时间单位包括: d,h,min,s,ms等,默认为ms。 默认表示不使用该配置。 lookup.max-retries 否 3 Integer 维表配置,数据拉取最大重试次数。
  • 示例 从Kafka源表中读取数据,将DWS表作为维表,并将二者生成的宽表信息写入Kafka结果表中,其具体步骤如下: 参考增强型跨源连接,在DLI上根据DWS和Kafka所在的虚拟私有云和子网分别创建相应的增强型跨源连接,并绑定所要使用的Flink弹性资源池。 设置DWS和Kafka的安全组,添加入向规则使其对Flink的队列网段放通。参考测试地址连通性分别根据DWS和Kafka的地址测试队列连通性。若能连通,则表示跨源已经绑定成功,否则表示未成功。 连接DWS数据库实例,在DWS中创建相应的表,作为维表,表名为area_info,SQL语句如下: create table public.area_info( area_id VARCHAR, area_province_name VARCHAR, area_city_name VARCHAR, area_county_name VARCHAR, area_street_name VARCHAR, region_name VARCHAR); 连接DWS数据库实例,向DWS维表area_info中插入测试数据,其语句如下: insert into area_info (area_id, area_province_name, area_city_name, area_county_name, area_street_name, region_name) values ('330102', 'a1', 'b1', 'c1', 'd1', 'e1'), ('330106', 'a1', 'b1', 'c2', 'd2', 'e1'), ('330108', 'a1', 'b1', 'c3', 'd3', 'e1'), ('330110', 'a1', 'b1', 'c4', 'd4', 'e1'); 参考创建Flink OpenSource作业,创建flink opensource sql作业,输入以下作业运行脚本,提交运行作业。该作业脚本将Kafka作为数据源,DWS作为维表,数据输出到Kafka结果表中。 注意:创建作业时,在作业编辑界面的“运行参数”处,“Flink版本”选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。如下脚本中的加粗参数请根据实际环境修改。 CREATE TABLE orders ( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string, proctime as Proctime() ) WITH ( 'connector' = 'kafka', 'topic' = 'KafkaSourceTopic', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'properties.group.id' = 'dws-order', 'scan.startup.mode' = 'latest-offset', 'format' = 'json' ); --创建地址维表 create table area_info ( area_id string, area_province_name string, area_city_name string, area_county_name string, area_street_name string, region_name string ) WITH ( 'connector' = 'gaussdb', 'driver' = 'org.postgresql.Driver', 'url' = 'jdbc:postgresql://DwsAddress:DwsPort/DwsDbName', 'table-name' = 'area_info', 'username' = 'DwsUserName', 'password' = 'DwsPassword', 'lookup.cache.max-rows' = '10000', 'lookup.cache.ttl' = '2h' ); --根据地址维表生成详细的包含地址的订单信息宽表 create table order_detail( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string, area_province_name string, area_city_name string, area_county_name string, area_street_name string, region_name string ) with ( 'connector' = 'kafka', 'topic' = 'KafkaSinkTopic', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'format' = 'json' ); insert into order_detail select orders.order_id, orders.order_channel, orders.order_time, orders.pay_amount, orders.real_pay, orders.pay_time, orders.user_id, orders.user_name, area.area_id, area.area_province_name, area.area_city_name, area.area_county_name, area.area_street_name, area.region_name from orders left join area_info for system_time as of orders.proctime as area on orders.area_id = area.area_id; 连接Kafka集群,向kafka中source topic中插入如下测试数据: {"order_id":"202103241606060001", "order_channel":"appShop", "order_time":"2021-03-24 16:06:06", "pay_amount":"200.00", "real_pay":"180.00", "pay_time":"2021-03-24 16:10:06", "user_id":"0001", "user_name":"Alice", "area_id":"330106"} {"order_id":"202103251202020001", "order_channel":"miniAppShop", "order_time":"2021-03-25 12:02:02", "pay_amount":"60.00", "real_pay":"60.00", "pay_time":"2021-03-25 12:03:00", "user_id":"0002", "user_name":"Bob", "area_id":"330110"} {"order_id":"202103251505050001", "order_channel":"qqShop", "order_time":"2021-03-25 15:05:05", "pay_amount":"500.00", "real_pay":"400.00", "pay_time":"2021-03-25 15:10:00", "user_id":"0003", "user_name":"Cindy", "area_id":"330108"} 连接Kafka集群,读取kafka中sink topic中数据,结果参考如下: {"order_id":"202103241606060001","order_channel":"appShop","order_time":"2021-03-24 16:06:06","pay_amount":200.0,"real_pay":180.0,"pay_time":"2021-03-24 16:10:06","user_id":"0001","user_name":"Alice","area_id":"330106","area_province_name":"a1","area_city_name":"b1","area_county_name":"c2","area_street_name":"d2","region_name":"e1"} {"order_id":"202103251202020001","order_channel":"miniAppShop","order_time":"2021-03-25 12:02:02","pay_amount":60.0,"real_pay":60.0,"pay_time":"2021-03-25 12:03:00","user_id":"0002","user_name":"Bob","area_id":"330110","area_province_name":"a1","area_city_name":"b1","area_county_name":"c4","area_street_name":"d4","region_name":"e1"} {"order_id":"202103251505050001","order_channel":"qqShop","order_time":"2021-03-25 15:05:05","pay_amount":500.0,"real_pay":400.0,"pay_time":"2021-03-25 15:10:00","user_id":"0003","user_name":"Cindy","area_id":"330108","area_province_name":"a1","area_city_name":"b1","area_county_name":"c3","area_street_name":"d3","region_name":"e1"}
  • 注意事项 创建Flink OpenSource SQL作业时,在作业编辑界面的“运行参数”处,“Flink版本”需要选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。 认证用的username和password等硬编码到代码中或者明文存储都有很大的安全风险,建议使用DEW管理凭证。配置文件或者环境变量中密文存放,使用时解密,确保安全。Flink Opensource SQL使用DEW管理访问凭据 with参数中字段只能使用单引号,不能使用双引号。
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 create table dwsSource ( attr_name attr_type (',' attr_name attr_type)* ) with ( 'connector' = 'gaussdb', 'url' = '', 'table-name' = '', 'username' = '', 'password' = '' );
  • 前提条件 请务必确保您的账户下已在 数据仓库 服务(DWS)里创建了DWS集群。如何创建DWS集群,请参考《数据仓库服务管理指南》中“创建集群”章节。 请确保已创建DWS数据库表。 该场景作业需要运行在DLI的独享队列上,因此要与DWS集群建立增强型跨源连接,且用户可以根据实际所需设置相应安全组规则。 如何建立增强型跨源连接,请参考《 数据湖探索 用户指南》中增强型跨源连接章节。 如何设置安全组规则,请参见《虚拟私有云用户指南》中“安全组”章节。 Flink跨源开发场景中直接配置跨源认证信息存在密码泄露的风险,优先推荐您使用DLI提供的跨源认证。 跨源认证简介及操作方法请参考跨源认证简介。
  • 示例 该示例是从kafka数据源中读取数据,并以insert模式写入DWS结果表中,其具体步骤如下: 参考增强型跨源连接,在DLI上根据DWS和Kafka所在的虚拟私有云和子网分别创建相应的增强型跨源连接,并绑定所要使用的Flink弹性资源池。 设置DWS和Kafka的安全组,添加入向规则使其对Flink的队列网段放通。参考测试地址连通性分别根据DWS和Kafka的地址测试队列连通性。若能连通,则表示跨源已经绑定成功,否则表示未成功。 连接DWS数据库,在DWS中创建相应的表,表名为dws_order,SQL语句参考如下: create table public.dws_order( order_id VARCHAR, order_channel VARCHAR, order_time VARCHAR, pay_amount FLOAT8, real_pay FLOAT8, pay_time VARCHAR, user_id VARCHAR, user_name VARCHAR, area_id VARCHAR); 参考创建Flink OpenSource作业,创建flink opensource sql作业,输入以下作业运行脚本,提交运行作业。该作业脚本将Kafka作业数据源,将DWS作为结果表。 注意:创建作业时,在作业编辑界面的“运行参数”处,“Flink版本”选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。如下脚本中的加粗参数请根据实际环境修改。 CREATE TABLE kafkaSource ( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string ) WITH ( 'connector' = 'kafka', 'topic' = 'KafkaTopic', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'properties.group.id' = 'GroupId', 'scan.startup.mode' = 'latest-offset', 'format' = 'json' ); CREATE TABLE dwsSink ( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string ) WITH ( 'connector' = 'gaussdb', 'url' = 'jdbc:postgresql://DWSAddress:DWSPort/DWSdbName', 'table-name' = 'dws_order', 'driver' = 'org.postgresql.Driver', 'username' = 'DWSUserName', 'password' = 'DWSPassword', 'write.mode' = 'insert' ); insert into dwsSink select * from kafkaSource; 连接Kafka集群,向Kafka中输入以下测试数据。 {"order_id":"202103241000000001", "order_channel":"webShop", "order_time":"2021-03-24 10:00:00", "pay_amount":"100.00", "real_pay":"100.00", "pay_time":"2021-03-24 10:02:03", "user_id":"0001", "user_name":"Alice", "area_id":"330106"} 从DWS中使用如下SQL语句查看数据结果。 select * from dws_order 数据结果参考如下: 202103241000000001 webShop 2021-03-24 10:00:00 100.0 100.0 2021-03-24 10:02:03 0001 Alice 330106
  • 参数说明 表1 参数说明 参数 是否必选 默认值 类型 说明 connector 是 无 String 指定要使用的连接器,这里是'gaussdb' url 是 无 String jdbc连接地址 。 使用gsjdbc4驱动连接时,格式为:jdbc:postgresql://${ip}:${port}/${dbName} 。 使用gsjdbc200驱动连接时,格式为:jdbc:gaussdb://${ip}:${port}/${dbName}。 table-name 是 无 String 操作的表名。如果该DWS表在某schema下,则格式为:'schema\".\"具体表名',具体可以参考常见问题说明。 driver 否 org.postgresql.Driver String jdbc连接驱动,默认为: org.postgresql.Driver。 使用gsjdbc4驱动连接时,加载的数据库驱动类为:org.postgresql.Driver。 使用gsjdbc200驱动连接时,加载的数据库驱动类为:com.huawei.gauss200.jdbc.Driver。 username 否 无 String DWS数据库认证用户名,需要和'password'一起配置 password 否 无 String DWS数据库认证密码,需要和'username'一起配置 write.mode 否 无 String 数据写入模式,支持: copy, insert以及upsert三种。默认值为upsert。 该参数与'primary key'配合使用。 未配置'primary key'时,支持copy及insert两种模式追加写入。 配置'primary key',支持copy、upsert以及insert三种模式更新写入。 注意:由于dws不支持更新分布列,因而配置的更新主键必须包含dws表中定义的所有分布列。 sink.buffer-flush.max-rows 否 100 Integer 每次写入请求缓存的最大行数。 它能提升写入数据的性能,但是也可能增加延迟。 设置为 "0" 关闭此选项。 sink.buffer-flush.interval 否 1s Duration 刷新缓存的间隔,在这段时间内以异步线程刷新数据。 它能提升写入数据库的性能,但是也可能增加延迟。 设置为 "0" 关闭此选项。 注意:"sink.buffer-flush.max-size" 和 "sink.buffer-flush.max-rows" 同时设置为 "0",并设置刷新缓存的间隔,则以完整的异步处理方式刷新缓存。 格式为:{length value}{time unit label},如123ms, 321s,支持的时间单位包括: d,h,min,s,ms等,默认为ms。 sink.max-retries 否 3 Integer 写入最大重试次数。 write.escape-string-value 否 false Boolean 是否对string类型值进行转义。该参数仅用于write.mode为copy模式下。 key-by-before-sink 否 false Boolean 在sink算子前是否按指定的主键进行分区。 该参数旨在解决多并发写入的场景下且write.mode为upsert时,如果多个子任务中写入sink的一批数据具有不止一条相同的主键,并且主键相同的这些数据先后顺序不一致,就会导致两个子任务在向DWS根据主键获取行锁时发生互锁的问题。
  • 语法格式 DWS结果表中不允许指定所有属性为PRIMARY KEY。 1 2 3 4 5 6 7 8 9 10 11 12 13 create table dwsSink ( attr_name attr_type (',' attr_name attr_type)* (','PRIMARY KEY (attr_name, ...) NOT ENFORCED) ) with ( 'connector' = 'gaussdb', 'url' = '', 'table-name' = '', 'driver' = '', 'username' = '', 'password' = '' );
  • 前提条件 创建Flink OpenSource SQL作业时,在作业编辑界面的“运行参数”处,“Flink版本”需要选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。 请务必确保您的账户下已在数据仓库服务(DWS)里创建了DWS集群。如何创建DWS集群,请参考《数据仓库服务管理指南》中“创建集群”章节。 请确保已创建DWS数据库表。 该场景作业需要运行在DLI的独享队列上,因此要与DWS集群建立增强型跨源连接,且用户可以根据实际所需设置相应安全组规则。 如何建立增强型跨源连接,请参考《 数据湖 探索用户指南》中增强型跨源连接章节。 如何设置安全组规则,请参见《虚拟私有云用户指南》中“安全组”章节。 Flink跨源开发场景中直接配置跨源认证信息存在密码泄露的风险,优先推荐您使用DLI提供的跨源认证。 跨源认证简介及操作方法请参考跨源认证简介。
  • 功能描述 DLI将Flink作业的输出数据输出到数据仓库服务(DWS)中。DWS数据库内核兼容PostgreSQL,PostgreSQL数据库可存储更加复杂类型的数据,支持空间信息服务、多版本并发控制(MVCC)、高并发,适用场景包括位置应用、金融保险、互联网电商等。 数据仓库服务(Data Warehouse Service,简称DWS)是一种基于基础架构和平台的在线数据处理数据库,为用户提供海量数据挖掘和分析服务。DWS的更多信息,请参见《数据仓库服务管理指南》。 推荐使用DWS服务自研的DWS Connector。 DWS-Connector的使用方法请参考dws-connector-flink。
  • 注意事项 创建Flink OpenSource SQL作业时,在作业编辑界面的“运行参数”处,“Flink版本”需要选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。 认证用的username和password等硬编码到代码中或者明文存储都有很大的安全风险,建议使用DEW管理凭证。配置文件或者环境变量中密文存放,使用时解密,确保安全。Flink Opensource SQL使用DEW管理访问凭据 with参数中字段只能使用单引号,不能使用双引号。 若需要使用upsert模式,则必须在DWS结果表和该结果表连接的DWS表都定义主键。 若DWS在不同的schema中存在相同名称的表,则在flink opensource sql中需要指定相应的schema。 使用gsjdbc4驱动连接时,加载的数据库驱动类为:org.postgresql.Driver。该驱动为默认,创建表时可以不填该驱动参数。 例如,使用gsjdbc4驱动连接、upsert模式写入数据到DWS中。 1 2 3 4 5 6 7 8 9 10 11 12 13 create table dwsSink( car_id STRING, car_owner STRING, car_brand STRING, car_speed INT ) with ( 'connector' = 'gaussdb', 'url' = 'jdbc:postgresql://DwsAddress:DwsPort/DwsDatabase', 'table-name' = 'car_info', 'username' = 'DwsUserName', 'password' = 'DwsPasswrod', 'write.mode' = 'upsert' ); 使用gsjdbc200驱动连接时,加载的数据库驱动类为:com.huawei.gauss200.jdbc.Driver。 当DWS表test在名为ads_game_sdk_base的schema下时,可以参考如下样例创建DWS结果表。 create table dwsSink( car_id STRING, car_owner STRING, car_brand STRING, car_speed INT ) with ( 'connector' = 'gaussdb', 'table-name' = 'ads_game_sdk_base.test', 'driver' = 'com.huawei.gauss200.jdbc.Driver', 'url' = 'jdbc:gaussdb://DwsAddress:DwsPort/DwsDatabase', 'username' = 'DwsUserName', 'password' = 'DwsPasswrod', 'write.mode' = 'upsert' );
  • 常见问题 Q:作业运行失败,运行日志中有如下报错信息,应该怎么解决? java.io.IOException: unable to open JDBC writer ... Caused by: org.postgresql.util.PSQLException: The connection attempt failed. ... Caused by: java.net.SocketTimeoutException: connect timed out A:应考虑是跨源没有绑定,或者跨源没有绑定成功。 参考增强型跨源连接章节,重新配置跨源。参考DLI跨源连接DWS失败进行问题排查。
  • 参数说明 表1 参数说明 参数 是否必选 默认值 数据类型 说明 connector 是 无 String connector类型,需配置为'gaussdb'。 url 是 无 String jdbc连接地址。“url”参数中的ip地址请使用DWS的内网地址。 使用gsjdbc4驱动连接时,格式为:jdbc:postgresql://${ip}:${port}/${dbName} 。 使用gsjdbc200驱动连接时,格式为:jdbc:gaussdb://${ip}:${port}/${dbName}。 table-name 是 无 String 操作的DWS表名。如果该DWS表在某schema下,则具体可以参考如果该DWS表在某schema下的说明。 driver 否 org.postgresql.Driver String jdbc连接驱动,默认为: org.postgresql.Driver。 使用gsjdbc4驱动连接时,加载的数据库驱动类为:org.postgresql.Driver。 使用gsjdbc200驱动连接时,加载的数据库驱动类为:com.huawei.gauss200.jdbc.Driver。 username 否 无 String DWS数据库认证用户名,需要和'password'参数一起配置。 password 否 无 String DWS数据库认证密码,需要和'username'参数一起配置。 scan.partition.column 否 无 String 用于对输入进行分区的列名。 注意:该参数与scan.partition.lower-bound、scan.partition.upper-bound、 scan.partition.num参数必须同时配置或者同时都不配置。 scan.partition.lower-bound 否 无 Integer 第一个分区的最小值。 与scan.partition.column、scan.partition.upper-bound、 scan.partition.num必须同时配置或者同时都不配置。 scan.partition.upper-bound 否 无 Integer 最后一个分区的最大值。 与scan.partition.column、scan.partition.lower-bound、 scan.partition.num必须同时配置或者同时都不配置。 scan.partition.num 否 无 Integer 分区的个数。 与scan.partition.column、scan.partition.upper-bound、 scan.partition.upper-bound必须同时配置或者同时都不配置。 scan.fetch-size 否 0 Integer 每次从数据库拉取数据的行数。默认值为0,表示不限制。
  • 功能描述 DLI将Flink作业从数据仓库服务(DWS)中读取数据。DWS数据库内核兼容PostgreSQL,PostgreSQL数据库可存储更加复杂类型的数据,支持空间信息服务、多版本并发控制(MVCC)、高并发,适用场景包括位置应用、金融保险、互联网电商等。 数据仓库服务(Data Warehouse Service,简称DWS)是一种基于基础架构和平台的在线数据处理数据库,为用户提供海量数据挖掘和分析服务。DWS的更多信息,请参见《数据仓库服务管理指南》。 推荐使用DWS服务自研的DWS Connector。 DWS-Connector的使用方法请参考dws-connector-flink。
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 create table dwsSource ( attr_name attr_type (',' attr_name attr_type)* (','PRIMARY KEY (attr_name, ...) NOT ENFORCED) (',' watermark for rowtime_column_name as watermark-strategy_expression) ) with ( 'connector' = 'gaussdb', 'url' = '', 'table-name' = '', 'username' = '', 'password' = '' );
  • 前提条件 请务必确保您的账户下已在数据仓库服务(DWS)里创建了DWS集群。 如何创建DWS集群,请参考《数据仓库服务管理指南》中“创建集群”章节。 请确保已创建DWS数据库表。 该场景作业需要运行在DLI的独享队列上,因此要与DWS集群建立增强型跨源连接,且用户可以根据实际所需设置相应安全组规则。 如何建立增强型跨源连接,请参考《数据湖探索用户指南》中增强型跨源连接章节。 如何设置安全组规则,请参见《虚拟私有云用户指南》中“安全组”章节。 Flink跨源开发场景中直接配置跨源认证信息存在密码泄露的风险,优先推荐您使用DLI提供的跨源认证。 跨源认证简介及操作方法请参考跨源认证简介。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全