华为云用户手册

  • 安装和启动GDS 参见工具下载下载GDS客户端(与gsql客户端在一个包)。 将GDS工具包上传至E CS 的/opt目录中,本例以上传Euler Kunpeng版本的工具包为例。 在工具包所在目录下,解压工具包。 cd /opt/ unzip dws_client_8.1.x_euler_kunpeng_x64.zip 创建用户gds_user及其所属的用户组gdsgrp。此用户用于启动GDS,且需要拥有读取数据源文件目录的权限。 groupadd gdsgrp useradd -g gdsgrp gds_user 修改工具包以及数据源文件目录属主为创建的用户gds_user及其所属的用户组gdsgrp。 chown -R gds_user:gdsgrp /opt/ chown -R gds_user:gdsgrp /data1 chown -R gds_user:gdsgrp /data2 切换到gds_user用户。 su - gds_user 执行环境依赖脚本(仅8.1.x版本适用)。 cd /opt/gds/bin source gds_env 启动GDS。 /opt/gds/bin/gds -d /data1/script/tpch-kit/tpch1000X -p 192.168.0.90:5000 -H 192.168.0.0/24 -l /opt/gds/gds01_log.txt -D #TPC-H使用 /opt/gds/bin/gds -d /data2/script/tpch-kit/tpch1000X -p 192.168.0.90:5001 -H 192.168.0.0/24 -l /opt/gds/gds02_log.txt -D #TPC-H使用 /opt/gds/bin/gds -d /data1/script/tpcds-kit/tpcds1000X/ -p 192.168.0.90:5002 -H 192.168.0.0/24 -l /opt/gds/gds03_log.txt -D #TPC-DS使用 /opt/gds/bin/gds -d /data2/script/tpcds-kit/tpcds1000X/ -p 192.168.0.90:5003 -H 192.168.0.0/24 -l /opt/gds/gds04_log.txt -D #TPC-DS使用 /opt/gds/bin/gds -d /data1/script/ssb-kit/ssb100X/ -p 192.168.0.90:5004 -H 192.168.0.0/24 -l /opt/gds/gds05_log.txt -D #SSB使用 命令中的斜体部分请根据实际填写,如果数据分片存放至多个数据盘目录,需要启动对应目录数量的GDS。 如果TPC-H和TPC-DS数据同时测试,需要启动以上4个GDS,如果只测试TPC-DS或TPC-H数据,请根据后面的“#xxx”备注启动对应的GDS服务即可。 -d dir:保存有待导入数据的数据文件所在目录。 -p ip:port:GDS监听IP和监听端口。IP替换为ECS的内网IP,确保 GaussDB (DWS)能通过此IP与GDS的通讯;端口对于TPC-H取5000、5001,对于TPC-DS取5002、5003。 -H address_string:允许哪些主机连接和使用GDS服务。参数需为CIDR格式。此地址配置成GaussDB(DWS)的集群内网网段(即GDS所在的ECS与GaussDB(DWS)在同一个VPC下,以内网通讯即可),例如192.168.0.0/24。 -l log_file:存放GDS的日志文件路径及文件名。 -D:后台运行GDS。仅支持Linux操作系统下使用。
  • 创建TPC-H数据集的GDS外表 连接DWS数据库后执行以下SQL语句创建。 以下每个外表的“gsfs://192.168.0.90:500x/xxx | gsfs://192.168.0.90:500x/xxx”中的IP地址和端口,请替换成安装和启动GDS中的对应的GDS的监听IP和端口。如启动两个GDS,则使用“|”区分。如果启动多个GDS,需要将所有GDS的监听IP和端口配置到外表中。 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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 DROP FOREIGN TABLE IF EXISTS region_load; CREATE FOREIGN TABLE region_load ( R_REGIONKEY INT, R_NAME CHAR(25), R_COMMENT VARCHAR(152) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5000/region.tbl* | gsfs://192.168.0.90:5001/region.tbl*', format 'text', deLIMITer '|', encoding 'utf8', mode 'Normal' ); DROP FOREIGN TABLE IF EXISTS nation_load; CREATE FOREIGN TABLE nation_load ( N_NATIONKEY INT, N_NAME CHAR(25), N_REGIONKEY INT, N_COMMENT VARCHAR(152) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5000/nation.tbl* | gsfs://192.168.0.90:5001/nation.tbl*', format 'text', deLIMITer '|', encoding 'utf8', mode 'Normal' ); DROP FOREIGN TABLE IF EXISTS supplier_load; CREATE FOREIGN TABLE supplier_load ( S_SUPPKEY INT, S_NAME CHAR(25), S_ADDRESS VARCHAR(40), S_NATIONKEY INT, S_PHONE CHAR(15), S_ACCTBAL DECIMAL(15,2), S_COMMENT VARCHAR(101) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5000/supplier.tbl* | gsfs://192.168.0.90:5001/supplier.tbl*', format 'text', deLIMITer '|', encoding 'utf8', mode 'Normal' ); DROP FOREIGN TABLE IF EXISTS customer_load; CREATE FOREIGN TABLE customer_load ( C_CUSTKEY INT, C_NAME VARCHAR(25), C_ADDRESS VARCHAR(40), C_NATIONKEY INT, C_PHONE CHAR(15), C_ACCTBAL DECIMAL(15,2), C_MKTSEGMENT CHAR(10), C_COMMENT VARCHAR(117) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5000/customer.tbl* | gsfs://192.168.0.90:5001/customer.tbl*', format 'text', deLIMITer '|', encoding 'utf8', mode 'Normal' ); DROP FOREIGN TABLE IF EXISTS part_load; CREATE FOREIGN TABLE part_load ( P_PARTKEY INT, P_NAME VARCHAR(55), P_MFGR CHAR(25), P_BRAND CHAR(10), P_TYPE VARCHAR(25), P_SIZE INT, P_CONTAINER CHAR(10), P_RETAILPRICE DECIMAL(15,2), P_COMMENT VARCHAR(23) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5000/part.tbl* | gsfs://192.168.0.90:5001/part.tbl*', format 'text', deLIMITer '|', encoding 'utf8', mode 'Normal' ); DROP FOREIGN TABLE IF EXISTS partsupp_load; CREATE FOREIGN TABLE partsupp_load ( PS_PARTKEY INT, PS_SUPPKEY INT, PS_AVAILQTY INT, PS_SUPPLYCOST DECIMAL(15,2), PS_COMMENT VARCHAR(199) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5000/partsupp.tbl* | gsfs://192.168.0.90:5001/partsupp.tbl*', format 'text', deLIMITer '|', encoding 'utf8', mode 'Normal' ); DROP FOREIGN TABLE IF EXISTS orders_load; CREATE FOREIGN TABLE orders_load ( O_ORDERKEY BIGINT, O_CUSTKEY INT, O_ORDERSTATUS CHAR(1), O_TOTALPRICE DECIMAL(15,2), O_ORDERDATE DATE, O_ORDERPRIORITY CHAR(15), O_CLERK CHAR(15), O_SHIPPRIORITY INT, O_COMMENT VARCHAR(79) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5000/orders.tbl* | gsfs://192.168.0.90:5001/orders.tbl*', format 'text', deLIMITer '|', encoding 'utf8', mode 'Normal' ); DROP FOREIGN TABLE IF EXISTS lineitem_load; CREATE FOREIGN TABLE lineitem_load ( L_ORDERKEY BIGINT, L_PARTKEY INT, L_SUPPKEY INT, L_LINENUMBER INT, L_QUANTITY DECIMAL(15,2), L_EXTENDEDPRICE DECIMAL(15,2), L_DISCOUNT DECIMAL(15,2), L_TAX DECIMAL(15,2), L_RETURNFLAG CHAR(1), L_LINESTATUS CHAR(1), L_SHIPDATE DATE, L_COMMITDATE DATE, L_RECEIPTDATE DATE, L_SHIPINSTRUCT CHAR(25), L_SHIPMODE CHAR(10), L_COMMENT VARCHAR(44) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5000/lineitem.tbl* | gsfs://192.168.0.90:5001/lineitem.tbl*', format 'text', deLIMITer '|', encoding 'utf8', mode 'Normal' );
  • 创建TPC-H目标表 连接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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 CREATE TABLE REGION ( R_REGIONKEY INT NOT NULL , R_NAME VARCHAR(25) NOT NULL , R_COMMENT VARCHAR(152) ) WITH (orientation=column, colversion=2.0, enable_hstore=true, enable_hstore_opt=true) DISTRIBUTE BY replication; CREATE TABLE NATION ( N_NATIONKEY INT NOT NULL , N_NAME VARCHAR(25) NOT NULL , N_REGIONKEY INT NOT NULL , N_COMMENT VARCHAR(152) ) WITH (orientation=column, colversion=2.0, enable_hstore=true, enable_hstore_opt=true) DISTRIBUTE BY replication; CREATE TABLE SUPPLIER ( S_SUPPKEY BIGINT NOT NULL , S_NAME VARCHAR(25) NOT NULL , S_ADDRESS VARCHAR(40) NOT NULL , S_NATIONKEY INT NOT NULL , S_PHONE VARCHAR(15) NOT NULL , S_ACCTBAL DECIMAL(15,2) NOT NULL , S_COMMENT VARCHAR(101) NOT NULL ) WITH (orientation=column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true) DISTRIBUTE BY hash(S_SUPPKEY) PARTITION BY RANGE(S_NATIONKEY) ( PARTITION S_NATIONKEY_1 VALUES LESS THAN(1), PARTITION S_NATIONKEY_2 VALUES LESS THAN(2), PARTITION S_NATIONKEY_3 VALUES LESS THAN(3), PARTITION S_NATIONKEY_4 VALUES LESS THAN(4), PARTITION S_NATIONKEY_5 VALUES LESS THAN(5), PARTITION S_NATIONKEY_6 VALUES LESS THAN(6), PARTITION S_NATIONKEY_7 VALUES LESS THAN(7), PARTITION S_NATIONKEY_8 VALUES LESS THAN(8), PARTITION S_NATIONKEY_9 VALUES LESS THAN(9), PARTITION S_NATIONKEY_10 VALUES LESS THAN(10), PARTITION S_NATIONKEY_11 VALUES LESS THAN(11), PARTITION S_NATIONKEY_12 VALUES LESS THAN(12), PARTITION S_NATIONKEY_13 VALUES LESS THAN(13), PARTITION S_NATIONKEY_14 VALUES LESS THAN(14), PARTITION S_NATIONKEY_15 VALUES LESS THAN(15), PARTITION S_NATIONKEY_16 VALUES LESS THAN(16), PARTITION S_NATIONKEY_17 VALUES LESS THAN(17), PARTITION S_NATIONKEY_18 VALUES LESS THAN(18), PARTITION S_NATIONKEY_19 VALUES LESS THAN(19), PARTITION S_NATIONKEY_20 VALUES LESS THAN(20), PARTITION S_NATIONKEY_21 VALUES LESS THAN(21), PARTITION S_NATIONKEY_22 VALUES LESS THAN(22), PARTITION S_NATIONKEY_23 VALUES LESS THAN(23), PARTITION S_NATIONKEY_24 VALUES LESS THAN(24), PARTITION S_NATIONKEY_25 VALUES LESS THAN(25) ); CREATE TABLE CUSTOMER ( C_CUSTKEY BIGINT NOT NULL , C_NAME VARCHAR(25) NOT NULL , C_ADDRESS VARCHAR(40) NOT NULL , C_NATIONKEY INT NOT NULL , C_PHONE VARCHAR(15) NOT NULL , C_ACCTBAL DECIMAL(15,2) NOT NULL , C_MKTSEGMENT VARCHAR(10) NOT NULL , C_COMMENT VARCHAR(117) NOT NULL ) WITH (orientation=column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true) DISTRIBUTE BY hash(C_CUSTKEY) PARTITION BY RANGE(C_NATIONKEY) ( PARTITION C_NATIONKEY_1 VALUES LESS THAN(1), PARTITION C_NATIONKEY_2 VALUES LESS THAN(2), PARTITION C_NATIONKEY_3 VALUES LESS THAN(3), PARTITION C_NATIONKEY_4 VALUES LESS THAN(4), PARTITION C_NATIONKEY_5 VALUES LESS THAN(5), PARTITION C_NATIONKEY_6 VALUES LESS THAN(6), PARTITION C_NATIONKEY_7 VALUES LESS THAN(7), PARTITION C_NATIONKEY_8 VALUES LESS THAN(8), PARTITION C_NATIONKEY_9 VALUES LESS THAN(9), PARTITION C_NATIONKEY_10 VALUES LESS THAN(10), PARTITION C_NATIONKEY_11 VALUES LESS THAN(11), PARTITION C_NATIONKEY_12 VALUES LESS THAN(12), PARTITION C_NATIONKEY_13 VALUES LESS THAN(13), PARTITION C_NATIONKEY_14 VALUES LESS THAN(14), PARTITION C_NATIONKEY_15 VALUES LESS THAN(15), PARTITION C_NATIONKEY_16 VALUES LESS THAN(16), PARTITION C_NATIONKEY_17 VALUES LESS THAN(17), PARTITION C_NATIONKEY_18 VALUES LESS THAN(18), PARTITION C_NATIONKEY_19 VALUES LESS THAN(19), PARTITION C_NATIONKEY_20 VALUES LESS THAN(20), PARTITION C_NATIONKEY_21 VALUES LESS THAN(21), PARTITION C_NATIONKEY_22 VALUES LESS THAN(22), PARTITION C_NATIONKEY_23 VALUES LESS THAN(23), PARTITION C_NATIONKEY_24 VALUES LESS THAN(24), PARTITION C_NATIONKEY_25 VALUES LESS THAN(25) ); CREATE TABLE PART ( P_PARTKEY BIGINT NOT NULL , P_NAME VARCHAR(55) NOT NULL , P_MFGR VARCHAR(25) NOT NULL , P_BRAND VARCHAR(10) NOT NULL , P_TYPE VARCHAR(25) NOT NULL , P_SIZE BIGINT NOT NULL , P_CONTAINER VARCHAR(10) NOT NULL , P_RETAILPRICE DECIMAL(15,2) NOT NULL , P_COMMENT VARCHAR(23) NOT NULL ) WITH (orientation=column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true) DISTRIBUTE BY hash(P_PARTKEY) PARTITION BY RANGE(P_SIZE) ( PARTITION P_SIZE_1 VALUES LESS THAN(11), PARTITION P_SIZE_2 VALUES LESS THAN(21), PARTITION P_SIZE_3 VALUES LESS THAN(31), PARTITION P_SIZE_4 VALUES LESS THAN(41), PARTITION P_SIZE_5 VALUES LESS THAN(51) ); CREATE 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 ) WITH (orientation=column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true) DISTRIBUTE BY hash(PS_PARTKEY) PARTITION BY RANGE(PS_AVAILQTY) ( PARTITION PS_AVAILQTY_1 VALUES LESS THAN(1000), PARTITION PS_AVAILQTY_2 VALUES LESS THAN(2000), PARTITION PS_AVAILQTY_3 VALUES LESS THAN(3000), PARTITION PS_AVAILQTY_4 VALUES LESS THAN(4000), PARTITION PS_AVAILQTY_5 VALUES LESS THAN(5000), PARTITION PS_AVAILQTY_6 VALUES LESS THAN(6000), PARTITION PS_AVAILQTY_7 VALUES LESS THAN(7000), PARTITION PS_AVAILQTY_8 VALUES LESS THAN(8000), PARTITION PS_AVAILQTY_9 VALUES LESS THAN(9000), PARTITION PS_AVAILQTY_10 VALUES LESS THAN(10000) ) ; CREATE TABLE ORDERS ( O_ORDERKEY BIGINT NOT NULL , O_CUSTKEY BIGINT NOT NULL , O_ORDERSTATUS VARCHAR(1) NOT NULL , O_TOTALPRICE DECIMAL(15,2) NOT NULL , O_ORDERDATE DATE NOT NULL , O_ORDERPRIORITY VARCHAR(15) NOT NULL , O_CLERK VARCHAR(15) NOT NULL , O_SHIPPRIORITY BIGINT NOT NULL , O_COMMENT VARCHAR(79) NOT NULL ) WITH (orientation=column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true) DISTRIBUTE BY hash(O_ORDERKEY) PARTITION BY RANGE(O_ORDERDATE) ( PARTITION O_ORDERDATE_1 VALUES LESS THAN('1993-01-01 00:00:00'), PARTITION O_ORDERDATE_2 VALUES LESS THAN('1994-01-01 00:00:00'), PARTITION O_ORDERDATE_3 VALUES LESS THAN('1995-01-01 00:00:00'), PARTITION O_ORDERDATE_4 VALUES LESS THAN('1996-01-01 00:00:00'), PARTITION O_ORDERDATE_5 VALUES LESS THAN('1997-01-01 00:00:00'), PARTITION O_ORDERDATE_6 VALUES LESS THAN('1998-01-01 00:00:00'), PARTITION O_ORDERDATE_7 VALUES LESS THAN('1999-01-01 00:00:00') ) ; CREATE TABLE LINEITEM ( L_ORDERKEY BIGINT NOT NULL , L_PARTKEY BIGINT NOT NULL , L_SUPPKEY BIGINT NOT NULL , L_LINENUMBER BIGINT NOT NULL , L_QUANTITY DECIMAL(15,2) NOT NULL , L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL , L_DISCOUNT DECIMAL(15,2) NOT NULL , L_TAX DECIMAL(15,2) NOT NULL , L_RETURNFLAG VARCHAR(1) NOT NULL , L_LINESTATUS VARCHAR(1) NOT NULL , L_SHIPDATE DATE NOT NULL , L_COMMITDATE DATE NOT NULL , L_RECEIPTDATE DATE NOT NULL , L_SHIPINSTRUCT VARCHAR(25) NOT NULL , L_SHIPMODE VARCHAR(10) NOT NULL , L_COMMENT VARCHAR(44) NOT NULL ) WITH (orientation=column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true) DISTRIBUTE BY hash(L_ORDERKEY) PARTITION BY RANGE(L_SHIPDATE) ( PARTITION L_SHIPDATE_1 VALUES LESS THAN('1993-01-01 00:00:00'), PARTITION L_SHIPDATE_2 VALUES LESS THAN('1994-01-01 00:00:00'), PARTITION L_SHIPDATE_3 VALUES LESS THAN('1995-01-01 00:00:00'), PARTITION L_SHIPDATE_4 VALUES LESS THAN('1996-01-01 00:00:00'), PARTITION L_SHIPDATE_5 VALUES LESS THAN('1997-01-01 00:00:00'), PARTITION L_SHIPDATE_6 VALUES LESS THAN('1998-01-01 00:00:00'), PARTITION L_SHIPDATE_7 VALUES LESS THAN('1999-01-01 00:00:00') ) ;
  • TPC-H测试数据 表1 TPC-H测试数据 序号 表名 行数 表大小 1 region 5 294KB 2 nation 25 298KB 3 supplier 10,000,000 1020MB 4 customer 150,000,000 8226MB 5 part 200,000,000 5216MB 6 partsupp 800,000,000 29GB 7 orders 1,500,000,000 43GB 8 lineitem 5,999,989,709 171GB 父主题: TPC-H测试过程
  • TPC-H测试结果 DWS测试了使用存算一体和存算分离两种部署架构下,TPC-H 1T规模数据集的开箱查询性能,共22个查询。存算一体查询总耗时为234.23s,存算分离查询总耗时为261.19s。 详细性能数据见下表。 表1 TPC-H测试结果 版本 8.3.0 9.1.0 - 存算一体 存算一体 存算分离 Q1 16.97 6.58 8.29 Q2 1.44 1.51 1.76 Q3 13.02 10.13 10.51 Q4 65.56 18.59 17.65 Q5 21.90 14.55 15.64 Q6 0.84 0.52 0.68 Q7 11.08 11.92 13.59 Q8 87.18 16.49 17.22 Q9 55.98 29.42 41.29 Q10 12.20 9.67 10.35 Q11 3.57 3.22 3.94 Q12 5.92 8.73 9.96 Q13 14.28 11.62 12.15 Q14 1.87 1.66 1.83 Q15 2.24 1.23 1.45 Q16 4.52 3.75 4.09 Q17 10.54 7.38 8.45 Q18 47.97 31.27 30.74 Q19 110.03 8.13 8.74 Q20 10.07 6.23 7.18 Q21 28.82 27.93 31.83 Q22 7.04 3.70 3.83 总时长(s) 533.05 234.23 261.19 父主题: TPC-H性能测试
  • 性能总览 在9.1.0版本,我们实现了很多性能优化特性,提升整体开箱的SQL查询性能。以TPC-H、TPC-DS 1TB作为性能测试对比的基准,重点对比最新9.1.0版本与8.3.0版本的性能提升。集群规模为6节点,其中各节点的规格为16U 64G,累计96U 384G。从以下测试结果可以看到: 9.1.0版本存算一体架构TPC-H总查询耗时为234.23秒,相较8.3.0版本的533.05秒,性能提升127%。 9.1.0版本存算分离架构与存算一体架构性能劣化在10%以内。 TPC-H 1000x测试基准22个SQL中,9.1.0版本相比8.3.0版本有19个SQL性能提升达到1.5~5倍,特别是Q19提升达13.5倍。 TPC-DS 1000x测试基准99个SQL中,9.1.0版本相比8.3.0版本75个SQL有明显提升,10个SQL性能提升有2~8倍。 不论是简单的过滤、排序、聚集,还是复杂的多表关联、窗口计算、CTE查询,9.1.0版本都有明显性能优势。 表1 TPC-H和TPC-DS性能总览 1000x DWS开箱性能 版本 8.3.0 9.1.0 - 存算一体(s) 存算一体(s) 存算分离(s) TPC-H 533.05 234.23 261.19 TPC-DS 1321.76 971.45 1035.80 在9.1.0版本,我们使用存算分离架构指定二级分区,基于ssb-flat 100 GB测试基准,对比DWS和ClickHouse的性能表现,同时固定并行度参数query_dop为16。从以下测试结果可以看到: 开箱性能相比开源厂商ClickHouse有30%性能优势。 固定并行度为16调优的效果性能提升是ClickHouse的3.64倍。 表2 SSB性能总览 100x DWS ClickHouse ssb-flat 开箱(s) query_dop=16(s) 2.73 2.10 0.75 父主题: 9.1.0版本测试结论
  • 目的 GaussDB(DWS)是云端托管的PB级高并发实时 数据仓库 ,专注于服务OLAP领域,提供按量付费和包年包月两种付费方式。 本次性能测试基于华为云基础环境,分别在同等硬件配置和同等数据规模下,基于TPC-H、TPC-DS标准测试集,对DWS 9.1.0版本和8.3.0版本进行性能对比测试。基于SSB-Flat测试集,对DWS 9.1.0版本和开源OLAP产品ClickHouse进行对比测试。本次性能测试时间为2024年7月。
  • 为什么集群被删除后还在计费? 按需购买的集群删除时未勾选“删除云服务器”,因此只删除了集群信息,集群中的云服务器资源仍在继续扣费。 包周期类型的集群删除时只能删除集群信息,云服务器资源需要手动退订。 管理节点如使用购买EIP的选择,集群删除时,即使勾选了“删除云服务器”,绑定的EIP资源也不会删除,仍然正常计费。如需停止EIP资源计费,请手动删除EIP。 集群中节点如果挂载有数据盘,在删除集群时,即使勾选了“删除云服务器”,挂载的云硬盘资源也不会删除,仍然正常计费。如需停止计费,请手动删除云硬盘资源。 父主题: 常见问题
  • 操作须知 无论单节点删除或是批量删除,管理节点是禁止删除操作的。 节点删除(即集群缩容)时,仅在集群状态处于“运行中”或“异常”时方可操作。 节点删除(即集群缩容)时,需要保证集群中其他节点的状态均为“运行中”方可操作。 节点删除(即集群缩容)时,用户需要自行确认所选节点无作业执行,否则会导致正在运行的作业异常。 节点删除时,如果所选节点挂载了数据盘,节点删除时不会删除数据盘,需要用户手动删除清理,否则会继续扣费。
  • 多节点批量删除操作步骤 登录HPC-S²控制台。 单击左侧的“节点管理”; 在“节点管理”页面集群的下拉框切换到要进行节点操作的集群。 可同时在节点列表左侧勾选多个要进行删除操作的节点,单击集群名称左侧的“删除”。 按需类型节点批量删除 选择是否删除云服务器资源,如勾选,连同云服务器一同删除,如不勾选,则只删除节点信息,对应的云服务器节点仍保留,用户可通过弹性云服务器页面查看。 包周期类型节点批量删除 包周期节点需要手动退订。 按需类型和包周期类型节点批量删除 选择多个按需类型和包周期类型节点进行删除时,按需类型节点可以直接删除,包周期节点需要手动退订。
  • 操作场景 当集群不再使用后,可使用集群删除的功能将集群删除,如未勾选“删除云服务器”,节点资源将持续扣费,包周期资源需手动退订。 集群创建失败后,可使用集群删除的功能将集群删除,删除时不要勾选“删除云服务器”,然后再使用“已有节点部署集群”的功能重新部署集群。 集群出现异常后,如无法手动进行恢复,可使用集群删除的功能将集群删除,删除时不要勾选“删除云服务器”,然后再使用“已有节点部署集群”的功能重新部署集群。
  • 操作步骤 登录HPC-S²控制台。 单击左侧的“集群管理”。 在“集群管理”页面,对于不需要或异常的集群可进行删除操作。 按需类型集群 确定页可选择是否删除云服务器,如勾选,连同云服务器一同删除,如不勾选,则只删除集群信息,对应的云服务器节点仍保留,用户可通过弹性云服务器页面查看。 包周期类型集群 不能选择删除节点,包周期节点资源需手动退订。 混合类型集群删除 可选择删除节点,同时会有提示包周期节点需要手动退订,勾选“删除节点”时,只有按需类型节点资源会被删除。
  • 操作步骤 登录HPC-S²控制台。 单击左侧的“集群管理”。 在“集群管理”页面选择要扩容的集群,单击后方操作中“扩容”,进入扩容的详情页面。 选择“计费模式”。 集群扩容时,可选择和原有计费模式不同的计费模式,如果集群当中既有“按需计费”也有“包年/包月”类型,此时集群的付费类型显示为“混合计费”。 包年/包月:用户选购完 云服务器配置 后,可以根据需要设置购买时长,系统会一次性按照购买价格对账户余额进行扣费。 按需付费:用户选购完云服务器配置后,无需设置购买时长,系统会根据消费时长对账户余额进行扣费。 选择“当前区域”和“可用区”。 集群扩容时,当前区域不可选,默认为集群初始创建时所在区域。 集群扩容时,可选择不同于原有集群的可用区。 新增节点的规格配置。 规格:公有云提供了多种类型的弹性云服务器供您选择,单击下拉框进行选择; 系统盘:根据所需要的选择磁盘类型和大小; 网络配置。 集群扩容时,网络配置包括“虚拟私有云”、“安全组”以及“网卡”不可选,和集群初始创建时保持一致。 选择“镜像”。 推荐使用公共镜像,其他类型镜像可能出现扩容时自动部署失败的情况。 公共镜像(推荐) 标准操作系统镜像,所有用户可见,当前仅支持CentOS 7系列,包括操作系统以及预装的公共应用。请根据您的实际情况自助选择。 私有镜像 用户基于弹性云服务器创建的个人镜像,仅用户自己可见。包含操作系统、预装的公共应用以及用户的私有应用。选择私有镜像创建弹性云服务器,可以节省您重复配置弹性云服务器的时间。 您可以选择使用加密镜像,更多关于加密镜像的信息,请参见《 镜像服务 用户指南》。 共享镜像 您将接受其他用户共享的私有镜像,作为自己的镜像进行使用。 市场镜像 提供预装操作系统、应用环境和各类软件的优质第三方镜像。 选择“登录方式”。 登录方式会和集群初始创建时保持一致,若集群创建时选择了密码方式,扩容就只支持密码方式,若集群创建时选择了密钥方式,扩容则只支持密钥方式。 密钥对 指使用密钥对作为弹性云服务器的鉴权方式。您可以选择使用已有的密钥,或者单击“查看密钥对”创建新的密钥。 如果选择使用已有的密钥,请确保您已在本地获取该文件,否则,将影响您正常登录弹性云服务器。 密码 指使用设置初始密码方式作为弹性云服务器的鉴权方式,此时,您可以通过用户名密码方式登录弹性云服务器。 密码规则请参考下表: 参数 规则 样例 密码 密码长度范围为8到26位。 密码至少包含以下4种字符中的3种: 大写字母 小写字母 数字 特殊字符,包括:“$”、“!”、“@”、“%”、“-”、“_”、“=”、“+”、“[”、“]”、“:”、“.”、“/”、“^”、“,”、“{”、“}”和“?” 密码不能包含用户名或用户名的逆序。 YNbUwp!dUc9MClnv 说明: 样例密码随机生成,请勿复制使用样例。 选择“购买时长”。 计费模式为“包年/包月”类型,需同时选择购买时长,同时用户可选择是否需要“自动续费”,如勾选了“自动续费”,包周期到期后会自动续费。 选择“节点数量”。 集群原有的计算节点和新扩容的计算节点总计不超过50个。 核对当前配置,确认无误后单击右侧的“立即购买”,进入订单确认页面。 计费模式为“包年/包月”时,如果您确认规格和价格无误,请勾选同意协议,单击“去支付”,并根据界面提示完成支付。 计费模式为“按需付费”时,如果您确认规格和价格无误,请勾选同意协议,单击“提交”。 提交/支付成功后,返回到集群管理页面,可查看到集群列表中该集群已经是“创建中”了,等待集群创建完成变成“运行中”即可。
  • 购买须知 第一次使用公有云服务时,系统将自动为您创建一个虚拟私有云,包括安全组、网卡。同时,用户可根据需要自行创建一个虚拟私有云,更多关于虚拟私有云的信息,请参见《虚拟私有云用户指南》。 用户可使用系统自动创建的安全组,也可以根据需要自行创建一个安全组使用,安全组规则的配置会影响弹性云服务器的正常访问与使用。 为确保集群能正常创建/部署,需保证安全组规则22端口开放,具体配置方法请参见:为安全组添加安全组规则。 一站式HPC服务使用弹性文件服务SFS作为文件共享存储,更多关于弹性文件系统的信息,请参见《弹性文件服务用户指南》。
  • 操作步骤 登录HPC-S²控制台。 单击管理控制台左上角的,选择区域和项目。 单击“部署HPC集群”。 系统进入部署HPC集群页面。 选择“区域”。 不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 设置集群名称。 名称可自定义,但需符合命名规则。集群名称命名规则如表1所示。 表1 集群名称命名规则 参数 规则 样例 集群名称 集群名称长度范围为1到52位。 只能由英文字母、数字、“-”以及“.”组成 名称不能以“-”、“.”开头和结尾 不能包含连续的“-”和“.”,例如“--”、“..”、“-.”和“.-” hpc-001.p1 选择“管理节点” 管理节点的筛选需要满足以下条件: 当前指定区域的ECS节点; 该节点状态为“运行中”。 该节点绑定了弹性IP。 该节点不在当前账号下的其他集群中。 选择“安全组” 安全组为选定的管理节点所使用的安全组策略,如果有多个策略,可根据需要选择。 选择“计算节点” 计算节点的筛选需要满足以下条件: 当前指定区域的ECS节点。 计算节点状态为“运行中”。 计算节点与管理节点为相同的CPU架构。 计算节点与所选管理节点有相同的VPC、安全组。 计算节点与管理节点使用的是同一镜像主版本。 所选的计算节点数不超过50个。 选择“虚拟私有云” 虚拟私有云为选定的管理节点所在的VPC,无需选择。 设置“登录方式”。 已有节点部署集群,当前只支持密码方式,如果您使用“密钥”方式创建的云服务器,请手动设置登录密码,另外,使用密码方式时请增强密码的复杂度,保证密码符合要求,防止恶意攻击。 Linux操作系统时为root用户的初始密码,Windows操作系统时为Administrator用户的初始密码。密码复杂度需满足表2要求。 表2 密码规则 参数 规则 样例 密码 密码长度范围为8到26位。 密码至少包含以下4种字符中的3种: 大写字母 小写字母 数字 特殊字符,包括“$”、“!”、“@”、“%”、“-”、“_”、“=”、“+”、“[”、“]”、“:”、“.”、“/”、“^”、“,”、“{”、“}”和“?” 密码不能包含用户名或用户名的逆序。 Windows系统的弹性云服务器,不能包含用户名中超过两个连续字符的部分。 YNbUwp!dUc9MClnv 说明: 样例密码随机生成,请勿复制使用样例。 选择 “弹性文件服务”。 弹性文件服务自动根据“网络配置”当中所选VPC筛选,如不存在弹性文件系统,需手动创建,并添加对应VPC的权限。具体请参考“创建文件系统” 选择“调度器”。 当前只支持slurm和sge两种调度器,系统默认调度器为slurm,请根据所需自行选择。 核对当前配置,确认无误后单击“部署HPC集群”,提交创建。 提交成功后,返回到集群管理页面,可查看到集群列表中该集群已经是“部署中”了,等待集群创建完成变成“运行中”代表集群部署完成。
  • 购买须知 第一次使用公有云服务时,系统将自动为您创建一个虚拟私有云,包括安全组、网卡。同时,用户可根据需要自行创建一个虚拟私有云,更多关于虚拟私有云的信息,请参考《虚拟私有云用户指南》。 用户可使用系统自动创建的安全组,也可以根据需要自行创建一个安全组使用,安全组规则的配置会影响弹性云服务器的正常访问与使用。 为确保集群能正常创建/部署,需保证安全组规则22端口开放。具体配置方法请参见:为安全组添加安全组规则 一站式HPC服务使用弹性文件服务SFS作为文件共享存储,更多关于弹性文件系统的信息,请参见《弹性文件服务用户指南》。
  • HPC-S²与其他服务的关系 服务名称 HPC-S²与其他服务的关系 主要交互功能 弹性云服务器(ECS) 购买弹性云服务器创建HPC集群或使用已有弹性云服务器部署HPC集群。 创建弹性云服务器 虚拟私有云(VPC) 同一个HPC场景的云服务器,都位于同一个VPC中,并且需要使用VPC中的子网和安全组进行相关的网络安全隔离。 创建虚拟私有云和子网 修改虚拟私有云基本信息 镜像服务(IMS) 可以使用公共镜像、私有镜像、共享镜像创建高性能计算的云服务器。 也可以将已有的HPC场景的云服务器创建私有镜像。 创建私有镜像 云硬盘(EVS) 购买云硬盘并挂载至HPC场景的云服务器。 购买云硬盘 弹性文件服务(SFS) 为用户的弹性云服务器提供一个完全托管的共享文件存储。 文件共享 父主题: 产品介绍
  • HPC-S²使用限制 HPC解决方案服务当前只支持“华北-北京一”、“华北-北京四”、“华南-广州”区域,推荐使用“华北-北京四”,其他区域暂不支持。 集群部署仅支持slurm和sge两种调度器。 集群部署支持鲲鹏架构的sge调度器,支持X86架构的slurm和sge调度器。 单个用户可创建集群的上限为3个。 单个集群中的计算节点的上限为2000个。 集群创建/扩容时,节点不能添加数据盘,如需使用,用户需手动挂载。 当前不支持集群恢复操作,创建失败或扩容失败的节点无法自动恢复。 集群创建/扩容时,公共镜像当前只支持CentOS 7系列。 集群/节点执行删除操作时,请自行判断是否删除节点所绑定的弹性公网IP和挂载的数据盘。未删除的弹性公网IP和数据盘会持续产生扣费。 请不要在ECS控制台对HPC集群中的节点进行操作,以免集群出现异常。 请勿修改或删除“/usr/local/.hpccluster”路径下文件内容,以免造成集群异常。 “/usr/local/.hpccluster/role/.ssh/”下的“authorized_keys”仅用于系统维护。 同一主账号下的不同子账号创建的集群不能重名。
  • HPC解决方案服务 高性能计算(High-performance computing,简称HPC)是一个计算机集群系统,通过管理节点对计算任务进行分解,交给不同的计算节点进行计算,以此来解决大型计算问题。在科学研究、气象预报、仿真实验、生物制药、基因测序、图像处理等行业均有广泛的应用。 针对日益增长的HPC计算能力需求,华为云在现有基础设施之上推出了HPC解决方案服务(HPC Solution Service,简称HPC-S²),主要面向对大规模计算有需求的企事业单位,为用户提供一站式可扩展的高性能计算,同时集成基础服务、业务软件等,实现一键式开通部署等功能,支持常用作业调度软件,例如slurm、sge及华为多瑙(Huawei commercial HPC Donau Scheduler)调度器的自动化部署,使用HPC-S²控制台可以方便的对集群、节点以及共享存储进行查看以及管理操作。 如图1所示,通过HPC-S²控制台用户可以管理多个VPC网络下的多个集群。
  • HPC-S²功能简介 HPC-S²主要面向对大规模计算有需求的企事业单位,使用HPC-S²控制台可以方便的对集群、节点、任务以及共享存储进行查看及管理操作,实现集群的一键式开通和部署等功能。 功能 说明 集群管理 HPC-S²的管理控制台提供了HPC-S²集群相关的集群创建、集群进度(包括创建/部署/扩容/缩容等操作)查看、集群详情查看、对集群进行管理(包括扩容、启动、停止、删除等操作)、实例topo管理的功能。 节点管理 HPC-S²的管理控制台提供了HPC-S²集群的节点进行查询、启动、停止、重启、删除等管理功能。 共享存储 HPC-S²的管理控制台提供了HPC-S²集群所对应的存储信息,通过弹性文件服务(SFS)为集群中所有节点提供文件共享路径。 任务管理 HPC-S²的管理控制台提供了HPC-S²集群相关的任务队列、动态调度、亲和性调度、负载重组及基于CPU、内存、实例Instance的quota管理的功能。
  • HPC-S²产品优势 HPC-S²与传统HPC相比具备以下优势: HPC-S²支持按需购买,无需排期,即买即用。 HPC-S²支持多种云服务器类型,可根据应用需求购买最适合的计算资源。 HPC-S²可以使用Anti-DDos流量清洗、 Web应用防火墙 漏洞扫描 等多种安全服务提供多维度防护,提高数据安全性和高可用性。 使用HPC-S²服务,用户无需自建机房,无需顾虑硬件升级换代,可随时从虚拟资源池中获取并独享资源,并根据业务变化弹性扩展或收缩。 使用HPC-S²能够为用户自动化配置集群免密、网络信息服务(Network Information Service,NIS)以及集群调度器。
  • 安全管理 身份认证 为了实现对资源的安全访问和权限控制,建议您创建 IAM 用户,并结合企业项目实现对资源的身份认证、权限管理和资源分组管理,详细内容请参见多运维人员权限设置案例和多项目管理实践案例。 登录鉴权方式 为了保证在丢失密码或密码失效的情况下,可以成功重置密码,建议您在弹性云服务器的购买完成后,优先执行安装一键式重置密码插件(可选)或更新一键式重置密码插件(单台操作)操作。 访问控制 为了实现对弹性云服务器入方向和出方向的访问进行控制,提高安全性,建议您根据控制的范围设置相应的访问控制策略: 基于ECS实例:建议您使用安全组功能,通过安全组规则实现对ECS的访问控制。详细内容,请参见安全组配置示例。 基于ECS所在子网:建议您使用网络ACL功能,通过网络ACL规则实现对子网内所有ECS实例的访问控制。详细内容,请参见网络ACL配置示例。 安全防护 为了实现对弹性云服务器的高阶安全防护,除了免费开启的主机安全基础防护外,建议您根据防护需求购买高阶的主机安全防护版本,详细的版本功能、版本差异及购买方式,请参见版本功能差异和主机安全快速入门。 网络防护 为了防止弹性云服务器绑定的弹性公网IP被攻击,建议您购买华为云的DDoS防护服务。 敏感操作保护 为了保证账号及操作的安全性,建议您开启敏感操作保护功能,在控制台执行关机、重启、删除等敏感操作时,进行身份验证。该功能对账号以及账号下的用户都生效。 详细内容,请参见敏感操作保护。
  • 访问与连接 为了确保弹性云服务器创建成功且状态正常,建议您第一次通过VNC方式远程登录弹性云服务器,若登录成功则表明弹性云服务器资源状态正常。 详细操作,请参见: Windows弹性云服务器管理控制台远程登录(VNC方式) Linux弹性 云服务器远程登录 (VNC方式) 之后,您就可以根据本地环境以及弹性云服务器是否绑定弹性公网IP,选择合适的登录方式,详细内容请参见登录弹性云服务器。 如果您在登录过程中遇到问题,推荐您使用ECS远程登录诊断工具进行问题的自助排查和定位。
  • 系统更新 更新镜像源(Linux) 为了及时获取最新的系统更新和软件安装依赖,建议您在使用弹性云服务器之前更新镜像源。 华为云内网源无需连接Internet、且服务稳定,对于使用EulerOS、CentOS、Debian、Ubuntu操作系统的弹性云服务器,建议您更新为华为云内网源,详细操作,请参见如何使用自动化工具配置华为云镜像源(x86_64和ARM)? 更新Windows补丁和驱动(Windows) 为了提高弹性云服务器的问题修复能力和性能,建议您定时更新Windows的补丁和驱动程序。 您可以通过设置Windows自动更新,及时发现最新的补丁和驱动版本,提醒您进行更新。
  • 备份与恢复 数据备份与恢复 为了在发生病毒入侵、人为误删除、软硬件故障等事件时,能够快速恢复数据,建议您定期进行数据备份,备份的具体方案和适用场景,请参见云备份概述。 备份成功后,可以使用云服务器备份恢复数据或使用备份创建镜像的方式恢复数据。 高可用容灾业务部署 为了实现较高的业务容灾能力,建议您将云服务器资源部署在同一区域的不同可用区内。可用区的具体内容,请参见区域和可用区和步骤一:基础配置。 主备应用HA业务部署 为了实现弹性云服务器的主备切换、达到高可用HA的目的,建议您参考搭建Keepalived Nginx高可用Web集群方案进行部署。
  • 数据存储 存储安全 为了实现数据的存储安全性,建议您将操作系统和应用数据分别存储在系统盘和数据盘,一方面保证数据的安全,避免因系统故障导致用户数据丢失;另一方面可根据业务需要扩容或新增磁盘扩展存储容量。 扩容磁盘:支持扩容系统盘和数据盘,建议您参考扩容“正在使用”状态的云硬盘容量扩容磁盘容量。 新增磁盘:支持新增数据盘,建议您新增磁盘,并完成挂载磁盘和初始化数据盘后,才可以正常使用。 数据加密 为了进一步保护数据的安全性,建议您使用加密的系统盘和数据盘。详细内容,请参见管理加密云硬盘。
  • 操作维护管理 监控管理 为了使用户能够及时获取弹性云服务器的各项性能指标及运行状态,建议您使用 云监控服务 ,执行自动实时监控、告警和通知操作。 详细内容,请参见 云监控 服务。 关键操作管理 为了能够对弹性云服务器的操作进行查询、审计和回溯,建议您开启 云审计 服务记录与之相关的操作事件。 更多内容,请参见云审计服务。 日志管理 为了提高弹性云服务器和应用程序的可用性和性能,建议您通过 云日志 服务收集日志数据,通过对海量日志数据的分析和处理,实现实时决策分析、设备运维管理、用户业务趋势分析等能力。 详细内容,请参见云日志服务。
  • 背景 弹性云服务器的磁盘增强型、超高I/O型以及鲲鹏超高I/O型实例自带高存储带宽和IOPS的本地盘,适用于处理海量数据、需要高I/O能力,要求快速数据交换和处理的场景。 本地盘部署在弹性云服务器实例所在宿主机上,提供本地存储访问能力,具有高存储IOPS、低时延、高吞吐量和高性价比等优势。同时,由于本地盘只挂载于单台宿主机,因此其数据可靠性依赖宿主机的可靠性。如果出现宿主机异常、本地盘故障或实例重部署等情况,则本地盘数据会丢失。因此,请勿在本地盘上存储需要长期保存的业务数据。对于数据可靠性要求比较高的场景,建议您选择支持三副本技术的云硬盘。
  • 简介 本文介绍了如何在华为云上使用弹性云服务器的Linux实例部署Node.js。 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。 更多关于Node.js信息,请参见https://nodejs.org。 该操作以“CentOS 7.2 64bit(40G)”操作系统为例,使用的Node.js软件包版本为“node-v10.14.1-linux-x64.tar”及“node-v10.14.2-linux-x64.tar”。
  • 配置VNC Server 首先停止第一个虚拟桌面。 vncserver -kill :1 修改xstartup文件。 vim ~/.vnc/xstartup 按“i”进入编辑模式,添加以下内容: #!/bin/sh xrdb $HOME/.Xresources startxfce4 & 其中, 第一个命令“xrdb $HOME/.Xresources”告诉VNC的GUI框架读取服务器用户的“.Xresources”文件。用户可以在“.Xresources”中更改图形桌面的某项设置,如终端颜色、光标主题和字体渲染。 第二个命令“startxfce4 &”告诉服务器启动Xfce。 为了保证VNC服务正常启动,需要配置可执行。 sudo chmod +x ~/.vnc/xstartup 重启VNC Server。 vncserver 第二次运行vncserver时,它将创建日志文件。 回显信息中出现类似这样的一条信息:Log file is /root/.vnc/xxx:1.log。其中,“1”表示当前用户分配的是VNC的第一个虚拟桌面。
共100000条