华为云用户手册

  • 准备软件 制作Windows操作系统私有镜像需准备的软件如表1所示。 表1 所需软件包 软件包名称 软件包说明 获取方式 Workspace_HDP_WindowsDesktop_Installer_x.x.x.iso Windows镜像制作工具。 点此获取镜像制作工具 点此获取镜像工具校验文件 操作系统ISO文件 Windows Server 2016数据中心版本 64位(中文、英文) Windows Server 2019数据中心版本 64位(中文、英文) 请根据用户需求类型从微软或者其他合法渠道获取正规操作系统ISO镜像文件。 须知: 操作系统的ISO镜像文件需为从正规渠道获取的官方纯净镜像。非官方镜像或私有定制镜像,对操作系统做了很多未知的修改,可能导致模板制作失败,或者与HDP不兼容导致无法使用,请勿使用此类镜像。 AnyBurn 光驱制作工具。 点此获取 VMTools驱动包 VMTools驱动 点此获取 应用程序 请用户根据个人需求准备应用软件(如办公、实时通讯等软件)。 自备 7z1900-x64.exe 7-Zip压缩软件,用于压缩/解压缩的软件包。 点此获取 CloudbaseInitSetup_xxx.msi 在使用镜像创建云服务器时,可自定义设定云服务器的hostname、hosts文件以及用户名密码。 根据Windows操作系统的不同位数,您需要下载不同版本的Cloudbase-Init工具安装包。 Cloudbase-Init分为稳定版本和Beta版本两种。 稳定版本获取路径: 64位:点此获取 32位:点此获取 Beta版本获取路径: 64位:点此获取 32位:点此获取 CloudResetPwdAgent.zip 云服务器的密码重置插件。 点此获取 GPU驱动 仅在制作GPU镜像时需要。 云应用支持RTX5000型号的直通卡。 RTX5000请参考如下方式获取驱动: 使用Web浏览器,登录英伟达官网,在驱动程序下载页面,根据操作系统(包括Windows驱动程序类型、语言)及GPU卡类型,配置参数,选择最新版本驱动进行下载。 例如,需要Windows Server 2019数据中心版的中文操作系统的桌面、使用RTX 5000显卡,则信息配置如下: 产品类型:NVIDIA RTX / Quadro 产品系列:Quadro RTX Series 产品家族:Quadro RTX 5000 操作系统:Windows Server 2019 语言:Chinese (Simplified) 外设驱动程序 请用户根据个人需求准备外设驱动程序。 自备 HW.SysAgent.Installer_64.msi HW.SysPrep.Installer_64.msi 云应用服务器发放和HDA升级时使用。 安装方式:双击安装。 点此获取HW.SysAgent 点此获取HW.SysAgent校验工具 点此获取HW.SysPrep 点此获取HW.SysPrep校验工具 WKSAppDhcpd_windows-amd64.msi 创建云应用服务器分配虚拟IP时使用。 安装方式:双击安装。 点此获取 点此获取校验工具 WKSRStorageAgent_windows-amd64.msi 使用 云存储 功能时使用。 安装方式:双击安装。 点此获取 点此获取校验工具 Sandboxie 通过Sandboxie软件,可以使应用以沙箱的方式运行,如需安装请参考如何安装沙箱软件?章节。 点此获取 父主题: 制作Windows私有镜像(基础镜像)
  • 什么是回源IP? 回源IP是WAF用来代理客户端请求服务器时用的源IP,在服务器看来,接入WAF后所有源IP都会变成WAF的回源IP,而真实的客户端地址会被加在HTTP头部的XFF字段中。 WAF的回源IP会因为扩容/新建集群而增加,对于一个客户的存量域名,一般回源IP会固定在2~4个集群的几个C类IP地址(192.0.0.0~223.255.255.255)上。 一般情况下,在没有灾备切换或其他调度切换集群的场景下,回源IP不会变。且WAF后台做集群切换时,会探测源站安全组配置,确保不会因为安全组配置导致业务整体故障。 图1 回源IP
  • 为什么需要放行回源IP段? WAF实例的IP数量有限,且源站服务器收到的所有请求都来自这些IP。在源站服务器上的安全软件很容易认为这些IP是恶意IP,有可能触发屏蔽WAF回源IP的操作。一旦WAF的回源IP被屏蔽,WAF的请求将无法得到源站的正常响应,因此,在接入WAF防护后,您需要在源站服务器的安全软件上设置放行所有WAF回源IP,不然可能会出现网站打不开或打开极其缓慢等情况。 网站接入WAF后,建议您卸载源站服务器上的其他安全软件,或者配置只允许来自WAF的访问请求访问您的源站,这样既可保证访问不受影响,又能防止源站IP暴露后被黑客直接攻击。
  • Web应用防火墙 最多可以添加多少条规则? 根据不同的版本不同的配置规则,可添加的规则条数不同。具体的版本规格说明如表1所示。 表1 适用的业务规格 业务规格 入门版 标准版 专业版 铂金版 独享模式 正常业务请求峰值 100 QPS业务请求 6,000 回源长连接(每域名) 2,000 QPS业务请求 6,000回源长连接(每域名) 5,000 QPS业务请求 6,000 回源长连接(每域名) 10,000 QPS业务请求 6,000 回源长连接(每域名) 以下数据为单实例规格: WAF实例规格选择WI-500,参考性能: HTTP业务:建议QPS 5,000;极限QPS 10,000 HTTPS业务:建议QPS 4,000;极限QPS 8,000 Websocket业务:支持最大并发连接5,000 最大回源长连接:60,000 WAF实例规格选择WI-100,参考性能: HTTP业务:建议QPS 1,000;极限QPS 2,000 HTTPS业务:建议QPS 800;极限QPS 1,600 Websocket业务:支持最大并发连接1,000 最大回源长连接:60,000 须知: 极限值为实验室测试值,高敏感业务请以实际业务测试数据为准。实际QPS与业务请求数据大小、自定义防护规则种类及数量相关 业务带宽阈值(源站服务器部署在华为云) 10Mbit/s 100Mbit/s 200Mbit/s 300Mbit/s WAF实例规格选择WI-500,参考性能: 吞吐量:500 Mbps WAF实例规格选择WI-100,参考性能: 吞吐量:100 Mbps 业务带宽阈值(源站服务器未部署在华为云) 10Mbit/s 30Mbit/s 50Mbit/s 100Mbit/s - 域名个数 10个(支持1个一级域名) 10个(支持1个一级域名) 50个(支持5个一级域名) 80个(支持8个一级域名) 2,000个(支持2,000个一级域名) 回源IP(单个防护域名支持的回源服务器IP个数) 10个 20个 50个 80个 - 支持的端口个数 说明: 云模式的专业版和铂金版支持定制非标准端口,您可以提交工单申请开通定制的非标准端口。 标准端口:2个(80,443) 标准端口:2个(80,443) 非标准端口:可任意使用WAF支持的端口列表中的端口,不限制数量。 标准端口:2个(80,443) 非标准端口:可任意使用WAF支持的端口列表中的端口,不限制数量。 标准端口:2个(80,443) 非标准端口:可任意使用WAF支持的端口列表中的端口,不限制数量。 标准端口:2个(80,443) 非标准端口:可任意使用WAF支持的端口列表中的端口,不限制数量。 CC攻击防护峰值 - 100,000QPS 200,000QPS 1,000,000QPS WAF实例规格选择WI-500,参考性能: 防护峰值:20,000QPS WAF实例规格选择WI-100,参考性能: 防护峰值:4,000QPS CC攻击防护规则 - 20条 50条 100条 100条 精准访问防护规则 - 20条 50条 100条 100条 引用表规则 - - 50条 100条 100条 IP黑白名单规则 - 1000条 2000条 5000条 1000条 地理位置封禁规则 - - 50条 100条 100条 网页防篡改规则 - 20条 50条 100条 100条 JS脚本反爬虫规则 - - 50条 100条 100条 防敏感信息泄露 - - 50条 100条 100条 全局白名单规则 1000条 1000条 1000条 1000条 1000条 隐私屏蔽规则 - 20条 50条 100条 100条 安全报告模板 5个 5个 10个 20个 20个 父主题: 变更规格类
  • WAF转发和Nginx转发有什么区别? WAF转发和Nginx转发的主要区别为Nginx是直接转发访问请求到源站服务器,而WAF会先检测并过滤恶意流量,再将过滤后的访问请求转发到源站服务器,详细说明如下: WAF转发 网站接入WAF后,所有访问请求将先经过WAF,WAF通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、CC攻击、恶意爬虫扫描、跨站请求伪造等攻击流量后,将正常流量返回给源站,从而确保Web应用安全、稳定、可用。 图1 防护原理 Nginx转发 即反向代理(Reverse Proxy)方式转发。反向代理服务器接受客户端访问请求后,直接将访问请求转发给Web服务器,并将从Web服务器上获取的结果返回给客户端。反向代理服务器安装在网站机房,代理Web服务器接收访问请求,并对访问请求进行转发。 反向代理可以防止外网对内网服务器的恶性攻击,缓存以减少内网服务器压力,还可以实现访问安全控制和负载均衡。 图2 Nginx转发原理 父主题: 功能说明类
  • JS脚本反爬虫的检测机制是怎么样的? JS脚本检测流程如图1所示,其中,①和②称为“js挑战”,③称为“js验证”。 图1 JS脚本检测流程说明 开启JS脚本反爬虫后,当客户端发送请求时,WAF会返回一段JavaScript代码到客户端。 如果客户端是正常浏览器访问,就可以触发这段JavaScript代码再发送一次请求到WAF,即WAF完成js验证,并将该请求转发给源站。 如果客户端是爬虫访问,就无法触发这段JavaScript代码再发送一次请求到WAF,即WAF无法完成js验证。 如果客户端爬虫伪造了WAF的认证请求,发送到WAF时,WAF将拦截该请求,js验证失败。 通过统计“js挑战”和“js验证”,就可以汇总出JS脚本反爬虫防御的请求次数。例如,图2中JS脚本反爬虫共记录了18次事件,其中,“js挑战”(WAF返回JS代码)为16次,“js验证”(WAF完成JS验证)为2次,“其他”(即爬虫伪造WAF认证请求)为0次。 图2 JS脚本反爬虫防护数据 网站反爬虫“js挑战”的防护动作为“仅记录”,“js验证”的防护动作为人机验证(即js验证失败后,弹出验证码提示,输入正确的验证码,请求将不受访问限制)。 父主题: 网站反爬虫类
  • 修订记录 发布日期 修订记录 2024-04-08 第六次公测发布。 新增: AR地图服务适用的场地条件有哪些 在AR地图数据采集阶段,怎样从激光和全景两种方案中选择 删除计费相关内容,该部分内容在计费说明手册中介绍。 2023-12-28 第五次公测发布。 新增: 实景三维生产服务支持哪些建模类型和任务类型 刺点是什么 2023-11-17 第四次公测发布。 新增: 单租户最多可以创建多少个任务 影像导入有哪几种方式 2023-04-27 第三次公测发布。 什么是KooMap 云地图服务 :增加AR地图运行服务功能的介绍。 KooMap服务可应用于哪些场景:增加AR地图运行服务的使用场景介绍。 KooMap服务是否支持企业内网私有化部署:增加支持企业内网私有化部署的介绍。 KooMap服务支持哪些调用方式:增加通过SDK访问AR地图运行服务的介绍。 如何退订KooMap服务:增加退订AR地图运行服务的介绍。 KooMap服务与其他服务的关系:增加KooMap AR地图运行服务基础版与其他服务关系的介绍。 2023-03-10 第二次公测发布。 如何退订KooMap服务:增加账号退租的介绍。 卫星影像生产服务有哪些功能:增加色彩增强与精纠正L3处理功能的介绍。 2022-12-27 第一次公测发布。
  • 配置步骤 登录防火墙设备的命令行配置界面。 查看防火墙版本信息。 display version 17:20:502017/03/09 Huawei Versatile Security Platform Software Software Version: USG6600 V100R001C30SPC300(VRP (R) Software, Version 5.30) 创建ACL并绑定到对应的vpn-instance。 acl number 3065 vpn-instance vpn64 rule 1 permit ip source 192.168.3.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 rule 2 permit ip source 192.168.3.0 0.0.0.255 destination 192.168.2.0 0.0.0.255 rule 3 permit ip source 192.168.4.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 rule 4 permit ip source 192.168.4.0 0.0.0.255 destination 192.168.2.0 0.0.0.255 q 创建ike proposal。 ike proposal 64 dh group5 authentication-algorithm sha1 integrity-algorithm hmac-sha2-256 sa duration 3600 q 创建ike peer,并引用之前创建的ike proposal,其中对端IP地址是1.1.1.1。 ike peer vpnikepeer_64 pre-shared-key ******** (********为您输入的预共享密码) ike-proposal 64 undo version 2 remote-address vpn-instance vpn64 1.1.1.1 sa binding vpn-instance vpn64 q 创建IPsec协议。 IPsec proposal IPsecpro64 encapsulation-mode tunnel esp authentication-algorithm sha1 q 创建IPsec策略,并引用ike policy和IPsec proposal。 IPsec policy vpnIPsec64 1 isakmp security acl 3065 pfs dh-group5 ike-peer vpnikepeer_64 proposal IPsecpro64 local-address xx.xx.xx.xx q 将IPsec策略应用到相应的子接口上去。 interface GigabitEthernet0/0/2.64 IPsec policy vpnIPsec64 q 测试连通性。 在上述配置完成后,我们可以利用您在云中的主机和您数据中心的主机进行连通性测试,如下图所示:
  • 操作步骤 下载Easy-RSA。 下载后请解压缩软件压缩包。 打开Easy-RSA shell。 打开命令行窗口,切换到软件所在目录,执行“.\EasyRSA-Start.bat”命令。 图1 打开Easy-RSA shell 初始化PKI环境。 执行“./easyrsa init-pki”命令,生成PKI,自动创建名为“pki”的文件夹。 (可选)配置变量参数。 默认按配置模板“vars.example”中描述的参数值进行配置。如需自定义参数值,先将“vars.example”复制到“pki”文件夹下并重命名为“vars”,再按需设置参数值。 图2 配置变量参数 生成CA证书。 执行“ ./easyrsa build-ca nopass”命令生成CA证书,存放在“pki”文件夹中。 生成服务端证书和私钥。 执行 “./easyrsa build-server-full filename_base nopass”命令生成服务端证书和私钥。 此命令中,“filename_base”为证书的CN,请根据实际填写。 “filename_base”必须是域名格式,否则无法正常托管到 云证书管理服务 ,示例如下: ./easyrsa build-server-full p2cvpn.server nopass 生成客户端证书和私钥。 执行“ ./easyrsa build-client-full filename_base nopass”命令生成客户端证书和私钥。 查看服务端、客户端证书和私钥。 生成的服务端和客户端证书默认存放在“issued”文件夹中,生成的服务端和客户端的私钥默认存放在“private”文件夹中。 图3 查看证书和私钥
  • 操作步骤 下载Easy-RSA。 下载后请解压缩软件压缩包。 打开Easy-RSA shell。 打开命令行窗口,切换到软件所在目录,执行“.\EasyRSA-Start.bat”命令。 图1 打开Easy-RSA shell 初始化PKI环境。 执行“./easyrsa init-pki”命令,生成PKI,自动创建名为“pki”的文件夹。 (可选)配置变量参数。 默认按配置模板“vars.example”中描述的参数值进行配置。如需自定义参数值,先将“vars.example”复制到“pki”文件夹下并重命名为“vars”,再按需设置参数值。 图2 配置变量参数 生成CA证书。 执行“ ./easyrsa build-ca nopass”命令生成CA证书,存放在“pki”文件夹中。 生成服务端证书和私钥。 执行 “./easyrsa build-server-full filename_base nopass”命令生成服务端证书和私钥。 此命令中,“filename_base”为证书的CN,请根据实际填写。 “filename_base”必须是域名格式,否则无法正常托管到 云证书管理 服务,示例如下: ./easyrsa build-server-full p2cvpn.server nopass 生成客户端证书和私钥。 执行“ ./easyrsa build-client-full filename_base nopass”命令生成客户端证书和私钥。 查看服务端、客户端证书和私钥。 生成的服务端和客户端证书默认存放在“issued”文件夹中,生成的服务端和客户端的私钥默认存放在“private”文件夹中。 图3 查看证书和私钥
  • 示例6 通过外表读取OBS上的json数据。 OBS上有如下json文件,json对象中存在嵌套、数组,部分对象的某些字段缺失,部分对象name重复。 {"A" : "simple1", "B" : {"C" : "nesting1"}, "D" : ["array", 2, {"E" : "complicated"}]} {"A" : "simple2", "D" : ["array", 2, {"E" : "complicated"}]} {"A" : "simple3", "B" : {"C" : "nesting3"}, "D" : ["array", 2, {"E" : "complicated3"}]} {"B" : {"C" : "nesting4"},"A" : "simple4", "D" : ["array", 2, {"E" : "complicated4"}]} {"A" : "simple5", "B" : {"C" : "nesting5"}, "D" : ["array", 2, {"E" : "complicated5"}]} 创建obs_server,对应的foreign data wrapper为DFS_FDW。 1 2 3 4 5 6 CREATE SERVER obs_server FOREIGN DATA WRAPPER DFS_FDW OPTIONS ( ADDRESS 'obs.xxx.xxx.com', AC CES S_KEY 'xxxxxxxxx', SECRET_ACCESS_KEY 'yyyyyyyyyyyyy', TYPE 'OBS' ); 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 ADDRESS是OBS的终端节点(Endpoint),请根据实际替换。也是使用region参数,通过指定regionCode在region_map文件中查找对应的域名。 ACCESS_KEY和SECRET_ACCESS_KEY 是云账号体系访问密钥。请根据实际替换。 TYPE表示创建的Server为OBS Server。请保持OBS取值不变。 创建OBS外表json_f ,定义字段名,以d#2_e为例,从命名可以看出该字段是数组d的第二个元素里嵌套的e对象。表关联的OBS服务器为obs_server。foldername为外表中数据源文件目录,即表数据目录在OBS上对应的文件目录。 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 1 2 3 4 5 6 7 8 9 10 11 CREATE FOREIGN TABLE json_f ( a VARCHAR(10), b_c TEXT, d#1 INTEGER, d#2_e VARCHAR(30) )SERVER obs_server OPTIONS ( foldername '/xxx/xxx/', format 'json', encoding 'utf8', force_mapping 'true' )distribute by roundrobin; 查询外表json_f。由于容错性参数force_mapping默认打开,json对象缺失的字段会填NULL;json对象name重复的以最后一次出现的name为准。 1 2 3 4 5 6 7 8 9 SELECT * FROM json_f; a | b_c | d#1 | d#2_e ---------+----------+-----+-------------- simple1 | nesting1 | 2 | complicated1 simple2 | | 2 | complicated2 simple3 | nesting3 | 2 | complicated3 simple4 | nesting4 | 2 | complicated4 repeat | nesting5 | 2 | complicated5 (5 rows)
  • 示例7 通过外表读取 DLI 多版本外表。DLI多版本外表示例仅8.1.1及以上版本支持。 创建dli_server,对应的foreign data wrapper为DFS_FDW。 1 2 3 4 5 6 7 8 9 CREATE SERVER dli_server FOREIGN DATA WRAPPER DFS_FDW OPTIONS ( ADDRESS 'obs.xxx.xxx.com', ACCESS_KEY 'xxxxxxxxx', SECRET_ACCESS_KEY 'yyyyyyyyyyyyy', TYPE 'DLI', DLI_ADDRESS 'dli.xxx.xxx.com', DLI_ACCESS_KEY 'xxxxxxxxx', DLI_SECRET_ACCESS_KEY 'yyyyyyyyyyyyy' ); 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 ADDRESS是OBS的终端节点(Endpoint)。DLI_ADDRESS是DLI的终端节点(Endpoint),请根据实际替换。 ACCESS_KEY和SECRET_ACCESS_KEY 是云账号体系访问OBS服务的密钥。请根据实际替换。 DLI_ACCESS_KEY和DLI_SECRET_ACCESS_KEY是云账号体系访问DLI服务的密钥。请根据实际替换。 TYPE表示创建的Server为DLI Server。请保持DLI取值不变。 创建访问DLI多版本的OBS外表customer_address,不包含分区列,表关联的DLI服务器为dli_server。其中project_id为xxxxxxxxxxxxxxx,dli上的database_name为database123,需要访问的table_name为table456,根据实际替换。 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 CREATE FOREIGN TABLE customer_address ( ca_address_sk integer not null, ca_address_id char(16) not null, ca_street_number char(10) , ca_street_name varchar(60) , ca_street_type char(15) , ca_suite_number char(10) , ca_city varchar(60) , ca_county varchar(30) , ca_state char(2) , ca_zip char(10) , ca_country varchar(20) , ca_gmt_offset decimal(36,33) , ca_location_type char(20) ) SERVER dli_server OPTIONS ( FORMAT 'ORC', ENCODING 'utf8', DLI_PROJECT_ID 'xxxxxxxxxxxxxxx', DLI_DATABASE_NAME 'database123', DLI_TABLE_NAME 'table456' ) DISTRIBUTE BY roundrobin; 通过外表查询DLI多版本表的数据。 1 2 3 4 5 SELECT COUNT(*) FROM customer_address; count ------- 20 (1 row)
  • 示例4(仅云原生3.0版本支持) 通过partsupp外表往obs文件系统读取数据。 创建obs server。 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 1 2 3 4 5 6 CREATE SERVER obs_srv FOREIGN DATA WRAPPER dfs_fdw OPTIONS ( address 'xxx', type 'obs', access_key 'xxx', secret_access_key 'xxx' ); 创建obs外表partsupp,使用disk cache中的冷缓存。 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE FOREIGN TABLE PARTSUPP ( PS_PARTKEY BIGINT NOT NULL, PS_SUPPKEY BIGINT NOT NULL, PS_AVAILQTY BIGINT NOT NULL, PS_SUPPLYCOST DECIMAL(15,2) NOT NULL, PS_COMMENT VARCHAR(199) NOT NULL ) SERVER obs_srv options ( encoding 'utf-8', format 'parquet', foldername 'xxx', cache_policy 'NONE' ) READ ONLY DISTRIBUTE BY ROUNDROBIN; 通过外表partsupp往obs上读取数据。 1 SELECT * FROM PARTSUPP;
  • 示例5 关于包含信息约束(Informational Constraint)HDFS外表的相关操作。 创建含有信息约束(Informational Constraint)的HDFS外表。 1 2 3 4 5 6 7 8 9 10 CREATE FOREIGN TABLE ft_region ( R_REGIONKEY int, R_NAME TEXT, R_COMMENT TEXT , primary key (R_REGIONKEY) not enforced) SERVER hdfs_server OPTIONS(format 'orc', encoding 'utf8', foldername '/user/hive/warehouse/mppdb.db/region_orc11_64stripe') DISTRIBUTE BY roundrobin; 查看region表是否有信息约束索引: 1 2 3 4 5 6 7 8 9 10 11 SELECT relname,relhasindex FROM pg_class WHERE oid='ft_region'::regclass; relname | relhasindex ------------------------+------------- ft_region | f (1 row) SELECT conname, contype, consoft, conopt, conindid, conkey FROM pg_constraint WHERE conname ='ft_region_pkey'; conname | contype | consoft | conopt | conindid | conkey ----------------+---------+---------+--------+----------+-------- ft_region_pkey | p | t | t | 0 | {1} (1 row) 删除信息约束: 1 2 3 4 5 6 ALTER FOREIGN TABLE ft_region DROP CONSTRAINT ft_region_pkey RESTRICT; SELECT conname, contype, consoft, conindid, conkey FROM pg_constraint WHERE conname ='ft_region_pkey'; conname | contype | consoft | conindid | conkey ---------+---------+---------+----------+-------- (0 rows) 添加一个唯一信息约束: 1 ALTER FOREIGN TABLE ft_region ADD CONSTRAINT constr_unique UNIQUE(R_REGIONKEY) NOT ENFORCED; 删除唯一信息约束: 1 2 3 4 5 6 ALTER FOREIGN TABLE ft_region DROP CONSTRAINT constr_unique RESTRICT; SELECT conname, contype, consoft, conindid, conkey FROM pg_constraint WHERE conname ='constr_unique'; conname | contype | consoft | conindid | conkey ---------+---------+---------+----------+-------- (0 rows) 添加一个唯一信息约束: 1 2 3 4 5 6 7 ALTER FOREIGN TABLE ft_region ADD CONSTRAINT constr_unique UNIQUE(R_REGIONKEY) NOT ENFORCED disable query optimization; SELECT relname,relhasindex FROM pg_class WHERE oid='ft_region'::regclass; relname | relhasindex ------------------------+------------- ft_region | f (1 row) 删除唯一信息约束: 1 ALTER FOREIGN TABLE ft_region DROP CONSTRAINT constr_unique CASCADE;
  • 示例1 在HDFS通过HIVE导入TPC-H benchmark测试数据表part表及region表。part表的文件路径为/user/hive/warehouse/partition.db/part_4,region表的文件路径为/user/hive/warehouse/mppdb.db/region_orc11_64stripe/。 创建HDFS_Server,对应的foreign data wrapper为HDFS_FDW或者DFS_FDW。 1 CREATE SERVER hdfs_server FOREIGN DATA WRAPPER HDFS_FDW OPTIONS (address '10.10.0.100:25000,10.10.0.101:25000',hdfscfgpath '/opt/hadoop_client/HDFS/hadoop/etc/hadoop',type'HDFS'); 在可选项options里面写入了HDFS集群对应的NameNode的IP地址及端口号。具体端口号请在 MRS -HDFS服务配置中搜索参数“dfs.namenode.rpc.port”查看。本示例假设端口号为25000。 ‘10.10.0.100:25000,10.10.0.101:25000’中列出了两组NameNode的地址及端口号,分别表示HDFS的主NameNode及备NameNode,这里推荐使用该种主备方式填写。两组参量中间使用“,”进行分割。 创建HDFS外表。表关联的HDFS server为hdfs_server,表ft_region对应的HDFS服务器上的文件格式为‘orc’,在HDFS文件系统上对应的文件目录为'/user/hive/warehouse/mppdb.db/region_orc11_64stripe/'。 创建不包含分区列的HDFS外表: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE FOREIGN TABLE ft_region ( R_REGIONKEY INT4, R_NAME TEXT, R_COMMENT TEXT ) SERVER hdfs_server OPTIONS ( FORMAT 'orc', encoding 'utf8', FOLDERNAME '/user/hive/warehouse/mppdb.db/region_orc11_64stripe/' ) DISTRIBUTE BY roundrobin; 创建包含分区列的HDFS外表: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 CREATE FOREIGN TABLE ft_part ( p_partkey int, p_name text, p_mfgr text, p_brand text, p_type text, p_size int, p_container text, p_retailprice float8, p_comment text ) SERVER hdfs_server OPTIONS ( FORMAT 'orc', encoding 'utf8', FOLDERNAME '/user/hive/warehouse/partition.db/part_4' ) DISTRIBUTE BY roundrobin PARTITION BY (p_mfgr, p_brand) AUTOMAPPED; GaussDB (DWS)支持2种文件指定方式:通过关键字filenames指定和通过foldername指定。推荐通过使用foldername进行指定。关键字distribute指定了表ft_region的存储分布方式。 查看创建的外表: 1 2 3 4 5 6 7 8 9 10 11 SELECT * FROM pg_foreign_table WHERE ftrelid='ft_region'::regclass; ftrelid | ftserver | ftwriteonly | ftoptions ---------+----------+-------------+------------------------------------------------------------------------------ 16510 | 16509 | f | {format=orc,foldername=/user/hive/warehouse/mppdb.db/region_orc11_64stripe/} (1 row) select * from pg_foreign_table where ftrelid='ft_part'::regclass; ftrelid | ftserver | ftwriteonly | ftoptions ---------+----------+-------------+------------------------------------------------------------------ 16513 | 16509 | f | {format=orc,foldername=/user/hive/warehouse/partition.db/part_4} (1 row)
  • 示例3(仅云原生3.0版本支持) 通过HDFS多级分区只写外表将TPC-H benchmark测试数据表region表中的数据导出HDFS文件系统的/user/hive/warehouse/mppdb.db/region_orc/目录下。 创建HDFS外表,对应的foreign data wrapper为HDFS_FDW或者DFS_FDW,同示例1。 创建HDFS多级分区只写外表。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE FOREIGN TABLE ft_wo_region_partition ( R_REGIONKEY INT4, R_NAME TEXT, R_COMMENT TEXT ) SERVER hdfs_server OPTIONS ( FORMAT 'orc', encoding 'utf8', FOLDERNAME '/user/hive/warehouse/mppdb.db/region_orc/' ) WRITE ONLY PARTITION BY (R_REGIONKEY, R_NAME); 通过只写外表向HDFS文件系统写入数据。 1 INSERT INTO ft_wo_region_partition SELECT * FROM region;
  • 信息约束(Informational Constraint) 在GaussDB(DWS)中,数据的约束完全由使用者保证,数据源数据能够严格遵守某种信息约束条件,能够加速对已经具有这种约束特征数据的查询。目前外表不支持索引,所以采取使用Informational Constraint信息优化Plan,提搞查询性能。 建立外表信息约束的约束条件: 只有用户保证表中的其中一列的非空值具有唯一性时才可以建立Informational Constraint,否则查询结果将与期望值不同。 GaussDB(DWS)的Informational Constraint只支持PRIMARY KEY和UNIQUE两种约束。 GaussDB(DWS)的Informational Constraint支持NOT ENFORCED属性,不支持ENFORCED属性。 一个表上的多列可以分别建立UNIQUE类型的Informational Constraint,但是PRIMARY KEY一个表中只能建立一个。 一个表的一列上可以建立多个Informational Constraint(由于一个列上有多个约束和一个的作用一致,所以不建议一个列上建立多个Informational Constraint),但是Primary Key类型只能建立一个。 不支持COMMENT。 不支持多列组合约束。 ORC格式只写外表不支持同一个集群不同CN向同一外表并发导出。而云原生3.0版本下,ORC和PARQUET格式只写外表支持同一个集群不同CN向同一外表并发导出。 ORC格式只写外表的目录,只能用于GaussDB(DWS)的单个外表的导出目录,不能用于多个外表,并且其他组件不能向此目录写入其他文件。云原生3.0版本下,ORC格式和PARQUET只写外表的目录,能用于GaussDB(DWS)的多个定义相同的外表的导出目录,并且支持Hive组件向此目录写入和外表定义相同的文件。
  • 示例2 通过HDFS只写外表将TPC-H benchmark测试数据表region表中的数据导出HDFS文件系统的/user/hive/warehouse/mppdb.db/region_orc/目录下 创建HDFS外表,对应的foreign data wrapper为HDFS_FDW或者DFS_FDW,同示例一。 创建HDFS只写外表。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CREATE FOREIGN TABLE ft_wo_region ( R_REGIONKEY INT4, R_NAME TEXT, R_COMMENT TEXT ) SERVER hdfs_server OPTIONS ( FORMAT 'orc', encoding 'utf8', FOLDERNAME '/user/hive/warehouse/mppdb.db/region_orc/' ) WRITE ONLY; 通过只写外表向HDFS文件系统写入数据。 1 INSERT INTO ft_wo_region SELECT * FROM region;
  • 语法格式 创建外表。 1 2 3 4 5 6 7 8 9 10 11 12 CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ { column_name type_name [ { [CONSTRAINT constraint_name] NULL | [CONSTRAINT constraint_name] NOT NULL | column_constraint [...]} ] | table_constraint [, ...]} [, ...] ] ) SERVER server_name OPTIONS ( { option_name ' value ' } [, ...] ) [ {WRITE ONLY | READ ONLY | READ WRITE}] DISTRIBUTE BY {ROUNDROBIN | REPLICATION} [ PARTITION BY ( column_name ) [ AUTOMAPPED ] ] ; 其中column_constraint为: 1 2 3 [CONSTRAINT constraint_name] {PRIMARY KEY | UNIQUE} [NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED] 其中table_constraint为: 1 2 3 [CONSTRAINT constraint_name] {PRIMARY KEY | UNIQUE} (column_name) [NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED]
  • 注意事项 HDFS外表与OBS外表分为只读外表,只写外表和读写外表(仅云原生3.0版本支持),只读外表用于查询操作,只写外表可以将GaussDB(DWS)中的数据导出到分布式文件系统中,读写外表兼有前两者功能。 此方式支持ORC、TEXT、 CS V、CARBONDATA、PARQUET和JSON格式的导入查询,以及ORC、PARQUET(仅云原生3.0版本支持)、CSV和TEXT格式的导出。 该方式需要用户手动创建外部服务器,具体请参见CREATE SERVER。 若手动创建Server时指定foreign data wrapper为HDFS_FDW或者DFS_FDW,创建只读外表时需DISTRIBUTE BY子句指定分布方式。
  • 功能描述 在当前数据库创建一个HDFS或OBS外表,用来访问存储在HDFS或者OBS分布式集群文件系统上的结构化数据。也可以导出ORC格式数据到HDFS或者OBS上。 数据存储在OBS:数据存储和计算分离,集群存储成本低,存储量不受限制,并且集群可以随时删除,但计算性能取决于OBS访问性能,相对HDFS有所下降,建议在数据计算不频繁场景下使用。 数据存储在HDFS:数据存储和计算不分离,集群成本较高,计算性能高,但存储量受磁盘空间限制,删除集群前需将数据导出保存,建议在数据计算频繁场景下使用。 实时数仓(单机部署)暂不支持HDFS外表。 实时数仓(单机部署)8.2.0及以上集群版本支持OBS外表,但需要指定Server的foreign data wrapper为DFS_FDW。 以下描述的读写外表,仅云原生3.0版本支持。
  • 参数概览 创建外表语法提供了多个参数,常用参数分类如下。 必需参数 table_name column_name type_name SERVER gsmpp_server access_key secret_access_key OPTIONS参数 外表的数据源位置参数 location 临时安全凭证参数(8.2.0及以上集群版本支持) security_token 数据格式参数 format header(仅支持CSV格式) delimiter quote(仅支持CSV格式) escape (仅支持CSV格式) null noescaping(仅支持TEXT格式) encoding eol bom(仅支持CSV格式) 容错性参数 fill_missing_fields ignore_extra_data compatible_illegal_chars PER NODE REJECT LIMIT 'val... LOG INTO error_table_name WITH error_table_name 性能优化参数 file_split_threshold(仅支持TEXT格式)
  • 示例 创建外表OBS_ft,用来以txt格式导入OBS上指定的对象数据到row_tbl表中: 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 DROP FOREIGN TABLE IF EXISTS OBS_ft; NOTICE: foreign table "obs_ft" does not exist, skipping DROP FOREIGN TABLE CREATE FOREIGN TABLE OBS_ft( a int, b int)SERVER gsmpp_server OPTIONS (location 'obs://gaussdbcheck/obs_ddl/test_case_data/txt_obs_informatonal_test001',format 'text',encoding 'utf8',chunksize '32', encrypt 'on',ACCESS_KEY 'access_key_value_to_be_replaced',SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced',delimiter E'\x08') read only; CREATE FOREIGN TABLE DROP TABLE row_tbl; DROP TABLE CREATE TABLE row_tbl( a int, b int); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE INSERT INTO row_tbl select * from OBS_ft; INSERT 0 3
  • 语法格式 1 2 3 4 5 6 7 8 CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( { column_name type_name [column_constraint ] | LIKE source_table | table_constraint [, ...]} [, ...] ) SERVER server_name OPTIONS ( { option_name ' value ' } [, ...] ) [ { WRITE ONLY | READ ONLY }] [ WITH error_table_name | LOG INTO error_table_name] [PER NODE REJECT LIMIT 'value'] ;
  • 注意事项 这种方式仅支持TEXT和CSV格式,并且需要额外指定OBS连接信息。对于OBS上的ORC、CARBONDATA、PARQUET等格式数据,不适用这种方式,请参考CREATE FOREIGN TABLE (SQL on OBS or Hadoop)。 创建的外表分为只读外表(READ ONLY)和只写外表(WRITE ONLY)。缺省为只读外表。数据导入集群时,请将外表设为READ ONLY;导出时,请设为WRITE ONLY。 外表由命令执行者所有; OBS外表不需要显式指定分布方式,默认支持ROUNDROBIN分布方式; 所创建外表只对信息约束(Informational Constraint)约束生效。 OBS导入导出数据时,不支持中文路径。
  • 示例 创建外表OBS_ft,用来以txt格式导入OBS上指定的对象数据到row_tbl表中: 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 DROP FOREIGN TABLE IF EXISTS OBS_ft; NOTICE: foreign table "obs_ft" does not exist, skipping DROP FOREIGN TABLE CREATE FOREIGN TABLE OBS_ft( a int, b int)SERVER gsmpp_server OPTIONS (location 'obs://gaussdbcheck/obs_ddl/test_case_data/txt_obs_informatonal_test001',format 'text',encoding 'utf8',chunksize '32', encrypt 'on',ACCESS_KEY 'access_key_value_to_be_replaced',SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced',delimiter E'\x08') read only; CREATE FOREIGN TABLE DROP TABLE row_tbl; DROP TABLE CREATE TABLE row_tbl( a int, b int); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE INSERT INTO row_tbl select * from OBS_ft; INSERT 0 3
  • 参数概览 创建外表语法提供了多个参数,常用参数分类如下。 必需参数 table_name column_name type_name SERVER gsmpp_server access_key secret_access_key OPTIONS参数 外表的数据源位置参数 location 临时安全凭证参数(8.2.0及以上集群版本支持) security_token 数据格式参数 format header(仅支持CSV格式) delimiter quote(仅支持CSV格式) escape (仅支持CSV格式) null noescaping(仅支持TEXT格式) encoding eol bom(仅支持CSV格式) 容错性参数 fill_missing_fields ignore_extra_data compatible_illegal_chars obs_null_file PER NODE REJECT LIMIT 'val... LOG INTO error_table_name WITH error_table_name 性能优化参数 file_split_threshold(仅支持TEXT格式)
  • 注意事项 这种方式仅支持TEXT和CSV格式,并且需要额外指定OBS连接信息。对于OBS上的ORC、CARBONDATA、PARQUET等格式数据,不适用这种方式,请参考CREATE FOREIGN TABLE (SQL on OBS or Hadoop)。 创建的外表分为只读外表(READ ONLY)和只写外表(WRITE ONLY)。缺省为只读外表。数据导入集群时,请将外表设为READ ONLY;导出时,请设为WRITE ONLY。 外表由命令执行者所有; OBS外表不需要显式指定分布方式,默认支持ROUNDROBIN分布方式; 所创建外表只对信息约束(Informational Constraint)约束生效。 OBS导入导出数据时,不支持中文路径。
  • 语法格式 1 2 3 4 5 6 7 8 CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( { column_name type_name [column_constraint ] | LIKE source_table | table_constraint [, ...]} [, ...] ) SERVER server_name OPTIONS ( { option_name ' value ' } [, ...] ) [ { WRITE ONLY | READ ONLY }] [ WITH error_table_name | LOG INTO error_table_name] [PER NODE REJECT LIMIT 'value'] ;
  • 告警规则后续操作 支持对单个告警规则进行如下操作: 修改告警规则:单击告警规则所在行后的按钮,根据表1修改具体参数,支持修改规则名称,修改完成后,鼠标悬浮在规则名称上,显示修改后的规则名称和原始名称。不支持修改首次创建的原始名称。 开启告警规则:单击告警规则所在行后的按钮(关闭告警规则后,才会显示开启按钮),开启告警规则。 关闭告警规则:单击告警规则所在行后的按钮(开启告警规则后,才会显示关闭按钮),关闭告警规则。 临时关闭告警规则:单击告警规则所在行后的按钮,设置临时关闭的截止时间。 复制告警规则:单击告警规则所在行后的按钮,复制告警规则。 删除告警规则:单击告警规则所在行后的按钮,单击“确定”删除该规则。 勾选多个告警规则后,支持对多个告警进行批量操作:开启、关闭、临时关闭、取消临时关闭、告警恢复开启、告警恢复关闭、删除、导出。
共100000条