华为云用户手册

  • 操作步骤 执行以下命令创建目标表(8张表)。 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 DROP TABLE IF EXISTS region; CREATE TABLE region ( R_REGIONKEY INT NOT NULL, R_NAME CHAR(25) NOT NULL, R_COMMENT VARCHAR(152) ) with (orientation = column) distribute by replication; DROP TABLE IF EXISTS nation; CREATE TABLE nation ( N_NATIONKEY INT NOT NULL, N_NAME CHAR(25) NOT NULL, N_REGIONKEY INT NOT NULL, N_COMMENT VARCHAR(152) ) with (orientation = column) distribute by replication; DROP TABLE IF EXISTS supplier; CREATE TABLE supplier ( S_SUPPKEY INT NOT NULL, S_NAME CHAR(25) NOT NULL, S_ADDRESS VARCHAR(40) NOT NULL, S_NATIONKEY INT NOT NULL, S_PHONE CHAR(15) NOT NULL, S_ACCTBAL DECIMAL(15,2) NOT NULL, S_COMMENT VARCHAR(101) NOT NULL ) with (orientation = column) distribute by hash(S_SUPPKEY); DROP TABLE IF EXISTS customer; CREATE TABLE customer ( C_CUSTKEY INT NOT NULL, C_NAME VARCHAR(25) NOT NULL, C_ADDRESS VARCHAR(40) NOT NULL, C_NATIONKEY INT NOT NULL, C_PHONE CHAR(15) NOT NULL, C_ACCTBAL DECIMAL(15,2) NOT NULL, C_MKTSEGMENT CHAR(10) NOT NULL, C_COMMENT VARCHAR(117) NOT NULL ) with (orientation = column) distribute by hash(C_CUSTKEY); DROP TABLE IF EXISTS part; CREATE TABLE part ( P_PARTKEY INT NOT NULL, P_NAME VARCHAR(55) NOT NULL, P_MFGR CHAR(25) NOT NULL, P_BRAND CHAR(10) NOT NULL, P_TYPE VARCHAR(25) NOT NULL, P_SIZE INT NOT NULL, P_CONTAINER CHAR(10) NOT NULL, P_RETAILPRICE DECIMAL(15,2) NOT NULL, P_COMMENT VARCHAR(23) NOT NULL ) with (orientation = column) distribute by hash(P_PARTKEY); DROP TABLE IF EXISTS partsupp; CREATE TABLE partsupp ( PS_PARTKEY INT NOT NULL, PS_SUPPKEY INT NOT NULL, PS_AVAILQTY INT NOT NULL, PS_SUPPLYCOST DECIMAL(15,2) NOT NULL, PS_COMMENT VARCHAR(199) NOT NULL ) with (orientation = column) distribute by hash(PS_PARTKEY); DROP TABLE IF EXISTS orders; CREATE TABLE orders ( O_ORDERKEY BIGINT NOT NULL, O_CUSTKEY INT NOT NULL, O_ORDERSTATUS CHAR(1) NOT NULL, O_TOTALPRICE DECIMAL(15,2) NOT NULL, O_ORDERDATE DATE NOT NULL, O_ORDERPRIORITY CHAR(15) NOT NULL, O_CLERK CHAR(15) NOT NULL, O_SHIPPRIORITY INT NOT NULL, O_COMMENT VARCHAR(79) NOT NULL ) with (orientation = column) 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') ); DROP TABLE IF EXISTS lineitem; CREATE TABLE lineitem ( L_ORDERKEY BIGINT NOT NULL, L_PARTKEY INT NOT NULL, L_SUPPKEY INT NOT NULL, L_LINENUMBER INT 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 CHAR(1) NOT NULL, L_LINESTATUS CHAR(1) NOT NULL, L_SHIPDATE DATE NOT NULL, L_COMMITDATE DATE NOT NULL, L_RECEIPTDATE DATE NOT NULL, L_SHIPINSTRUCT CHAR(25) NOT NULL, L_SHIPMODE CHAR(10) NOT NULL, L_COMMENT VARCHAR(44) NOT NULL ) with (orientation = column) 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') ); 执行以下命令创建GDS外表(8张表)。 以下每个外表的“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 148 149 150 151 152 153 154 155 156 157 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' ); 执行以下命令导入数据。 1 2 3 4 5 6 7 8 INSERT INTO region SELECT * FROM region_load; INSERT INTO nation SELECT * FROM nation_load; INSERT INTO supplier SELECT * FROM supplier_load; INSERT INTO customer SELECT * FROM customer_load; INSERT INTO part SELECT * FROM part_load; INSERT INTO partsupp SELECT * FROM partsupp_load; INSERT INTO orders SELECT * FROM orders_load; INSERT INTO lineitem SELECT * FROM lineitem_load;
  • 安装和启动GDS 登录GaussDB(DWS)管理控制台。 在左侧导航栏中,单击“连接客户端”。 在 “gsql 命令行客户端”的下拉列表中,选择对应版本的GaussDB(DWS)客户端。 请根据集群版本和安装客户端的操作系统,选择对应版本。 客户端CPU架构要和集群一致,如果集群是X86规格,则也应该选择X86客户端。 单击“下载”。 将GDS工具包上传至ECS的/opt目录中,本例以上传Euler Kunpeng版本的工具包为例。 在工具包所在目录下,解压工具包。 1 2 cd /opt/ unzip dws_client_8.1.x_euler_kunpeng_x64.zip 创建用户gds_user及其所属的用户组gdsgrp。此用户用于启动GDS,且需要拥有读取数据源文件目录的权限。 1 2 groupadd gdsgrp useradd -g gdsgrp gds_user 修改工具包以及数据源文件目录属主为创建的用户gds_user及其所属的用户组gdsgrp。 1 2 3 chown -R gds_user:gdsgrp /opt/ chown -R gds_user:gdsgrp /data1 chown -R gds_user:gdsgrp /data2 切换到gds_user用户。 1 su - gds_user 执行环境依赖脚本(仅8.1.x版本适用)。 1 2 cd /opt/gds/bin source gds_env 启动GDS。 1 2 3 4 /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使用 命令中的斜体部分请根据实际填写,如果数据分片存放至多个数据盘目录,需要启动对应目录数量的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操作系统下使用。
  • 创建弹性云服务器 ECS 参考《弹性云服务器用户指南》创建弹性云服务器,创建的规格可参见下表。 由于TPC-DS、TPC-H数据集占用空间较大,以TPC-DS 1000X和TPC-H 1000X为例,分别占用930GB和1100GB。请创建弹性云服务器时,根据需求添加数据盘,举例如下: 单测TPC-DS或者TPC-H时:挂载2块超高IO 600GB数据盘。 同时测TPC-DS和TPC-H时:挂载2块超高IO 1200GB数据盘。 表1 ECS规格 参数项 参数取值 计费模式 按需计费 区域 华北-北京4 可用区 可用区1 CPU架构 鲲鹏计算 规格 鲲鹏通用计算增强型 | kc1.8xlarge.2 32vCPUs|64 GiB 镜像 EulerOS 2.8 64bit with ARM(40GB) 数据盘 系统盘通用型SSD 40GB,数据盘要求如下: 单测TPC-DS或者TPC-H时:挂载2块超高IO 600GB数据盘。 同时测TPC-DS和TPC-H时:挂载2块超高IO 1200GB数据盘。 父主题: 创建弹性云服务器 ECS和数据仓库 GaussDB(DWS)
  • 操作步骤 执行以下SQL创建目标表(共24张表)。 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 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 CREATE TABLE customer_address ( ca_address_sk bigint 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(5,2) , ca_location_type char(20) ) with (orientation = column) distribute by hash (ca_address_sk); CREATE TABLE customer_demographics ( cd_demo_sk bigint not null , cd_gender char(1) , cd_marital_status char(1) , cd_education_status char(20) , cd_purchase_estimate bigint , cd_credit_rating char(10) , cd_dep_count bigint , cd_dep_employed_count bigint , cd_dep_college_count bigint ) with (orientation = column) distribute by hash (cd_demo_sk); CREATE TABLE date_dim ( d_date_sk bigint not null, d_date_id char(16) not null, d_date date , d_month_seq bigint , d_week_seq bigint , d_quarter_seq bigint , d_year bigint , d_dow bigint , d_moy bigint , d_dom bigint , d_qoy bigint , d_fy_year bigint , d_fy_quarter_seq bigint , d_fy_week_seq bigint , d_day_name char(9) , d_quarter_name char(6) , d_holiday char(1) , d_weekend char(1) , d_following_holiday char(1) , d_first_dom bigint , d_last_dom bigint , d_same_day_ly bigint , d_same_day_lq bigint , d_current_day char(1) , d_current_week char(1) , d_current_month char(1) , d_current_quarter char(1) , d_current_year char(1) ) with (orientation = column) DISTRIBUTE by hash(d_date_sk) PARTITION BY Range(d_year) ( partition p1 values less than(1950), partition p2 values less than(2000), partition p3 values less than(2050), partition p4 values less than(2100), partition p5 values less than(3000), partition p6 values less than(maxvalue) ); CREATE TABLE warehouse ( w_warehouse_sk bigint not null, w_warehouse_id char(16) not null, w_warehouse_name varchar(20) , w_warehouse_sq_ft bigint , w_street_number char(10) , w_street_name varchar(60) , w_street_type char(15) , w_suite_number char(10) , w_city varchar(60) , w_county varchar(30) , w_state char(2) , w_zip char(10) , w_country varchar(20) , w_gmt_offset decimal(5,2) ) with (orientation = column) distribute by replication; CREATE TABLE ship_mode ( sm_ship_mode_sk bigint not null, sm_ship_mode_id char(16) not null, sm_type char(30) , sm_code char(10) , sm_carrier char(20) , sm_contract char(20) ) with (orientation = column) distribute by replication; CREATE TABLE time_dim ( t_time_sk bigint not null, t_time_id char(16) not null, t_time bigint , t_hour bigint , t_minute bigint , t_second bigint , t_am_pm char(2) , t_shift char(20) , t_sub_shift char(20) , t_meal_time char(20) ) with (orientation = column) distribute by hash (t_time_sk); CREATE TABLE reason ( r_reason_sk bigint not null, r_reason_id char(16) not null, r_reason_desc char(100) ) with (orientation = column) distribute by replication; CREATE TABLE income_band ( ib_income_band_sk bigint not null, ib_lower_bound bigint , ib_upper_bound bigint ) with (orientation = column) distribute by replication; CREATE TABLE item ( i_item_sk bigint not null, i_item_id char(16) not null, i_rec_start_date date , i_rec_end_date date , i_item_desc varchar(200) , i_current_price decimal(7,2) , i_wholesale_cost decimal(7,2) , i_brand_id bigint , i_brand char(50) , i_class_id bigint , i_class char(50) , i_category_id bigint , i_category char(50) , i_manufact_id bigint , i_manufact char(50) , i_size char(20) , i_formulation char(20) , i_color char(20) , i_units char(10) , i_container char(10) , i_manager_id bigint , i_product_name char(50) ) with (orientation = column) distribute by hash (i_item_sk); CREATE TABLE store ( s_store_sk bigint not null, s_store_id char(16) not null, s_rec_start_date date , s_rec_end_date date , s_closed_date_sk bigint , s_store_name varchar(50) , s_number_employees bigint , s_floor_space bigint , s_hours char(20) , s_manager varchar(40) , s_market_id bigint , s_geography_class varchar(100) , s_market_desc varchar(100) , s_market_manager varchar(40) , s_division_id bigint , s_division_name varchar(50) , s_company_id bigint , s_company_name varchar(50) , s_street_number varchar(10) , s_street_name varchar(60) , s_street_type char(15) , s_suite_number char(10) , s_city varchar(60) , s_county varchar(30) , s_state char(2) , s_zip char(10) , s_country varchar(20) , s_gmt_offset decimal(5,2) , s_tax_precentage decimal(5,2) ) with (orientation = column) distribute by replication; CREATE TABLE call_center ( cc_call_center_sk bigint not null, cc_call_center_id char(16) not null, cc_rec_start_date date , cc_rec_end_date date , cc_closed_date_sk bigint , cc_open_date_sk bigint , cc_name varchar(50) , cc_class varchar(50) , cc_employees bigint , cc_sq_ft bigint , cc_hours char(20) , cc_manager varchar(40) , cc_mkt_id bigint , cc_mkt_class char(50) , cc_mkt_desc varchar(100) , cc_market_manager varchar(40) , cc_division bigint , cc_division_name varchar(50) , cc_company bigint , cc_company_name char(50) , cc_street_number char(10) , cc_street_name varchar(60) , cc_street_type char(15) , cc_suite_number char(10) , cc_city varchar(60) , cc_county varchar(30) , cc_state char(2) , cc_zip char(10) , cc_country varchar(20) , cc_gmt_offset decimal(5,2) , cc_tax_percentage decimal(5,2) ) with (orientation = column) distribute by replication; drop table if exists customer; CREATE TABLE customer ( c_customer_sk bigint not null, c_customer_id char(16) not null, c_current_cdemo_sk bigint , c_current_hdemo_sk bigint , c_current_addr_sk bigint , c_first_shipto_date_sk bigint , c_first_sales_date_sk bigint , c_salutation char(10) , c_first_name char(20) , c_last_name char(30) , c_preferred_cust_flag char(1) , c_birth_day bigint , c_birth_month bigint , c_birth_year bigint , c_birth_country varchar(20) , c_login char(13) , c_email_address char(50) , c_last_review_date_sk char(10) ) with (orientation = column) distribute by hash (c_customer_sk); CREATE TABLE web_site ( web_site_sk bigint not null, web_site_id char(16) not null, web_rec_start_date date , web_rec_end_date date , web_name varchar(50) , web_open_date_sk bigint , web_close_date_sk bigint , web_class varchar(50) , web_manager varchar(40) , web_mkt_id bigint , web_mkt_class varchar(50) , web_mkt_desc varchar(100) , web_market_manager varchar(40) , web_company_id bigint , web_company_name char(50) , web_street_number char(10) , web_street_name varchar(60) , web_street_type char(15) , web_suite_number char(10) , web_city varchar(60) , web_county varchar(30) , web_state char(2) , web_zip char(10) , web_country varchar(20) , web_gmt_offset decimal(5,2) , web_tax_percentage decimal(5,2) ) with (orientation = column) distribute by replication; CREATE TABLE household_demographics ( hd_demo_sk bigint not null, hd_income_band_sk bigint , hd_buy_potential char(15) , hd_dep_count bigint , hd_vehicle_count bigint ) with (orientation = column) distribute by hash (hd_demo_sk); CREATE TABLE web_page ( wp_web_page_sk bigint not null, wp_web_page_id char(16) not null, wp_rec_start_date date , wp_rec_end_date date , wp_creation_date_sk bigint , wp_access_date_sk bigint , wp_autogen_flag char(1) , wp_customer_sk bigint , wp_url varchar(100) , wp_type char(50) , wp_char_count bigint , wp_link_count bigint , wp_image_count bigint , wp_max_ad_count bigint ) with (orientation = column) distribute by replication; CREATE TABLE promotion ( p_promo_sk bigint not null, p_promo_id char(16) not null, p_start_date_sk bigint , p_end_date_sk bigint , p_item_sk bigint , p_cost decimal(15,2) , p_response_target bigint , p_promo_name char(50) , p_channel_dmail char(1) , p_channel_email char(1) , p_channel_catalog char(1) , p_channel_tv char(1) , p_channel_radio char(1) , p_channel_press char(1) , p_channel_event char(1) , p_channel_demo char(1) , p_channel_details varchar(100) , p_purpose char(15) , p_discount_active char(1) ) with (orientation = column) DISTRIBUTE BY HASH(p_promo_sk); CREATE TABLE catalog_page ( cp_catalog_page_sk bigint not null, cp_catalog_page_id char(16) not null, cp_start_date_sk bigint , cp_end_date_sk bigint , cp_department varchar(50) , cp_catalog_number bigint , cp_catalog_page_number bigint , cp_description varchar(100) , cp_type varchar(100) ) with (orientation = column) distribute by hash (cp_catalog_page_sk); CREATE TABLE inventory ( inv_date_sk bigint not null, inv_item_sk bigint not null, inv_warehouse_sk bigint not null, inv_quantity_on_hand integer ) with (orientation = column) distribute by hash (inv_item_sk) partition by range(inv_date_sk) ( partition p1 values less than(2451180), partition p2 values less than(2451545), partition p3 values less than(2451911), partition p4 values less than(2452276), partition p5 values less than(2452641), partition p6 values less than(2453006), partition p7 values less than(maxvalue) ) ; CREATE TABLE catalog_returns ( cr_returned_date_sk bigint , cr_returned_time_sk bigint , cr_item_sk bigint not null, cr_refunded_customer_sk bigint , cr_refunded_cdemo_sk bigint , cr_refunded_hdemo_sk bigint , cr_refunded_addr_sk bigint , cr_returning_customer_sk bigint , cr_returning_cdemo_sk bigint , cr_returning_hdemo_sk bigint , cr_returning_addr_sk bigint , cr_call_center_sk bigint , cr_catalog_page_sk bigint , cr_ship_mode_sk bigint , cr_warehouse_sk bigint , cr_reason_sk bigint , cr_order_number bigint not null, cr_return_quantity bigint , cr_return_amount decimal(7,2) , cr_return_tax decimal(7,2) , cr_return_amt_inc_tax decimal(7,2) , cr_fee decimal(7,2) , cr_return_ship_cost decimal(7,2) , cr_refunded_cash decimal(7,2) , cr_reversed_charge decimal(7,2) , cr_store_credit decimal(7,2) , cr_net_loss decimal(7,2) ) with (orientation = column) distribute by hash (cr_item_sk) partition by range(cr_returned_date_sk) ( partition p1 values less than(2450815), partition p2 values less than(2451180), partition p3 values less than(2451545), partition p4 values less than(2451911), partition p5 values less than(2452276), partition p6 values less than(2452641), partition p7 values less than(2453006), partition p8 values less than(maxvalue) ) ; CREATE TABLE web_returns ( wr_returned_date_sk bigint , wr_returned_time_sk bigint , wr_item_sk bigint not null, wr_refunded_customer_sk bigint , wr_refunded_cdemo_sk bigint , wr_refunded_hdemo_sk bigint , wr_refunded_addr_sk bigint , wr_returning_customer_sk bigint , wr_returning_cdemo_sk bigint , wr_returning_hdemo_sk bigint , wr_returning_addr_sk bigint , wr_web_page_sk bigint , wr_reason_sk bigint , wr_order_number bigint not null, wr_return_quantity bigint , wr_return_amt decimal(7,2) , wr_return_tax decimal(7,2) , wr_return_amt_inc_tax decimal(7,2) , wr_fee decimal(7,2) , wr_return_ship_cost decimal(7,2) , wr_refunded_cash decimal(7,2) , wr_reversed_charge decimal(7,2) , wr_account_credit decimal(7,2) , wr_net_loss decimal(7,2) ) with (orientation = column) distribute by hash (wr_item_sk) partition by range(wr_returned_date_sk) ( partition p1 values less than(2450815), partition p2 values less than(2451180), partition p3 values less than(2451545), partition p4 values less than(2451911), partition p5 values less than(2452276), partition p6 values less than(2452641), partition p7 values less than(2453006), partition p8 values less than(maxvalue) ) ; CREATE TABLE store_returns ( sr_returned_date_sk bigint , sr_return_time_sk bigint , sr_item_sk bigint not null, sr_customer_sk bigint , sr_cdemo_sk bigint , sr_hdemo_sk bigint , sr_addr_sk bigint , sr_store_sk bigint , sr_reason_sk bigint , sr_ticket_number bigint not null, sr_return_quantity bigint , sr_return_amt decimal(7,2) , sr_return_tax decimal(7,2) , sr_return_amt_inc_tax decimal(7,2) , sr_fee decimal(7,2) , sr_return_ship_cost decimal(7,2) , sr_refunded_cash decimal(7,2) , sr_reversed_charge decimal(7,2) , sr_store_credit decimal(7,2) , sr_net_loss decimal(7,2) ) with (orientation = column) distribute by hash (sr_item_sk) partition by range(sr_returned_date_sk) ( partition p1 values less than (2451180) , partition p2 values less than (2451545) , partition p3 values less than (2451911) , partition p4 values less than (2452276) , partition p5 values less than (2452641) , partition p6 values less than (2453006) , partition p7 values less than (maxvalue) ) ; CREATE TABLE web_sales ( ws_sold_date_sk bigint , ws_sold_time_sk bigint , ws_ship_date_sk bigint , ws_item_sk bigint not null, ws_bill_customer_sk bigint , ws_bill_cdemo_sk bigint , ws_bill_hdemo_sk bigint , ws_bill_addr_sk bigint , ws_ship_customer_sk bigint , ws_ship_cdemo_sk bigint , ws_ship_hdemo_sk bigint , ws_ship_addr_sk bigint , ws_web_page_sk bigint , ws_web_site_sk bigint , ws_ship_mode_sk bigint , ws_warehouse_sk bigint , ws_promo_sk bigint , ws_order_number bigint not null, ws_quantity bigint , ws_wholesale_cost decimal(7,2) , ws_list_price decimal(7,2) , ws_sales_price decimal(7,2) , ws_ext_discount_amt decimal(7,2) , ws_ext_sales_price decimal(7,2) , ws_ext_wholesale_cost decimal(7,2) , ws_ext_list_price decimal(7,2) , ws_ext_tax decimal(7,2) , ws_coupon_amt decimal(7,2) , ws_ext_ship_cost decimal(7,2) , ws_net_paid decimal(7,2) , ws_net_paid_inc_tax decimal(7,2) , ws_net_paid_inc_ship decimal(7,2) , ws_net_paid_inc_ship_tax decimal(7,2) , ws_net_profit decimal(7,2) ) with (orientation = column) distribute by hash (ws_item_sk) partition by range(ws_sold_date_sk) ( partition p1 values less than(2451180), partition p2 values less than(2451545), partition p3 values less than(2451911), partition p4 values less than(2452276), partition p5 values less than(2452641), partition p6 values less than(2453006), partition p7 values less than(maxvalue) ) ; CREATE TABLE catalog_sales ( cs_sold_date_sk bigint , cs_sold_time_sk bigint , cs_ship_date_sk bigint , cs_bill_customer_sk bigint , cs_bill_cdemo_sk bigint , cs_bill_hdemo_sk bigint , cs_bill_addr_sk bigint , cs_ship_customer_sk bigint , cs_ship_cdemo_sk bigint , cs_ship_hdemo_sk bigint , cs_ship_addr_sk bigint , cs_call_center_sk bigint , cs_catalog_page_sk bigint , cs_ship_mode_sk bigint , cs_warehouse_sk bigint , cs_item_sk bigint not null, cs_promo_sk bigint , cs_order_number bigint not null, cs_quantity bigint , cs_wholesale_cost decimal(7,2) , cs_list_price decimal(7,2) , cs_sales_price decimal(7,2) , cs_ext_discount_amt decimal(7,2) , cs_ext_sales_price decimal(7,2) , cs_ext_wholesale_cost decimal(7,2) , cs_ext_list_price decimal(7,2) , cs_ext_tax decimal(7,2) , cs_coupon_amt decimal(7,2) , cs_ext_ship_cost decimal(7,2) , cs_net_paid decimal(7,2) , cs_net_paid_inc_tax decimal(7,2) , cs_net_paid_inc_ship decimal(7,2) , cs_net_paid_inc_ship_tax decimal(7,2) , cs_net_profit decimal(7,2) ) with (orientation = column) distribute by hash (cs_item_sk) partition by range(cs_sold_date_sk) ( partition p1 values less than(2451180), partition p2 values less than(2451545), partition p3 values less than(2451911), partition p4 values less than(2452276), partition p5 values less than(2452641), partition p6 values less than(2453006), partition p7 values less than(maxvalue) ) ; CREATE TABLE store_sales ( ss_sold_date_sk bigint , ss_sold_time_sk bigint , ss_item_sk bigint not null, ss_customer_sk bigint , ss_cdemo_sk bigint , ss_hdemo_sk bigint , ss_addr_sk bigint , ss_store_sk bigint , ss_promo_sk bigint , ss_ticket_number bigint not null, ss_quantity bigint , ss_wholesale_cost decimal(7,2) , ss_list_price decimal(7,2) , ss_sales_price decimal(7,2) , ss_ext_discount_amt decimal(7,2) , ss_ext_sales_price decimal(7,2) , ss_ext_wholesale_cost decimal(7,2) , ss_ext_list_price decimal(7,2) , ss_ext_tax decimal(7,2) , ss_coupon_amt decimal(7,2) , ss_net_paid decimal(7,2) , ss_net_paid_inc_tax decimal(7,2) , ss_net_profit decimal(7,2) ) with (orientation = column) distribute by hash (ss_item_sk) partition by range(ss_sold_date_sk) ( partition p1 values less than(2451180), partition p2 values less than(2451545), partition p3 values less than(2451911), partition p4 values less than(2452276), partition p5 values less than(2452641), partition p6 values less than(2453006), partition p7 values less than(maxvalue) ) ; 执行以下SQL语句创建GDS外表(共24张表)。 以下每个外表的“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 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 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 DROP FOREIGN TABLE IF EXISTS customer_address_ext; CREATE FOREIGN TABLE customer_address_ext ( ca_address_sk bigint , ca_address_id char(16) , 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(5,2) , ca_location_type char(20) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/customer_address.dat* | gsfs://192.168.0.90:5003/customer_address.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with customer_address_err ; DROP FOREIGN TABLE IF EXISTS customer_demographics_ext; CREATE FOREIGN TABLE customer_demographics_ext ( cd_demo_sk bigint , cd_gender char(1) , cd_marital_status char(1) , cd_education_status char(20) , cd_purchase_estimate bigint , cd_credit_rating char(10) , cd_dep_count bigint , cd_dep_employed_count bigint , cd_dep_college_count bigint ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/customer_demographics.dat* | gsfs://192.168.0.90:5003/customer_demographics.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with customer_demographics_err ; DROP FOREIGN TABLE IF EXISTS date_dim_ext; CREATE FOREIGN TABLE date_dim_ext ( d_date_sk bigint , d_date_id char(16) , d_date date , d_month_seq bigint , d_week_seq bigint , d_quarter_seq bigint , d_year bigint , d_dow bigint , d_moy bigint , d_dom bigint , d_qoy bigint , d_fy_year bigint , d_fy_quarter_seq bigint , d_fy_week_seq bigint , d_day_name char(9) , d_quarter_name char(6) , d_holiday char(1) , d_weekend char(1) , d_following_holiday char(1) , d_first_dom bigint , d_last_dom bigint , d_same_day_ly bigint , d_same_day_lq bigint , d_current_day char(1) , d_current_week char(1) , d_current_month char(1) , d_current_quarter char(1) , d_current_year char(1) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/date_dim.dat* | gsfs://192.168.0.90:5003/date_dim.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with date_dim_err ; DROP FOREIGN TABLE IF EXISTS warehouse_ext; CREATE FOREIGN TABLE warehouse_ext ( w_warehouse_sk bigint , w_warehouse_id char(16) , w_warehouse_name varchar(20) , w_warehouse_sq_ft bigint , w_street_number char(10) , w_street_name varchar(60) , w_street_type char(15) , w_suite_number char(10) , w_city varchar(60) , w_county varchar(30) , w_state char(2) , w_zip char(10) , w_country varchar(20) , w_gmt_offset decimal(5,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/warehouse.dat* | gsfs://192.168.0.90:5003/warehouse.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with warehouse_err ; DROP FOREIGN TABLE IF EXISTS ship_mode_ext; CREATE FOREIGN TABLE ship_mode_ext ( sm_ship_mode_sk bigint , sm_ship_mode_id char(16) , sm_type char(30) , sm_code char(10) , sm_carrier char(20) , sm_contract char(20) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/ship_mode.dat* | gsfs://192.168.0.90:5003/ship_mode.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with ship_mode_err ; DROP FOREIGN TABLE IF EXISTS time_dim_ext; CREATE FOREIGN TABLE time_dim_ext ( t_time_sk bigint , t_time_id char(16) , t_time bigint , t_hour bigint , t_minute bigint , t_second bigint , t_am_pm char(2) , t_shift char(20) , t_sub_shift char(20) , t_meal_time char(20) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/time_dim.dat* | gsfs://192.168.0.90:5003/time_dim.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with time_dim_err ; DROP FOREIGN TABLE IF EXISTS reason_ext; CREATE FOREIGN TABLE reason_ext ( r_reason_sk bigint , r_reason_id char(16) , r_reason_desc char(100) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/reason.dat* | gsfs://192.168.0.90:5003/reason.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with reason_err ; DROP FOREIGN TABLE IF EXISTS income_band_ext; CREATE FOREIGN TABLE income_band_ext ( ib_income_band_sk bigint , ib_lower_bound bigint , ib_upper_bound bigint ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/income_band.dat* | gsfs://192.168.0.90:5003/income_band.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with income_band_err ; DROP FOREIGN TABLE IF EXISTS item_ext; CREATE FOREIGN TABLE item_ext ( i_item_sk bigint , i_item_id char(16) , i_rec_start_date date , i_rec_end_date date , i_item_desc varchar(200) , i_current_price decimal(7,2) , i_wholesale_cost decimal(7,2) , i_brand_id bigint , i_brand char(50) , i_class_id bigint , i_class char(50) , i_category_id bigint , i_category char(50) , i_manufact_id bigint , i_manufact char(50) , i_size char(20) , i_formulation char(20) , i_color char(20) , i_units char(10) , i_container char(10) , i_manager_id bigint , i_product_name char(50) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/item.dat* | gsfs://192.168.0.90:5003/item.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with item_err ; DROP FOREIGN TABLE IF EXISTS store_ext; CREATE FOREIGN TABLE store_ext ( s_store_sk bigint , s_store_id char(16) , s_rec_start_date date , s_rec_end_date date , s_closed_date_sk bigint , s_store_name varchar(50) , s_number_employees bigint , s_floor_space bigint , s_hours char(20) , s_manager varchar(40) , s_market_id bigint , s_geography_class varchar(100) , s_market_desc varchar(100) , s_market_manager varchar(40) , s_division_id bigint , s_division_name varchar(50) , s_company_id bigint , s_company_name varchar(50) , s_street_number varchar(10) , s_street_name varchar(60) , s_street_type char(15) , s_suite_number char(10) , s_city varchar(60) , s_county varchar(30) , s_state char(2) , s_zip char(10) , s_country varchar(20) , s_gmt_offset decimal(5,2) , s_tax_precentage decimal(5,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/store_[^rs]_* | gsfs://192.168.0.90:5003/store_[^rs]_*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with store_err ; DROP FOREIGN TABLE IF EXISTS call_center_ext; CREATE FOREIGN TABLE call_center_ext ( cc_call_center_sk bigint , cc_call_center_id char(16) , cc_rec_start_date date , cc_rec_end_date date , cc_closed_date_sk bigint , cc_open_date_sk bigint , cc_name varchar(50) , cc_class varchar(50) , cc_employees bigint , cc_sq_ft bigint , cc_hours char(20) , cc_manager varchar(40) , cc_mkt_id bigint , cc_mkt_class char(50) , cc_mkt_desc varchar(100) , cc_market_manager varchar(40) , cc_division bigint , cc_division_name varchar(50) , cc_company bigint , cc_company_name char(50) , cc_street_number char(10) , cc_street_name varchar(60) , cc_street_type char(15) , cc_suite_number char(10) , cc_city varchar(60) , cc_county varchar(30) , cc_state char(2) , cc_zip char(10) , cc_country varchar(20) , cc_gmt_offset decimal(5,2) , cc_tax_percentage decimal(5,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/call_center.dat* | gsfs://192.168.0.90:5003/call_center.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with call_center_err ; DROP FOREIGN TABLE IF EXISTS customer_ext; CREATE FOREIGN TABLE customer_ext ( c_customer_sk bigint , c_customer_id char(16) , c_current_cdemo_sk bigint , c_current_hdemo_sk bigint , c_current_addr_sk bigint , c_first_shipto_date_sk bigint , c_first_sales_date_sk bigint , c_salutation char(10) , c_first_name char(20) , c_last_name char(30) , c_preferred_cust_flag char(1) , c_birth_day bigint , c_birth_month bigint , c_birth_year bigint , c_birth_country varchar(20) , c_login char(13) , c_email_address char(50) , c_last_review_date_sk char(10) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/customer_[^ad]_* | gsfs://192.168.0.90:5003/customer_[^ad]_*', FORMAT 'TEXT' , DELIMITER '|', encoding 'GBK', mode 'Normal' ) with customer_err ; DROP FOREIGN TABLE IF EXISTS web_site_ext; CREATE FOREIGN TABLE web_site_ext ( web_site_sk bigint , web_site_id char(16) , web_rec_start_date date , web_rec_end_date date , web_name varchar(50) , web_open_date_sk bigint , web_close_date_sk bigint , web_class varchar(50) , web_manager varchar(40) , web_mkt_id bigint , web_mkt_class varchar(50) , web_mkt_desc varchar(100) , web_market_manager varchar(40) , web_company_id bigint , web_company_name char(50) , web_street_number char(10) , web_street_name varchar(60) , web_street_type char(15) , web_suite_number char(10) , web_city varchar(60) , web_county varchar(30) , web_state char(2) , web_zip char(10) , web_country varchar(20) , web_gmt_offset decimal(5,2) , web_tax_percentage decimal(5,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/web_site.dat* | gsfs://192.168.0.90:5003/web_site.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with web_site_err ; DROP FOREIGN TABLE IF EXISTS store_returns_ext; CREATE FOREIGN TABLE store_returns_ext ( sr_returned_date_sk bigint , sr_return_time_sk bigint , sr_item_sk bigint , sr_customer_sk bigint , sr_cdemo_sk bigint , sr_hdemo_sk bigint , sr_addr_sk bigint , sr_store_sk bigint , sr_reason_sk bigint , sr_ticket_number bigint , sr_return_quantity bigint , sr_return_amt decimal(7,2) , sr_return_tax decimal(7,2) , sr_return_amt_inc_tax decimal(7,2) , sr_fee decimal(7,2) , sr_return_ship_cost decimal(7,2) , sr_refunded_cash decimal(7,2) , sr_reversed_charge decimal(7,2) , sr_store_credit decimal(7,2) , sr_net_loss decimal(7,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/store_returns.dat* | gsfs://192.168.0.90:5003/store_returns.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with store_returns_err ; DROP FOREIGN TABLE IF EXISTS household_demographics_ext; CREATE FOREIGN TABLE household_demographics_ext ( hd_demo_sk bigint , hd_income_band_sk bigint , hd_buy_potential char(15) , hd_dep_count bigint , hd_vehicle_count bigint ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/household_demographics.dat* | gsfs://192.168.0.90:5003/household_demographics.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with household_demographics_err ; DROP FOREIGN TABLE IF EXISTS web_page_ext; CREATE FOREIGN TABLE web_page_ext ( wp_web_page_sk bigint , wp_web_page_id char(16) , wp_rec_start_date date , wp_rec_end_date date , wp_creation_date_sk bigint , wp_access_date_sk bigint , wp_autogen_flag char(1) , wp_customer_sk bigint , wp_url varchar(100) , wp_type char(50) , wp_char_count bigint , wp_link_count bigint , wp_image_count bigint , wp_max_ad_count bigint ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/web_page.dat* | gsfs://192.168.0.90:5003/web_page.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with web_page_err ; DROP FOREIGN TABLE IF EXISTS promotion_ext; CREATE FOREIGN TABLE promotion_ext ( p_promo_sk bigint , p_promo_id char(16) , p_start_date_sk bigint , p_end_date_sk bigint , p_item_sk bigint , p_cost decimal(15,2) , p_response_target bigint , p_promo_name char(50) , p_channel_dmail char(1) , p_channel_email char(1) , p_channel_catalog char(1) , p_channel_tv char(1) , p_channel_radio char(1) , p_channel_press char(1) , p_channel_event char(1) , p_channel_demo char(1) , p_channel_details varchar(100) , p_purpose char(15) , p_discount_active char(1) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/promotion.dat* | gsfs://192.168.0.90:5003/promotion.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with promotion_err ; DROP FOREIGN TABLE IF EXISTS catalog_page_ext; CREATE FOREIGN TABLE catalog_page_ext ( cp_catalog_page_sk bigint , cp_catalog_page_id char(16) , cp_start_date_sk bigint , cp_end_date_sk bigint , cp_department varchar(50) , cp_catalog_number bigint , cp_catalog_page_number bigint , cp_description varchar(100) , cp_type varchar(100) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/catalog_page.dat* | gsfs://192.168.0.90:5003/catalog_page.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with catalog_page_err ; DROP FOREIGN TABLE IF EXISTS inventory_ext; CREATE FOREIGN TABLE inventory_ext ( inv_date_sk bigint , inv_item_sk bigint , inv_warehouse_sk bigint , inv_quantity_on_hand integer ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/inventory.dat* | gsfs://192.168.0.90:5003/inventory.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with inventory_err ; DROP FOREIGN TABLE IF EXISTS catalog_returns_ext; CREATE FOREIGN TABLE catalog_returns_ext ( cr_returned_date_sk bigint , cr_returned_time_sk bigint , cr_item_sk bigint , cr_refunded_customer_sk bigint , cr_refunded_cdemo_sk bigint , cr_refunded_hdemo_sk bigint , cr_refunded_addr_sk bigint , cr_returning_customer_sk bigint , cr_returning_cdemo_sk bigint , cr_returning_hdemo_sk bigint , cr_returning_addr_sk bigint , cr_call_center_sk bigint , cr_catalog_page_sk bigint , cr_ship_mode_sk bigint , cr_warehouse_sk bigint , cr_reason_sk bigint , cr_order_number bigint , cr_return_quantity bigint , cr_return_amount decimal(7,2) , cr_return_tax decimal(7,2) , cr_return_amt_inc_tax decimal(7,2) , cr_fee decimal(7,2) , cr_return_ship_cost decimal(7,2) , cr_refunded_cash decimal(7,2) , cr_reversed_charge decimal(7,2) , cr_store_credit decimal(7,2) , cr_net_loss decimal(7,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/catalog_returns.dat* | gsfs://192.168.0.90:5003/catalog_returns.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with catalog_returns_err ; DROP FOREIGN TABLE IF EXISTS web_returns_ext; CREATE FOREIGN TABLE web_returns_ext ( wr_returned_date_sk bigint , wr_returned_time_sk bigint , wr_item_sk bigint , wr_refunded_customer_sk bigint , wr_refunded_cdemo_sk bigint , wr_refunded_hdemo_sk bigint , wr_refunded_addr_sk bigint , wr_returning_customer_sk bigint , wr_returning_cdemo_sk bigint , wr_returning_hdemo_sk bigint , wr_returning_addr_sk bigint , wr_web_page_sk bigint , wr_reason_sk bigint , wr_order_number bigint , wr_return_quantity bigint , wr_return_amt decimal(7,2) , wr_return_tax decimal(7,2) , wr_return_amt_inc_tax decimal(7,2) , wr_fee decimal(7,2) , wr_return_ship_cost decimal(7,2) , wr_refunded_cash decimal(7,2) , wr_reversed_charge decimal(7,2) , wr_account_credit decimal(7,2) , wr_net_loss decimal(7,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/web_returns.dat* | gsfs://192.168.0.90:5003/web_returns.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with web_returns_err ; DROP FOREIGN TABLE IF EXISTS web_sales_ext; CREATE FOREIGN TABLE web_sales_ext ( ws_sold_date_sk bigint , ws_sold_time_sk bigint , ws_ship_date_sk bigint , ws_item_sk bigint , ws_bill_customer_sk bigint , ws_bill_cdemo_sk bigint , ws_bill_hdemo_sk bigint , ws_bill_addr_sk bigint , ws_ship_customer_sk bigint , ws_ship_cdemo_sk bigint , ws_ship_hdemo_sk bigint , ws_ship_addr_sk bigint , ws_web_page_sk bigint , ws_web_site_sk bigint , ws_ship_mode_sk bigint , ws_warehouse_sk bigint , ws_promo_sk bigint , ws_order_number bigint , ws_quantity bigint , ws_wholesale_cost decimal(7,2) , ws_list_price decimal(7,2) , ws_sales_price decimal(7,2) , ws_ext_discount_amt decimal(7,2) , ws_ext_sales_price decimal(7,2) , ws_ext_wholesale_cost decimal(7,2) , ws_ext_list_price decimal(7,2) , ws_ext_tax decimal(7,2) , ws_coupon_amt decimal(7,2) , ws_ext_ship_cost decimal(7,2) , ws_net_paid decimal(7,2) , ws_net_paid_inc_tax decimal(7,2) , ws_net_paid_inc_ship decimal(7,2) , ws_net_paid_inc_ship_tax decimal(7,2) , ws_net_profit decimal(7,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/web_sales.dat* | gsfs://192.168.0.90:5003/web_sales.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with web_sales_err ; DROP FOREIGN TABLE IF EXISTS catalog_sales_ext; CREATE FOREIGN TABLE catalog_sales_ext ( cs_sold_date_sk bigint , cs_sold_time_sk bigint , cs_ship_date_sk bigint , cs_bill_customer_sk bigint , cs_bill_cdemo_sk bigint , cs_bill_hdemo_sk bigint , cs_bill_addr_sk bigint , cs_ship_customer_sk bigint , cs_ship_cdemo_sk bigint , cs_ship_hdemo_sk bigint , cs_ship_addr_sk bigint , cs_call_center_sk bigint , cs_catalog_page_sk bigint , cs_ship_mode_sk bigint , cs_warehouse_sk bigint , cs_item_sk bigint , cs_promo_sk bigint , cs_order_number bigint , cs_quantity bigint , cs_wholesale_cost decimal(7,2) , cs_list_price decimal(7,2) , cs_sales_price decimal(7,2) , cs_ext_discount_amt decimal(7,2) , cs_ext_sales_price decimal(7,2) , cs_ext_wholesale_cost decimal(7,2) , cs_ext_list_price decimal(7,2) , cs_ext_tax decimal(7,2) , cs_coupon_amt decimal(7,2) , cs_ext_ship_cost decimal(7,2) , cs_net_paid decimal(7,2) , cs_net_paid_inc_tax decimal(7,2) , cs_net_paid_inc_ship decimal(7,2) , cs_net_paid_inc_ship_tax decimal(7,2) , cs_net_profit decimal(7,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/catalog_sales.dat* | gsfs://192.168.0.90:5003/catalog_sales.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with catalog_sales_err ; DROP FOREIGN TABLE IF EXISTS store_sales_ext; CREATE FOREIGN TABLE store_sales_ext ( ss_sold_date_sk bigint , ss_sold_time_sk bigint , ss_item_sk bigint , ss_customer_sk bigint , ss_cdemo_sk bigint , ss_hdemo_sk bigint , ss_addr_sk bigint , ss_store_sk bigint , ss_promo_sk bigint , ss_ticket_number bigint , ss_quantity bigint , ss_wholesale_cost decimal(7,2) , ss_list_price decimal(7,2) , ss_sales_price decimal(7,2) , ss_ext_discount_amt decimal(7,2) , ss_ext_sales_price decimal(7,2) , ss_ext_wholesale_cost decimal(7,2) , ss_ext_list_price decimal(7,2) , ss_ext_tax decimal(7,2) , ss_coupon_amt decimal(7,2) , ss_net_paid decimal(7,2) , ss_net_paid_inc_tax decimal(7,2) , ss_net_profit decimal(7,2) ) SERVER gsmpp_server OPTIONS(location 'gsfs://192.168.0.90:5002/store_sales.dat* | gsfs://192.168.0.90:5003/store_sales.dat*', FORMAT 'TEXT' , DELIMITER '|', encoding 'utf8', mode 'Normal' ) with store_sales_err ; 执行以下SQL语句导入数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 INSERT INTO customer_address SELECT * FROM customer_address_ext; INSERT INTO customer_demographics SELECT * FROM customer_demographics_ext; INSERT INTO date_dim SELECT * FROM date_dim_ext; INSERT INTO warehouse SELECT * FROM warehouse_ext; INSERT INTO ship_mode SELECT * FROM ship_mode_ext; INSERT INTO time_dim SELECT * FROM time_dim_ext; INSERT INTO reason SELECT * FROM reason_ext; INSERT INTO income_band SELECT * FROM income_band_ext; INSERT INTO item SELECT * FROM item_ext; INSERT INTO store SELECT * FROM store_ext; INSERT INTO call_center SELECT * FROM call_center_ext; INSERT INTO customer SELECT * FROM customer_ext; INSERT INTO web_site SELECT * FROM web_site_ext; INSERT INTO household_demographics SELECT * FROM household_demographics_ext; INSERT INTO web_page SELECT * FROM web_page_ext; INSERT INTO promotion SELECT * FROM promotion_ext; INSERT INTO catalog_page SELECT * FROM catalog_page_ext; INSERT INTO inventory SELECT * FROM inventory_ext; INSERT INTO catalog_returns SELECT * FROM catalog_returns_ext; INSERT INTO web_returns SELECT * FROM web_returns_ext; INSERT INTO store_returns SELECT * FROM store_returns_ext; INSERT INTO web_sales SELECT * FROM web_sales_ext; INSERT INTO catalog_sales SELECT * FROM catalog_sales_ext; INSERT INTO store_sales SELECT * FROM store_sales_ext;
  • 表数据行数 表1 TPC-DS 序号 表名 行数 1 customer_address 6,000,000 2 customer_demographics 1,920,800 3 date_dim 73,049 4 warehouse 20 5 ship_mode 20 6 time_dim 86,400 7 reason 65 8 income_band 20 9 item 300,000 10 store 1,002 11 call_center 42 12 customer 12,000,000 13 web_site 54 14 household_demographics 7,200 15 web_page 3,000 16 promotion 1,500 17 catalog_page 30,000 18 inventory 783,000,000 19 catalog_returns 143,996,756 20 web_returns 71,997,522 21 store_returns 287,999,764 22 web_sales 720,000,376 23 catalog_sales 1,439,980,416 24 store_sales 2,879,987,999
  • 创建数据仓库 GaussDB(DWS) 参见“创建集群”章节创建GaussDB(DWS)数据仓库。创建成功后,记录集群的内网IP。 为确保ECS与GaussDB(DWS)网络互通,GaussDB(DWS)数据仓库需要与ECS在同一个区域,同一个虚拟私有云和子网下。 表1 DWS规格 参数项 参数取值 区域 华北-北京4 可用区 可用区1 产品类型 标准数仓 节点规格 8xlarge | 32 vCPUs | 256GB 每节点可用存储 500GB 节点数 3 父主题: 创建弹性云服务器 ECS和数据仓库 GaussDB(DWS)
  • SQL20 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 select i_item_id ,i_item_desc ,i_category ,i_class ,i_current_price ,sum(cs_ext_sales_price) as itemrevenue ,sum(cs_ext_sales_price)*100/sum(sum(cs_ext_sales_price)) over (partition by i_class) as revenueratio from catalog_sales ,item ,date_dim where cs_item_sk = i_item_sk and i_category in ('Sports', 'Shoes', 'Women') and cs_sold_date_sk = d_date_sk and d_date between cast('2001-03-21' as date) and (cast('2001-03-21' as date) + 30) group by i_item_id ,i_item_desc ,i_category ,i_class ,i_current_price order by i_category ,i_class ,i_item_id ,i_item_desc ,revenueratio limit 100;
  • SQL18 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 select i_item_id, ca_country, ca_state, ca_county, avg( cast(cs_quantity as decimal(12,2))) agg1, avg( cast(cs_list_price as decimal(12,2))) agg2, avg( cast(cs_coupon_amt as decimal(12,2))) agg3, avg( cast(cs_sales_price as decimal(12,2))) agg4, avg( cast(cs_net_profit as decimal(12,2))) agg5, avg( cast(c_birth_year as decimal(12,2))) agg6, avg( cast(cd1.cd_dep_count as decimal(12,2))) agg7 from catalog_sales, customer_demographics cd1, customer_demographics cd2, customer, customer_address, date_dim, item where cs_sold_date_sk = d_date_sk and cs_item_sk = i_item_sk and cs_bill_cdemo_sk = cd1.cd_demo_sk and cs_bill_customer_sk = c_customer_sk and cd1.cd_gender = 'M' and cd1.cd_education_status = 'Primary' and c_current_cdemo_sk = cd2.cd_demo_sk and c_current_addr_sk = ca_address_sk and c_birth_month in (10,1,8,7,3,5) and d_year = 1998 and ca_state in ('NE','OK','NC' ,'CO','ID','AR','MO') group by rollup (i_item_id, ca_country, ca_state, ca_county) order by ca_country, ca_state, ca_county, i_item_id limit 100;
  • SQL13 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 select avg(ss_quantity) ,avg(ss_ext_sales_price) ,avg(ss_ext_wholesale_cost) ,sum(ss_ext_wholesale_cost) from store_sales ,store ,customer_demographics ,household_demographics ,customer_address ,date_dim where s_store_sk = ss_store_sk and ss_sold_date_sk = d_date_sk and d_year = 2001 and((ss_hdemo_sk=hd_demo_sk and cd_demo_sk = ss_cdemo_sk and cd_marital_status = 'U' and cd_education_status = '4 yr Degree' and ss_sales_price between 100.00 and 150.00 and hd_dep_count = 3 )or (ss_hdemo_sk=hd_demo_sk and cd_demo_sk = ss_cdemo_sk and cd_marital_status = 'D' and cd_education_status = '2 yr Degree' and ss_sales_price between 50.00 and 100.00 and hd_dep_count = 1 ) or (ss_hdemo_sk=hd_demo_sk and cd_demo_sk = ss_cdemo_sk and cd_marital_status = 'S' and cd_education_status = 'Advanced Degree' and ss_sales_price between 150.00 and 200.00 and hd_dep_count = 1 )) and((ss_addr_sk = ca_address_sk and ca_country = 'United States' and ca_state in ('IL', 'WI', 'TN') and ss_net_profit between 100 and 200 ) or (ss_addr_sk = ca_address_sk and ca_country = 'United States' and ca_state in ('MO', 'OK', 'WA') and ss_net_profit between 150 and 300 ) or (ss_addr_sk = ca_address_sk and ca_country = 'United States' and ca_state in ('NE', 'VA', 'GA') and ss_net_profit between 50 and 250 )) ;
  • SQL17 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 select i_item_id ,i_item_desc ,s_state ,count(ss_quantity) as store_sales_quantitycount ,avg(ss_quantity) as store_sales_quantityave ,stddev_samp(ss_quantity) as store_sales_quantitystdev ,stddev_samp(ss_quantity)/avg(ss_quantity) as store_sales_quantitycov ,count(sr_return_quantity) as store_returns_quantitycount ,avg(sr_return_quantity) as store_returns_quantityave ,stddev_samp(sr_return_quantity) as store_returns_quantitystdev ,stddev_samp(sr_return_quantity)/avg(sr_return_quantity) as store_returns_quantitycov ,count(cs_quantity) as catalog_sales_quantitycount ,avg(cs_quantity) as catalog_sales_quantityave ,stddev_samp(cs_quantity) as catalog_sales_quantitystdev ,stddev_samp(cs_quantity)/avg(cs_quantity) as catalog_sales_quantitycov from store_sales ,store_returns ,catalog_sales ,date_dim d1 ,date_dim d2 ,date_dim d3 ,store ,item where d1.d_quarter_name = '2000Q1' and d1.d_date_sk = ss_sold_date_sk and i_item_sk = ss_item_sk and s_store_sk = ss_store_sk and ss_customer_sk = sr_customer_sk and ss_item_sk = sr_item_sk and ss_ticket_number = sr_ticket_number and sr_returned_date_sk = d2.d_date_sk and d2.d_quarter_name in ('2000Q1','2000Q2','2000Q3') and sr_customer_sk = cs_bill_customer_sk and sr_item_sk = cs_item_sk and cs_sold_date_sk = d3.d_date_sk and d3.d_quarter_name in ('2000Q1','2000Q2','2000Q3') group by i_item_id ,i_item_desc ,s_state order by i_item_id ,i_item_desc ,s_state limit 100;
  • SQL12 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 select i_item_id ,i_item_desc ,i_category ,i_class ,i_current_price ,sum(ws_ext_sales_price) as itemrevenue ,sum(ws_ext_sales_price)*100/sum(sum(ws_ext_sales_price)) over (partition by i_class) as revenueratio from web_sales ,item ,date_dim where ws_item_sk = i_item_sk and i_category in ('Music', 'Shoes', 'Children') and ws_sold_date_sk = d_date_sk and d_date between cast('2000-05-14' as date) and (cast('2000-05-14' as date) + 30 ) group by i_item_id ,i_item_desc ,i_category ,i_class ,i_current_price order by i_category ,i_class ,i_item_id ,i_item_desc ,revenueratio limit 100;
  • SQL10 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 select cd_gender, cd_marital_status, cd_education_status, count(*) cnt1, cd_purchase_estimate, count(*) cnt2, cd_credit_rating, count(*) cnt3, cd_dep_count, count(*) cnt4, cd_dep_employed_count, count(*) cnt5, cd_dep_college_count, count(*) cnt6 from customer c,customer_address ca,customer_demographics where c.c_current_addr_sk = ca.ca_address_sk and ca_county in ('Clark County','Richardson County','Tom Green County','Sullivan County','Cass County') and cd_demo_sk = c.c_current_cdemo_sk and exists (select * from store_sales,date_dim where c.c_customer_sk = ss_customer_sk and ss_sold_date_sk = d_date_sk and d_year = 2000 and d_moy between 1 and 1+3) and (exists (select * from web_sales,date_dim where c.c_customer_sk = ws_bill_customer_sk and ws_sold_date_sk = d_date_sk and d_year = 2000 and d_moy between 1 ANd 1+3) or exists (select * from catalog_sales,date_dim where c.c_customer_sk = cs_ship_customer_sk and cs_sold_date_sk = d_date_sk and d_year = 2000 and d_moy between 1 and 1+3)) group by cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count order by cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count limit 100;
  • SQL7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 select i_item_id, avg(ss_quantity) agg1, avg(ss_list_price) agg2, avg(ss_coupon_amt) agg3, avg(ss_sales_price) agg4 from store_sales, customer_demographics, date_dim, item, promotion where ss_sold_date_sk = d_date_sk and ss_item_sk = i_item_sk and ss_cdemo_sk = cd_demo_sk and ss_promo_sk = p_promo_sk and cd_gender = 'M' and cd_marital_status = 'U' and cd_education_status = 'College' and (p_channel_email = 'N' or p_channel_event = 'N') and d_year = 1999 group by i_item_id order by i_item_id limit 100;
  • SQL5 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 with ssr as (select s_store_id, sum(sales_price) as sales, sum(profit) as profit, sum(return_amt) as returns, sum(net_loss) as profit_loss from ( select ss_store_sk as store_sk, ss_sold_date_sk as date_sk, ss_ext_sales_price as sales_price, ss_net_profit as profit, cast(0 as decimal(7,2)) as return_amt, cast(0 as decimal(7,2)) as net_loss from store_sales union all select sr_store_sk as store_sk, sr_returned_date_sk as date_sk, cast(0 as decimal(7,2)) as sales_price, cast(0 as decimal(7,2)) as profit, sr_return_amt as return_amt, sr_net_loss as net_loss from store_returns ) salesreturns, date_dim, store where date_sk = d_date_sk and d_date between cast('2002-08-05' as date) and (cast('2002-08-05' as date) + 14 ) and store_sk = s_store_sk group by s_store_id) , csr as (select cp_catalog_page_id, sum(sales_price) as sales, sum(profit) as profit, sum(return_amt) as returns, sum(net_loss) as profit_loss from ( select cs_catalog_page_sk as page_sk, cs_sold_date_sk as date_sk, cs_ext_sales_price as sales_price, cs_net_profit as profit, cast(0 as decimal(7,2)) as return_amt, cast(0 as decimal(7,2)) as net_loss from catalog_sales union all select cr_catalog_page_sk as page_sk, cr_returned_date_sk as date_sk, cast(0 as decimal(7,2)) as sales_price, cast(0 as decimal(7,2)) as profit, cr_return_amount as return_amt, cr_net_loss as net_loss from catalog_returns ) salesreturns, date_dim, catalog_page where date_sk = d_date_sk and d_date between cast('2002-08-05' as date) and (cast('2002-08-05' as date) + 14 ) and page_sk = cp_catalog_page_sk group by cp_catalog_page_id) , wsr as (select web_site_id, sum(sales_price) as sales, sum(profit) as profit, sum(return_amt) as returns, sum(net_loss) as profit_loss from ( select ws_web_site_sk as wsr_web_site_sk, ws_sold_date_sk as date_sk, ws_ext_sales_price as sales_price, ws_net_profit as profit, cast(0 as decimal(7,2)) as return_amt, cast(0 as decimal(7,2)) as net_loss from web_sales union all select ws_web_site_sk as wsr_web_site_sk, wr_returned_date_sk as date_sk, cast(0 as decimal(7,2)) as sales_price, cast(0 as decimal(7,2)) as profit, wr_return_amt as return_amt, wr_net_loss as net_loss from web_returns left outer join web_sales on ( wr_item_sk = ws_item_sk and wr_order_number = ws_order_number) ) salesreturns, date_dim, web_site where date_sk = d_date_sk and d_date between cast('2002-08-05' as date) and (cast('2002-08-05' as date) + 14 ) and wsr_web_site_sk = web_site_sk group by web_site_id) select channel , id , sum(sales) as sales , sum(returns) as returns , sum(profit) as profit from (select 'store channel' as channel , 'store' || s_store_id as id , sales , returns , (profit - profit_loss) as profit from ssr union all select 'catalog channel' as channel , 'catalog_page' || cp_catalog_page_id as id , sales , returns , (profit - profit_loss) as profit from csr union all select 'web channel' as channel , 'web_site' || web_site_id as id , sales , returns , (profit - profit_loss) as profit from wsr ) x group by rollup (channel, id) order by channel ,id limit 100;
  • SQL3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 select dt.d_year ,item.i_brand_id brand_id ,item.i_brand brand ,sum(ss_ext_sales_price) sum_agg from date_dim dt ,store_sales ,item where dt.d_date_sk = store_sales.ss_sold_date_sk and store_sales.ss_item_sk = item.i_item_sk and item.i_manufact_id = 125 and dt.d_moy=11 group by dt.d_year ,item.i_brand ,item.i_brand_id order by dt.d_year ,sum_agg desc ,brand_id limit 100;
  • SQL2 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 with wscs as (select sold_date_sk ,sales_price from (select ws_sold_date_sk sold_date_sk ,ws_ext_sales_price sales_price from web_sales union all select cs_sold_date_sk sold_date_sk ,cs_ext_sales_price sales_price from catalog_sales)), wswscs as (select d_week_seq, sum(case when (d_day_name='Sunday') then sales_price else null end) sun_sales, sum(case when (d_day_name='Monday') then sales_price else null end) mon_sales, sum(case when (d_day_name='Tuesday') then sales_price else null end) tue_sales, sum(case when (d_day_name='Wednesday') then sales_price else null end) wed_sales, sum(case when (d_day_name='Thursday') then sales_price else null end) thu_sales, sum(case when (d_day_name='Friday') then sales_price else null end) fri_sales, sum(case when (d_day_name='Saturday') then sales_price else null end) sat_sales from wscs ,date_dim where d_date_sk = sold_date_sk group by d_week_seq) select d_week_seq1 ,round(sun_sales1/sun_sales2,2) ,round(mon_sales1/mon_sales2,2) ,round(tue_sales1/tue_sales2,2) ,round(wed_sales1/wed_sales2,2) ,round(thu_sales1/thu_sales2,2) ,round(fri_sales1/fri_sales2,2) ,round(sat_sales1/sat_sales2,2) from (select wswscs.d_week_seq d_week_seq1 ,sun_sales sun_sales1 ,mon_sales mon_sales1 ,tue_sales tue_sales1 ,wed_sales wed_sales1 ,thu_sales thu_sales1 ,fri_sales fri_sales1 ,sat_sales sat_sales1 from wswscs,date_dim where date_dim.d_week_seq = wswscs.d_week_seq and d_year = 1999) y, (select wswscs.d_week_seq d_week_seq2 ,sun_sales sun_sales2 ,mon_sales mon_sales2 ,tue_sales tue_sales2 ,wed_sales wed_sales2 ,thu_sales thu_sales2 ,fri_sales fri_sales2 ,sat_sales sat_sales2 from wswscs ,date_dim where date_dim.d_week_seq = wswscs.d_week_seq and d_year = 1999+1) z where d_week_seq1=d_week_seq2-53 order by d_week_seq1;
  • 命令生成方法 TPC-DS标准99个SQL查询语句可用如下方法生成: 准备工作。生成TPC-DS查询语句前需要修改query_templates目录下的文件: 登录测试过程申请的ECS,进入/data1/script/tpcds-kit/DSGen-software-code-3.2.0rc1/query_templates目录: 1 cd /data1/script/tpcds-kit/DSGen-software-code-3.2.0rc1/query_templates 新建文件hwdws.tpl,内容为: 1 2 3 4 5 define __LIMITA = ""; define __LIMITB = ""; define __LIMITC = "limit %d"; define _BEGIN = "-- begin query " + [_QUERY] + " in stream " + [_STREAM] + " using template " + [_TEMPLATE]; define _END = "-- end query " + [_QUERY] + " in stream " + [_STREAM] + " using template " + [_TEMPLATE]; 因TPC-DS工具中SQL语句生成模板有语法错误,需修改query77.tpl,将135行的‘, coalesce(returns, 0) returns’改为‘, coalesce(returns, 0) as returns’。 执行以下命令生成查询语句: 1 ./dsqgen -input ../query_templates/templates.lst -directory ../query_templates/ -scale 1000 -dialect hwdws 执行后会生成query_0.sql文件,里面放着99个标准SQL语句,需要手动去切分成99个文件。 生成的标准查询中如下日期函数语法在GaussDB(DWS)暂不支持,需要手动进行修改: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 Q5: and (cast('2001-08-19' as date) + 14 days) 修改为 and (cast('2001-08-19' as date) + 14) Q12:and (cast('1999-02-28' as date) + 30 days) 修改为 and (cast('1999-02-28' as date) + 30) Q16:(cast('1999-4-01' as date) + 60 days) 修改为 (cast('1999-4-01' as date) + 60) Q20:and (cast('1998-05-05' as date) + 30 days) 修改为 and (cast('1998-05-05' as date) + 30) Q21:and d_date between (cast ('2000-05-19' as date) - 30 days) 修改为 and d_date between (cast ('2000-05-19' as date) - 30) and (cast ('2000-05-19' as date) + 30 days) 修改为 and (cast ('2000-05-19' as date) + 30) Q32:(cast('1999-02-22' as date) + 90 days) 修改为 (cast('1999-02-22' as date) + 90) Q37:and d_date between cast('1998-04-29' as date) and (cast('1998-04-29' as date) + 60 days) 修改为 and d_date between cast('1998-04-29' as date) and (cast('1998-04-29' as date) + 60) Q40:and d_date between (cast ('2002-05-10' as date) - 30 days) 修改为 and d_date between (cast ('2002-05-10' as date) - 30) and (cast ('2002-05-10' as date) + 30 days) 修改为 and (cast ('2002-05-10' as date) + 30) Q77:and (cast('1999-08-29' as date) + 30 days) 修改为 and (cast('1999-08-29' as date) + 30) Q80:and (cast('2002-08-04' as date) + 30 days) 修改为 and (cast('2002-08-04' as date) + 30) Q82:and d_date between cast('1998-01-18' as date) and (cast('1998-01-18' as date) + 60 days) 修改为 and d_date between cast('1998-01-18' as date) and (cast('1998-01-18' as date) + 60) Q92:(cast('2001-01-26' as date) + 90 days) 修改为 (cast('2001-01-26' as date) + 90) Q94:(cast('1999-5-01' as date) + 60 days) 修改为 (cast('1999-5-01' as date) + 60) Q95:(cast('1999-4-01' as date) + 60 days) 修改为 (cast('1999-4-01' as date) + 60) Q98:and (cast('2002-04-01' as date) + 30 days) 修改为 and (cast('2002-04-01' as date) + 30)
  • 使用限制 单账号跟踪的事件可以通过云审计控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到对象存储服务(OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 验证OAuth认证登录OneAccess用户门户 用户访问用户门户,选择OAuth登录,应用侧的账号和密码即可进入OneAccess用户门户。 图1 选择OAuth登录 登录成功以后,在OneAccess侧的组织与用户处可查看自动创建的用户。 当授权用户未关联系统用户时,在系统自动创建用户的前提是“未关联用户时 ”设置为“自动创建用户”。可参考表1。 自动创建的用户默认属于OneAccess侧的第一个根机构。 图2 查看用户
  • 验证OneAccess同步LDAP数据 导入同步: 在LDAP身份源列表页面,单击目标身份源的“详情”进入新增LDAP身份源详情页面,单击“导入同步”,在“导入同步”页签单击“执行”。OneAccess将主动同步LDAP身份源的用户及组织数据,并生成操作记录。 执行完成后,单击目标记录的“详情”,查看详细信息。 图2 查看详情 同步成功后,在“组织与用户”可查看已同步至OneAccess的用户和组织。
  • 验证钉钉认证登录OneAccess用户门户 用户访问用户门户,选择钉钉登录,如果是初次登录应用系统,会要求绑定手机号。 图2 选择钉钉认证 钉钉扫码登录流程与配置钉钉认证源中的 “自动手机号绑定” 及 “未关联用户时” 两个选项有关,该选项启用与禁用时的扫码登录流程有区别,建议启用该选项。 自动手机号绑定 自动手机号绑定选项禁用 使用钉钉移动端扫描二维码登录,如果用户第一次扫码登录则会出现输入手机号和验证码绑定已有用户界面,如果已绑定过则会直接进入应用。 自动手机号绑定选项启用 使用企业微信移动端扫描二维码登录,如果用户第一次扫码登录则会自动使用钉钉手机号查找系统中手机号相同的用户自动绑定,不需要输入手机号和验证码进行绑定,已登录过则直接进入应用系统。如果钉钉手机号未查询到已存在的用户则会提示未找到关联用户。 配置钉钉认证源中的 “未关联用户时” 选项选择绑定或注册时,如果钉钉手机号未匹配到已存在的用户则会根据绑定手机号自动创建用户,用户需填写注册表单。
  • 概述 SCIM(System for Cross-domain Identity Management),主要用于多租户的云应用身份管理。SCIM 2.0建立在一个对象模型上,所有SCIM对象都继承Resource,它有id、externalId和meta属性,RFC7643定义了扩展公共属性的User、Group和EnterpriseUser。 本文主要介绍OneAccess以SCIM协议同步用户至Atlassian的方法。
  • 方案优势 观测云是一款面向开发、运维、测试和业务团队的实时数据监测平台,统一满足云服务、云原生应用、云上业务的监测需求,快速实现基础设施、中间件、应用层和业务层可观测能力。包含基础设施监控、日志与指标监控、应用性能监控、用户访问与体验监控、异常监控、安全巡检、健康度检测、仪表盘和数据面板等多项可观测性解决方案,提供了统一数据采集、全面数据监控、无缝关联分析、高度可编程性,敏捷团队协作的优质服务体验 场景普适性:实现IT系统的跨平台,跨系统,跨技术栈的全生命周期的全面可观测,优化IT团队的效能;一套系统,可支持异构多云或IDC+云的混合架构 一体化服务:统一采集数据agent,统一指标体系、统一运维数据存储,统一关联数据分析,统一数据看板,解决运维和监控数据孤岛,实现数据关联查询实现与多维分析,大大提升运维团队和开发团队的维护和系统优化效率 智能化运维:构建运维专家系统,快速定位性能瓶颈、程序崩溃、内存泄露、网络异常等电信场景,并支持二次开发,适配丰富用户场景,实现自动化运维,真正解决运维难题 生态亲和性:支持开源生态,与openmetrics等开源数据采集标准完全兼容 全按需付费:SAAS版本服务,按照运维数据存量和分析量,完全按需弹性计费,实现0 成本启动,大大降低推广门槛
  • 应用场景介绍 Gartner魔力象限将可观测性作为IT与运维自动化服务重点领域,认为可观测性进入第一轮行业景气高峰;同时,微服务、service mesh、Devops等技术导致系统复杂度快速提升,运维难度和人力成本激增,自动化、智能运维成为业界焦点。可观测性领域同传统监控、告警、应用性能管理(APM)等交叉,但是侧重全链路、全局质量、性能分析,智能提供优化建议,契合微服务时代复杂系统需求。 观测云方案主要面向互联网、零售、出海、ISV,其主要应用场景如下: 泛互联网客户,对多云、混合云、跨地域统一监控; 连锁商超、酒店、制造客户,对海量边缘节点的统一监控集中管理 电商客户,从页面下单、库存记录到订单物流的全链路数据追踪 金融、公共客户,对 App、小程序或网页的访问卡顿排障,可识别热点区域或性能卡点。 面向上述行业,总结了这类行业客户的目标画像和需求痛点,主要分为四个方面: 泛互联网:业务极度依赖线上应用,并对系统稳定性要求高(如健康码、电商) 游戏/零售等2C企业:在线应用频繁迭代,需兼顾稳定性和了解用户使用反馈(如游戏、社交App) 出海需求:因数据安全或数据出境安全法原因,必须替换海外品牌产品(各类企业,包括华为) 提供SaaS化服务的ISV:或提供本地化部署的ISV,客服需快速响应故障上报(如企服 SaaS) 观测云专注可观测性领域,对标datadog,完全自研产品和组件模块,实现真正统一多元数据存储、自研专属分析语言,单一的安全可靠数据采集器,运营健康度SLO模型,强表现力可二次开发数据面板,完全兼容OPLG数据标准,可面向异构多云提供服务。
  • 方案架构 观测云是一款面向开发、运维、测试和业务团队的实时数据监测平台,统一满足云服务、云原生应用、云上业务的监测需求,快速实现基础设施、中间件、应用层和业务层可观测能力。包含基础设施监控、日志与指标监控、应用性能监控、用户访问与体验监控、异常监控、安全巡检、健康度检测、仪表盘和数据面板等多项可观测性解决方案,提供了统一数据采集、全面数据监控、无缝关联分析、高度可编程性,敏捷团队协作的优质服务体验 图1 业务架构图 架构描述:
  • 资源和成本规划 表1 资源和成本规划 云服务 规格 数量 计费模式 计费周期 总价 云容器引擎 产品分类: CCE容器集群 | 混合集群 | 50节点 | 是 1 包周期 1月 ¥1262.40 NAT网关 规格: 小型 1 包周期 1月 ¥306.00 弹性公网IP 带宽费用: 独享 | 全动态BGP | 按带宽计费 | 1Mbit/s 弹性公网IP费用: 1个 1 包周期 1月 ¥23.00 弹性负载均衡 实例规格类型: 共享型负载均衡 1 按需计费 1小时 ¥0.32 云数据库 RDS(for MySQL) rds.mysql.c6.large.2.ha,2核,4G,100GiB,版本5.7 1 包周期 1月 ¥562.00 云数据库 GaussDB(for Influx) geminidb.influxdb.xlarge.4,4核16G,100GiB, 版本1.7 1 包周期 1月 ¥1360.60 分布式缓存服务Redis 版本号: 4.0 | 主备 | X86 | DRAM | 2 | 4 GB 1 包周期 1月 ¥277.60 企业主机安全 规格: 企业版 1 包周期 1月 ¥90.00 Anti-DDoS流量清洗 120 Mbps 1 包周期 1月 ¥0.00 Web应用防火墙 规格选择: 入门版 1 包周期 1月 ¥99.00 云堡垒机 性能规格: 100资产标准版 1 包周期 1月 ¥3780.00 漏洞扫描服务 服务类型: 漏洞扫描服务 | 专业版 | 1个 1 包周期 1月 ¥300.00 云备份 存储库类型: 云服务器备份存储库 | 1000GB 1 包周期 1月 ¥200.00 弹性文件服务 规格: SFS 容量型 | 100GB 1 包周期 1月 ¥30.00 弹性云服务器 规格: X86计算 | 通用入门型 | t6.xlarge.2 | 4核 | 8GB 镜像: CentOS | CentOS 8.2 64bit 系统盘: 高IO | 40GB 5 包周期 1月 ¥1117.50
  • 主要功能介绍 主要功能 功能说明 变更管理 含变更流程管理、变更流程编排、变更灰度执行的能力,用于端到端控制变更质量和效率。 IaC引擎 声明式变更执行引擎,负责IaC代码的解析和执行,插件式框架支持多种资源操作的扩展定制。执行过程支持变更灰度策略、风险控制等能力。 软件仓库 支持微服务、函数、web静态资源、SQL、大数据/AI训练模型、容器镜像等多种软件制品的发布和管理,生产环境软件制品唯一来源。 环境管理 部署服务IaC代码执行后,提供环境的创建,删除,更新,归档,恢复等全生命周期管理,并按照环境聚合环境包含的资源的监控数据。 配置管理 统一配置中心,含IaaS-PaaS-SaaS软件配置,全球化统一管理,支持完整性检查、冲突校验等治理能力。支持灰度分发配置能力,支持配置项按灰度策略按比例分发到Agent节点等。
  • 服务优势 统一变更的管控入口,变更管理除支持IaC变更外增加对手工运维变更和ITR紧急变更的统一管控和变更记录。 统一运行时托管平台,将可靠性、韧性、可运维、安全等能力built-in,实现服务部署即可信。 基于IaC3.0声明式,实现资源创建、服务部署、配置变更自动化对接运行时,实现服务可靠运行。 具有丰富的变更评估因素和评估算法,具有高评估召回率和准确率。 支持根据评估结果对变更进行干预(暂停、回滚等),实现系统自动决策。
  • 使用流程 使用部署服务完成自动化变更流程如下: 准备工作 准备软件包:将开发完成的应用软件包通过流水线发布至部署服务,或者将已有的应用软件包上传至部署服务。 准备环境:应用部署前需要先准备环境。 变更前配置 创建变更电子流:变更工单是实施现网变更的授权许可,业务需要发起现网变更时,通常会由研发人员提交变更电子流,并附上对应的变更文档。该电子流被审批通过后,会在变更工单管理中,创建一条对应的变更工单,运维可使用变更工单实施变更。 创建变更策略(可选):部署服务提供对变更过程中的风险项进行管控,如需实现无人值守变更,可以通过创建变更策略实现。 创建变更配置(可选):部署服务提供配置部署服务自动变更的巡检场景和通知参数,如需实现无人值守变更,可通过创建变更配置实现在变更时对相应的变更项进行巡检。 变更环境 IaC变更:部署服务可以通过部署服务代码,完成资源申请、集群扩容、虚拟机部署、配置集/配置项创建等变更。 界面变更(可选) 创建集群:部署服务支持通过界面直接创建虚拟机部署的集群。 扩容集群:部署服务支持通过界面对已申请或者已创建的集群进行扩容。 部署虚拟机:部署服务支持通过界面完成虚拟机部署。 其他功能 Terraform变更(可选):使用Terraform引擎将业务部署至应用平台AppStage。
  • 修订记录 发布日期 修订记录 2024-06-07 第七次正式发布。 新增工单管理 2024-05-30 第六次正式发布。 新增纳管堡垒机 修改如下章节: 纳管主机 弹性云服务器 2024-05-06 第五次正式发布。 修改如下章节: 纳管集群 为集群安装插件 纳管主机 2024-04-25 第四次正式发布。 新增CES数据管理 2024-03-30 第三次正式发布。 新增如下章节: 纳管VPC 查看OpsAgent历史任务 修改如下章节: 弹性云服务器 纳管主机 2024-02-20 第二次正式发布。 新增如下章节: 网络规划 安全规划 2023-11-25 第一次正式发布。
共100000条