云服务器内容精选
-
版本生命周期 表1给出了 GaussDB (DWS)版本生命周期(仅体现发布号),帮助您规划自己的版本更新节奏。 对于已经停止服务与支持(EOS)的版本或非推荐版本,建议参见版本收编策略升级到最新稳定版本。 表1 GaussDB(DWS)版本生命周期 版本名称 状态 发布时间 EOM时间(停止销售) EOS时间(停止服务与支持) 9.0.x 已发布 2023年9月30日 2025年6月30日 2026年6月30日 8.3.0.x 已发布 2024年3月30日 2026年3月30日 2027年3月30日 8.2.1.x 已发布 2023年5月 2025年9月30日 2027年3月30日 8.2.0.x 已发布 2022年11月30日 2025年9月30日 2027年3月30日 8.1.3.x 已发布 2022年04月15日 2024年6月30日 2025年12月31日 8.1.1.x EOM 2021年7月30日 2023年6月30日 2025年12月31日 8.1.0.x EOM 2021年5月15日 2023年6月30日 2025年12月31日 8.0.1.x EOM 2020年7月31日 2023年6月30日 2024年12月31日
-
版本收编策略 表2 版本收编 当前版本 是否EOS 收编建议 升级方案 1.5.x/1.6.x 是 不支持直接升级,建议迁移到8.1.3.336(推荐版本)。 建议联系技术支持评估后操作。 1.7.x 是 建议升级到8.1.3.336(推荐版本)。 不支持跨多版本直接升级到8.1.3.336,需要多跳升级,建议联系技术支持评估后升级。 8.0.1.x 否 建议升级到8.1.3.336(推荐版本)。 不支持跨多版本直接升级到8.1.3.336,需要多跳升级,建议联系技术支持评估后升级。 8.1.0.x 否 建议升级到8.1.3.336(推荐版本)。 不支持跨多版本直接升级到8.1.3.336,需要多跳升级,建议联系技术支持评估后升级。 8.1.1.x~8.1.3.323 否 建议升级到8.1.3.336(推荐版本)。 支持直接升级到8.1.3.336,建议联系技术支持评估后升级,支持在控制台升级,参见升级集群。 8.2.0.x(白名单用户版本) 否 建议升级到8.3.0.110。 支持直接升级到8.3.0.110,建议联系技术支持评估后升级,支持在控制台升级,参见升级集群。 8.2.1.1xx(白名单用户版本) 否 建议升级到8.3.0.110。 支持直接升级到8.3.0.110,建议联系技术支持评估后升级,支持在控制台升级,参见升级集群。 8.2.1.2xx(白名单用户版本) 否 建议升级到8.3.0.110。 支持直接升级到8.3.0.110,建议联系技术支持评估后升级,支持在控制台升级,参见升级集群。 8.2.1.3xx(白名单用户版本) 否 建议升级到8.3.0.110。 支持直接升级到8.3.0.110,建议联系技术支持评估后升级,支持在控制台升级,参见升级集群。 8.3.0.x 否 建议升级到8.3.0.110。 支持直接升级到8.3.0.110,建议联系技术支持评估后升级,支持在控制台升级,参见升级集群。 9.0.1/9.0.2 否 建议升级到9.1.0.213。 不支持跨多版本直接升级到9.1.0.105,先升级到9.0.3,再升级到9.1.0.213。支持在控制台升级,参见升级集群。 9.0.3/9.1.0.x 否 建议升级到9.1.0.213。 支持直接升级到9.1.0.213,建议联系技术支持评估后升级,支持在控制台升级,参见升级集群。
-
9.1.0.100版本(2024年8月12日) 【弹性架构】 架构升级:基于华为云 对象存储服务 OBS,推出存算分离架构3.0,计算、存储分层弹性,存储按需收费,降本增效;计算支持多VW(Virtual Warehouse,逻辑集群,以下简称VW)部署,业务隔离性更好,解决业务间的资源争抢问题。 推出弹性VW特性,弹性VW完全无状态,支持读写加速,灵活应对并发处理能力不足、业务波峰波谷不均衡、数据加载和数据分析资源争抢等问题,详情参见弹性增删逻辑集群。 增删DN节点,支持弹性扩容和经典扩容,弹性扩容不会对OBS上的数据进行重分布,经典扩容会重分布所有数据,系统会根据bucket总数和DN数目,自动决定采用何种扩容方式。 存算分离架构(DWS 3.0)通过磁盘缓存和IO异步读写提升性能,在磁盘缓存全命中时,持平存算一体架构(DWS 2.0)。 图1 存算分离架构
-
9.1.0.210版本(2024年11月25日) 【存算分离】 支持通过使用explain warmup进行缓存预热,可以把数据预热到本地磁盘缓存的冷端或者热端。 弹性VW功能增强:更灵活的业务分流方式,支持以CN粒度配置业务分流到主VW或者弹性VW。 存算分离表支持insert并行,提升数据加载性能。 存算分离表支持回收站,可以对drop table/partition, truncate table/partition等误操作进行快速闪回。 冷热表支持使用磁盘缓存、异步IO进行性能加速。 【实时数仓】 limit…offset翻页场景性能大幅提升;inlist场景性能大幅提升。 正式商用Binlog特性。 自动分区支持整型和变长类型的时间列。 【湖仓一体】 parquet/orc读写新增对zstd压缩格式的支持。 Create table like支持使用external schema中的表作为like源表。 外表支持并行导出。 【高可用】 存算分离表和冷热表支持增量备份恢复。 通过并行拷贝优化存算分离场景的备份性能。 【生态兼容】 兼容MySQL的replace into语法,interval时间类型。 pg_get_tabledef导出支持字段展示comment。 【运维&稳定性提升】 磁盘使用率高时,支持配置从备数据转储到OBS。 当数据库即将发生只读时,拦截一些发生下盘的语句和产生新表和新物理文件的语句,以此快速回收磁盘空间,保证其它语句执行。 支持审计日志转储到OBS。 新增轻量级锁视图pgxc_lwlocks。 常规锁视图新增锁获取和等待时间戳。 全局死锁检测功能默认打开。 新增vacuum full与select之间的让锁功能。 gs_view_invalid增加失效时间,辅助运维人员清理无效对象 【规格&约束】 最大支持256个VW,每个VW 最大支持1024个DN。建议VW不超过32个,每个VW不超过128个DN。 OBS存算分离表不支持容灾,不支持细粒度备份恢复。 【行为变更】 升级开启max_process_memory自适应功能,主备均衡模式下,增加DN可用内存。 扩容数据重分布默认开启数据一致性校验,扩容时间会增加10%。 新建Hstore_opt表,默认打开turbo引擎,压缩级别默认为middle。 存算分离表OBS路径默认显示为相对路径。 使用磁盘缓存(diskcache)必须同时打开异步IO参数。 列存表的索引清理时间间隔从1小时调小为10分钟,可以更快速地清理占用的索引空间。 CREATE TABLE和ALTER TABLE不支持将有on update表达式的列设置为分布列。 Parquet数据查询,读取INT96格式保存的Timestamp数据时不再做8小时修正。 max_stream_pool用于控制stream线程池缓存的线程数量,默认值由65525调整至1024,避免空闲线程内存占用过大。 track_activity_query_size参数从动态生效调整为重启生效。 不再支持逻辑复制功能,相关接口调用会报错。
-
9.1.0.102补丁(2024年9月25日) 该版本为补丁版本,主要修复已知问题。 【升级收编】 支持9.0.3版本升级到9.1.0系列。 【修复已知问题】 存算分离版本支持alter database xxx rename to yyy。 修复存算分离表 \d+ 空间size显示错误问题。 修复备份恢复之后,异步排序未运行的问题。 修复bitmap index列删除后,无法使用Create Table Like语法的问题。 修复Turbo引擎在Group By场景下,hash算法冲突导致的性能回退问题。 调度器对于失败任务的处理行为和8.3.0版本保持一致。 修复故障场景下,pg_stat_object空间膨胀问题。 修复8.3.0升级到9.1.0, DataArts Studio 下发的Vacuum Full作业报错问题。 修复JSON字段计算CPU和内存消耗高问题。 【功能增强】 ORC外表支持zstd压缩格式。 GIS新增支持st_asmvtgeom/st_asmvt/st_squaregrid函数。
-
9.1.0.212补丁(2025年1月) 该版本为补丁版本,主要修复已知问题。 【实时数仓】 修复date类型查询下推在MySQL兼容模式下的结果集问题。 修复limit为null或者all时,结果集错误问题。 修复统计信息错误重置,导致auto vacuum无法触发,影响空间无法及时回收的问题。 修复物化视图刷新和DDL并发的死锁问题。 修复冷热表扩容重分布异常后,手工删除临时表导致误清理原表数据的问题。 修复冷热表扩容的本地磁盘空间上涨问题。 【湖仓一体】 外表访问OBS,支持路径中带有特殊字符';' 优化parquet外表查询的任务分配,提升磁盘缓存命中率。 【备份恢复】 修复备份恢复可能残留中间状态文件,占用磁盘空间的问题。 修复弹性VW存在的情况下,备份失败问题。 备份恢复支持冷热表,备份恢复时间会变长。 【生态兼容】 修复PostGIS插件可能存在的创建失败问题。 【运维提升】 修复SQL监控指标采集不完整问题。 修复从备内存泄露问题。 修复智能运维未按时启动的问题。 修复drop database失败残留,导致调度器无法正常调度的问题。 修复高并发下,通信内存占用过高的问题。 修复异常情况下,GTM上残留sequence导致的性能问题。 【行为变更】 为避免复杂SQL执行可能报错,升级/新装会关闭谓词列analyze特性。 表定义包含sequence列的场景下,执行drop table操作时,如果与GTM的网络连接有问题,上一个版本会报warning,drop table可执行成功,但可能会导致GTM上sequence残留。新版本drop table会报错,需再次重试。由于DWS支持在事务块中支持drop table,如果drop table语句执行成功,但事务后续回滚,会存在sequence在GTM已经删除,表在CN上仍然存在的问题,需再次主动drop table,否则该表在后续使用时,会报sequence不存在的错误。 truncate和select如果有加锁冲突时,支持truncate主动终止select操作,该特性默认关闭。在打开的情况下,上一个版本被终止的执行select的session会话会报错,但是连接不会关闭,新版本下,执行select的session会话会主动关闭,需业务主动重连。
-
性能总览 在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总查询耗时为170.08秒,相较8.3.0版本的533.05秒,性能提升208%。 9.1.0版本存算分离架构与存算一体架构性能劣化在10%以内。 TPC-H 1000x测试基准22个SQL中,9.1.0.200版本相比8.3.0版本,所有SQL查询性能提升达到1.5~5倍,特别是Q19提升达16倍。 TPC-DS 1000x测试基准99个SQL中,9.1.0.200版本相比8.3.0版本,87个SQL有明显提升,其中15个SQL性能提升有2~10倍。 不论是简单的过滤、排序、聚集,还是复杂的多表关联、窗口计算、CTE查询,9.1.0版本都有明显性能优势。 表1 TPC-H和TPC-DS性能总览 1000x DWS开箱性能 版本 8.3.0 9.1.0.200 - 存算一体(s) 存算一体(s) 存算分离(s) TPC-H 533.05 170.08 172.62 TPC-DS 1321.76 645.424 622.214 在9.1.0版本,我们使用存算分离架构指定二级分区,基于ssb-flat 100 GB测试基准,对比DWS和ClickHouse的性能表现。从以下测试结果可以看到: 开箱性能相比开源厂商ClickHouse有200%性能优势。 开箱性能相比9.1.0.100版本提升了133%。 表2 SSB性能总览 100x DWS ClickHouse ssb-flat 0.91 2.73 父主题: 9.1.0版本测试结论
-
安装和启动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-DS数据 执行以下命令导入数据。 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;
-
创建TPC-DS目标表 连接DWS数据库后执行以下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 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 CREATE TABLE customer_address ( ca_address_sk integer not null, ca_address_id varchar(16) not null, ca_street_number varchar(10) , ca_street_name varchar(60) , ca_street_type varchar(15) , ca_suite_number varchar(10) , ca_city varchar(60) , ca_county varchar(30) , ca_state varchar(2) , ca_zip varchar(10) , ca_country varchar(20) , ca_gmt_offset decimal(5,2) , ca_location_type varchar(20) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='ca_address_sk',secondary_part_num=72) DISTRIBUTE BY hash (ca_address_sk); CREATE TABLE customer_demographics ( cd_demo_sk integer not null, cd_gender varchar(1) , cd_marital_status varchar(1) , cd_education_status varchar(20) , cd_purchase_estimate integer , cd_credit_rating varchar(10) , cd_dep_count integer , cd_dep_employed_count integer , cd_dep_college_count integer ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='cd_demo_sk',secondary_part_num=72) DISTRIBUTE BY hash (cd_demo_sk); CREATE TABLE date_dim ( d_date_sk integer not null, d_date_id varchar(16) not null, d_date date , d_month_seq integer , d_week_seq integer , d_quarter_seq integer , d_year integer , d_dow integer , d_moy integer , d_dom integer , d_qoy integer , d_fy_year integer , d_fy_quarter_seq integer , d_fy_week_seq integer , d_day_name varchar(9) , d_quarter_name varchar(6) , d_holiday varchar(1) , d_weekend varchar(1) , d_following_holiday varchar(1) , d_first_dom integer , d_last_dom integer , d_same_day_ly integer , d_same_day_lq integer , d_current_day varchar(1) , d_current_week varchar(1) , d_current_month varchar(1) , d_current_quarter varchar(1) , d_current_year varchar(1) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='d_date_sk',secondary_part_num=72) 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 integer not null, w_warehouse_id varchar(16) not null, w_warehouse_name varchar(20) , w_warehouse_sq_ft integer , w_street_number varchar(10) , w_street_name varchar(60) , w_street_type varchar(15) , w_suite_number varchar(10) , w_city varchar(60) , w_county varchar(30) , w_state varchar(2) , w_zip varchar(10) , w_country varchar(20) , w_gmt_offset decimal(5,2) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE ship_mode ( sm_ship_mode_sk integer not null, sm_ship_mode_id varchar(16) not null, sm_type varchar(30) , sm_code varchar(10) , sm_carrier varchar(20) , sm_contract varchar(20) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE time_dim ( t_time_sk integer not null, t_time_id varchar(16) not null, t_time integer , t_hour integer , t_minute integer , t_second integer , t_am_pm varchar(2) , t_shift varchar(20) , t_sub_shift varchar(20) , t_meal_time varchar(20) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='t_time_sk',secondary_part_num=72) DISTRIBUTE BY hash (t_time_sk); CREATE TABLE reason ( r_reason_sk integer not null, r_reason_id varchar(16) not null, r_reason_desc varchar(100) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE income_band ( ib_income_band_sk integer not null, ib_lower_bound integer , ib_upper_bound integer ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE item ( i_item_sk integer not null, i_item_id varchar(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 integer , i_brand varchar(50) , i_class_id integer , i_class varchar(50) , i_category_id integer , i_category varchar(50) , i_manufact_id integer , i_manufact varchar(50) , i_size varchar(20) , i_formulation varchar(20) , i_color varchar(20) , i_units varchar(10) , i_container varchar(10) , i_manager_id integer , i_product_name varchar(50) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='i_item_sk',secondary_part_num=72) DISTRIBUTE BY hash (i_item_sk); CREATE TABLE store ( s_store_sk integer not null, s_store_id varchar(16) not null, s_rec_start_date date , s_rec_end_date date , s_closed_date_sk integer , s_store_name varchar(50) , s_number_employees integer , s_floor_space integer , s_hours varchar(20) , s_manager varchar(40) , s_market_id integer , s_geography_class varchar(100) , s_market_desc varchar(100) , s_market_manager varchar(40) , s_division_id integer , s_division_name varchar(50) , s_company_id integer , s_company_name varchar(50) , s_street_number varchar(10) , s_street_name varchar(60) , s_street_type varchar(15) , s_suite_number varchar(10) , s_city varchar(60) , s_county varchar(30) , s_state varchar(2) , s_zip varchar(10) , s_country varchar(20) , s_gmt_offset decimal(5,2) , s_tax_precentage decimal(5,2) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE call_center ( cc_call_center_sk integer not null, cc_call_center_id varchar(16) not null, cc_rec_start_date date , cc_rec_end_date date , cc_closed_date_sk integer , cc_open_date_sk integer , cc_name varchar(50) , cc_class varchar(50) , cc_employees integer , cc_sq_ft integer , cc_hours varchar(20) , cc_manager varchar(40) , cc_mkt_id integer , cc_mkt_class varchar(50) , cc_mkt_desc varchar(100) , cc_market_manager varchar(40) , cc_division integer , cc_division_name varchar(50) , cc_company integer , cc_company_name varchar(50) , cc_street_number varchar(10) , cc_street_name varchar(60) , cc_street_type varchar(15) , cc_suite_number varchar(10) , cc_city varchar(60) , cc_county varchar(30) , cc_state varchar(2) , cc_zip varchar(10) , cc_country varchar(20) , cc_gmt_offset decimal(5,2) , cc_tax_percentage decimal(5,2) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE customer ( c_customer_sk integer not null, c_customer_id varchar(16) not null, c_current_cdemo_sk integer , c_current_hdemo_sk integer , c_current_addr_sk integer , c_first_shipto_date_sk integer , c_first_sales_date_sk integer , c_salutation varchar(10) , c_first_name varchar(20) , c_last_name varchar(30) , c_preferred_cust_flag varchar(1) , c_birth_day integer , c_birth_month integer , c_birth_year integer , c_birth_country varchar(20) , c_login varchar(13) , c_email_address varchar(50) , c_last_review_date varchar(10) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='c_customer_sk',secondary_part_num=72) DISTRIBUTE BY hash (c_customer_sk); CREATE TABLE web_site ( web_site_sk integer not null, web_site_id varchar(16) not null, web_rec_start_date date , web_rec_end_date date , web_name varchar(50) , web_open_date_sk integer , web_close_date_sk integer , web_class varchar(50) , web_manager varchar(40) , web_mkt_id integer , web_mkt_class varchar(50) , web_mkt_desc varchar(100) , web_market_manager varchar(40) , web_company_id integer , web_company_name varchar(50) , web_street_number varchar(10) , web_street_name varchar(60) , web_street_type varchar(15) , web_suite_number varchar(10) , web_city varchar(60) , web_county varchar(30) , web_state varchar(2) , web_zip varchar(10) , web_country varchar(20) , web_gmt_offset decimal(5,2) , web_tax_percentage decimal(5,2) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE household_demographics ( hd_demo_sk integer not null, hd_income_band_sk integer , hd_buy_potential varchar(15) , hd_dep_count integer , hd_vehicle_count integer ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='hd_demo_sk',secondary_part_num=72) DISTRIBUTE BY hash (hd_demo_sk); CREATE TABLE web_page ( wp_web_page_sk integer not null, wp_web_page_id varchar(16) not null, wp_rec_start_date date , wp_rec_end_date date , wp_creation_date_sk integer , wp_access_date_sk integer , wp_autogen_flag varchar(1) , wp_customer_sk integer , wp_url varchar(100) , wp_type varchar(50) , wp_char_count integer , wp_link_count integer , wp_image_count integer , wp_max_ad_count integer ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE promotion ( p_promo_sk integer not null, p_promo_id varchar(16) not null, p_start_date_sk integer , p_end_date_sk integer , p_item_sk integer , p_cost decimal(15,2) , p_response_target integer , p_promo_name varchar(50) , p_channel_dmail varchar(1) , p_channel_email varchar(1) , p_channel_catalog varchar(1) , p_channel_tv varchar(1) , p_channel_radio varchar(1) , p_channel_press varchar(1) , p_channel_event varchar(1) , p_channel_demo varchar(1) , p_channel_details varchar(100) , p_purpose varchar(15) , p_discount_active varchar(1) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384) DISTRIBUTE BY replication; CREATE TABLE catalog_page ( cp_catalog_page_sk integer not null, cp_catalog_page_id varchar(16) not null, cp_start_date_sk integer , cp_end_date_sk integer , cp_department varchar(50) , cp_catalog_number integer , cp_catalog_page_number integer , cp_description varchar(100) , cp_type varchar(100) ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='cp_catalog_page_sk',secondary_part_num=72) DISTRIBUTE BY hash (cp_catalog_page_sk); CREATE TABLE inventory ( inv_date_sk integer not null, inv_item_sk integer not null, inv_warehouse_sk integer not null, inv_quantity_on_hand integer ) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='inv_item_sk',secondary_part_num=72) DISTRIBUTE BY hash (inv_item_sk) partition by range(inv_date_sk) ( partition p1 values less than(2451179), partition p2 values less than(2451544), partition p3 values less than(2451910), partition p4 values less than(2452275), partition p5 values less than(2452640), partition p6 values less than(2453005), partition p7 values less than(maxvalue) ) ; CREATE TABLE catalog_returns ( cr_returned_date_sk integer , cr_returned_time_sk integer , cr_item_sk integer not null, cr_refunded_customer_sk integer , cr_refunded_cdemo_sk integer , cr_refunded_hdemo_sk integer , cr_refunded_addr_sk integer , cr_returning_customer_sk integer , cr_returning_cdemo_sk integer , cr_returning_hdemo_sk integer , cr_returning_addr_sk integer , cr_call_center_sk integer , cr_catalog_page_sk integer , cr_ship_mode_sk integer , cr_warehouse_sk integer , cr_reason_sk integer , cr_order_number bigint not null, cr_return_quantity integer , 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, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='cr_item_sk',secondary_part_num=72) DISTRIBUTE BY hash (cr_item_sk) partition by range(cr_returned_date_sk) ( partition p1 values less than(2450815), partition p2 values less than(2451179), partition p3 values less than(2451544), partition p4 values less than(2451910), partition p5 values less than(2452275), partition p6 values less than(2452640), partition p7 values less than(2453005), partition p8 values less than(maxvalue) ) ; CREATE TABLE web_returns ( wr_returned_date_sk integer , wr_returned_time_sk integer , wr_item_sk integer not null, wr_refunded_customer_sk integer , wr_refunded_cdemo_sk integer , wr_refunded_hdemo_sk integer , wr_refunded_addr_sk integer , wr_returning_customer_sk integer , wr_returning_cdemo_sk integer , wr_returning_hdemo_sk integer , wr_returning_addr_sk integer , wr_web_page_sk integer , wr_reason_sk integer , wr_order_number bigint not null, wr_return_quantity integer , 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, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='wr_item_sk',secondary_part_num=72) DISTRIBUTE BY hash (wr_item_sk) partition by range(wr_returned_date_sk) ( partition p1 values less than(2450815), partition p2 values less than(2451179), partition p3 values less than(2451544), partition p4 values less than(2451910), partition p5 values less than(2452275), partition p6 values less than(2452640), partition p7 values less than(2453005), partition p8 values less than(maxvalue) ) ; CREATE TABLE store_returns ( sr_returned_date_sk integer , sr_return_time_sk integer , sr_item_sk integer not null, sr_customer_sk integer , sr_cdemo_sk integer , sr_hdemo_sk integer , sr_addr_sk integer , sr_store_sk integer , sr_reason_sk integer , sr_ticket_number bigint not null, sr_return_quantity integer , 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, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='sr_item_sk',secondary_part_num=72) DISTRIBUTE BY hash (sr_item_sk) partition by range(sr_returned_date_sk) ( partition p1 values less than (2451179) , partition p2 values less than (2451544) , partition p3 values less than (2451910) , partition p4 values less than (2452275) , partition p5 values less than (2452640) , partition p6 values less than (2453005) , partition p7 values less than (maxvalue) ) ; CREATE TABLE web_sales ( ws_sold_date_sk integer , ws_sold_time_sk integer , ws_ship_date_sk integer , ws_item_sk integer not null, ws_bill_customer_sk integer , ws_bill_cdemo_sk integer , ws_bill_hdemo_sk integer , ws_bill_addr_sk integer , ws_ship_customer_sk integer , ws_ship_cdemo_sk integer , ws_ship_hdemo_sk integer , ws_ship_addr_sk integer , ws_web_page_sk integer , ws_web_site_sk integer , ws_ship_mode_sk integer , ws_warehouse_sk integer , ws_promo_sk integer , ws_order_number bigint not null, ws_quantity integer , 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, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='ws_item_sk',secondary_part_num=72) DISTRIBUTE BY hash (ws_item_sk) partition by range(ws_sold_date_sk) ( partition p1 values less than(2451179), partition p2 values less than(2451544), partition p3 values less than(2451910), partition p4 values less than(2452275), partition p5 values less than(2452640), partition p6 values less than(2453005), partition p7 values less than(maxvalue) ) ; CREATE TABLE catalog_sales ( cs_sold_date_sk integer , cs_sold_time_sk integer , cs_ship_date_sk integer , cs_bill_customer_sk integer , cs_bill_cdemo_sk integer , cs_bill_hdemo_sk integer , cs_bill_addr_sk integer , cs_ship_customer_sk integer , cs_ship_cdemo_sk integer , cs_ship_hdemo_sk integer , cs_ship_addr_sk integer , cs_call_center_sk integer , cs_catalog_page_sk integer , cs_ship_mode_sk integer , cs_warehouse_sk integer , cs_item_sk integer not null, cs_promo_sk integer , cs_order_number bigint not null, cs_quantity integer , 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, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='cs_item_sk',secondary_part_num=72) DISTRIBUTE BY hash (cs_item_sk) partition by range(cs_sold_date_sk) ( partition p1 values less than(2451179), partition p2 values less than(2451544), partition p3 values less than(2451910), partition p4 values less than(2452275), partition p5 values less than(2452640), partition p6 values less than(2453005), partition p7 values less than(maxvalue) ) ; CREATE TABLE store_sales ( ss_sold_date_sk integer , ss_sold_time_sk integer , ss_item_sk integer not null, ss_customer_sk integer , ss_cdemo_sk integer , ss_hdemo_sk integer , ss_addr_sk integer , ss_store_sk integer , ss_promo_sk integer , ss_ticket_number bigint not null, ss_quantity integer , 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, colversion=2.0,enable_hstore=true,enable_hstore_opt=true,bucketnums=16384,secondary_part_column='ss_item_sk',secondary_part_num=72) DISTRIBUTE BY hash (ss_item_sk) partition by range(ss_sold_date_sk) ( partition p1 values less than(2451179), partition p2 values less than(2451544), partition p3 values less than(2451910), partition p4 values less than(2452275), partition p5 values less than(2452640), partition p6 values less than(2453005), partition p7 values less than(maxvalue) ) ;
-
DWS热数据存储和冷数据存储的区别? 热数据存储和冷数据存储最大的区别在于存储介质不同: 热数据存储是直接将频繁被查询或更新,对访问的响应时间要求很高的热数据存储在DN数据盘中。 冷数据存储将不更新,偶尔被查询,对访问的响应时间要求不高的冷数据存储在OBS中。 因为其存储介质的不同,决定了两者的成本、性能、以及适用场景,如表1所示: 表1 冷热数据存储区别 存储名称 读取、写入速度 成本 容量 适用场景 热数据存储 快 高 固定,有限制 适用于那些数据量有限,需要频繁读取、更新的场景。 冷数据存储 慢 低 大、无限制 适用于一些归档类业务,利用其低成本,大容量的特点,在完整保存数据的同时,还能节省成本,不占用本地空间。 父主题: 集群管理
-
如何使用DWS的\copy导入导出? 由于云上DWS是全托管服务,用户无法登录后台,无法使用copy进行导入导出文件,所以云上将copy语法禁掉。云上推荐将数据文件放到obs上,使用obs外表进行入库,如果需要使用copy导入导出数据,可以参考如下方法: 将数据文件放到客户端的机器上。 使用gsql连接集群。 执行如下命令导入数据,输入数据文件在客户端的目录信息和文件名,with中指定导入选项,跟正常copy一样,但是需要在copy前添加"\"标识,入库成功后不会有消息提示。 \copy tb_name from '/directory_name/file_name' with(...); 执行如下命令,使用默认参数直接导出数据到本地文件。 \copy table_name to '/directory_name/file_name'; 使用copy_option参数导出为CSV文件。 \copy table_name to '/directory_name/file_name' CSV; 使用with指定option参数,导出为CSV文件,分隔符为'|'。 \copy table_name to '/directory_name/file_name' with(format 'csv',delimiter '|') ; 父主题: 数据迁移
-
如何调整 通过select version();语句查询当前数据库版本号,版本号不同,调整的方式不同: 8.0.x及以前版本,通过重建表时指定分布列来调整: 通过Data Studio或者Linux下使用gsql访问数据库。 创建新表。 以下步骤语句中,table1为原表名,table1_new为新表名,column1和column2为分布列名称。 1 2 3 4 CREATE TABLE IF NOT EXISTS table1_new ( LIKE table1 INCLUDING ALL EXCLUDING DISTRIBUTION) DISTRIBUTE BY HASH (column1, column2); 迁移数据到新表。 1 2 3 4 START TRANSACTION; LOCK TABLE table1 IN AC CES S EXCLUSIVE MODE; INSERT INTO table1_new SELECT * FROM table1; COMMIT; 查看表数据是否迁移成功,删除原表。 1 2 SELECT COUNT(*) FROM table1_new; DROP TABLE table1; 替换原表。 1 ALTER TABLE table1_new RENAME TO table1; 8.1.0及以后版本后,通过ALTER TABLE语法进行调整,以下为示例。 查询当前表定义,返回结果显示该表分布列为c_last_name。 1 SELECT pg_get_tabledef('customer_t1'); 更新分布列中的数据时报错。 1 UPDATE customer_t1 SET c_last_name = 'Jimy' WHERE c_customer_sk = 6885; 将该表的分布列修改为不会更新的列,例如c_customer_sk。 1 ALTER TABLE customer_t1 DISTRIBUTE BY hash (c_customer_sk); 重新执行更新旧的分布列的数据。更新成功。 1 UPDATE customer_t1 SET c_last_name = 'Jimy' WHERE c_customer_sk = 6885;
-
选择合适的分布列 Hash分布表的分布列选取至关重要,需要满足以下基本原则: 列值应比较离散,以便数据能够均匀分布到各个DN。例如,考虑选择表的主键为分布列,如在人员信息表中选择身份证号码为分布列。 在满足第一条原则的情况下尽量不要选取存在常量filter的列。 在满足前两条原则的情况,考虑选择查询中的连接条件为分布列,以便Join任务能够下推到DN中执行,且减少DN之间的通信数据量。 支持多分布列特性,可以更好地满足数据分布的均匀性要求。
-
EVS快照 云硬盘快照指的是云硬盘数据在某个时刻的完整拷贝或镜像,是一种重要的数据容灾手段,当数据丢失时,可通过快照将数据完整的恢复到快照时间点。 您可以创建快照,从而快速保存指定时刻云硬盘的数据。同时,您还可以通过快照创建新的云硬盘,这样云硬盘在初始状态就具有快照中的数据。 创建快照可以快速保存指定时刻云硬盘的数据,实现数据容灾: 当数据丢失时,可通过快照将数据完整的恢复到快照时间点。 通过快照创建新的云硬盘,新的云硬盘具有快照中的数据。 有关快照的更多内容,请参见云硬盘快照。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格