# 快速创建DWS集群并导入数据进行查询
#### 操作场景
数据仓库服务（DWS）是完全托管的企业级云上数据仓库服务，具备免运维、在线扩展、高效的多源数据加载能力，兼容PostgreSQL生态。助力企业经济高效地对海量数据进行在线分析，实现数据快速变现。
本文以创建3节点的DWS集群为例，通过导入OBS桶上CSV格式的数据，完成简单的数据查询。
![](https://support.huaweicloud.com/qs-dws/public_sys-resources/notice_3.0-zh-cn.png)
DWS集群不支持跨区域访问OBS桶数据，创建DWS集群前需规划好DWS集群与OBS桶在同一个区域内，本文以"华北-北京四"为例。
- 计费方式：按需
- 版本选择：存算一体
- 集群节点：3
- 连接集群方式：SQL编辑器
- 存储容量：20G/节点
- 数据源：OBS桶的csv数据
- 集群版本：8.1.3.x
 
#### 视频介绍
<video controls="controls" preload="none" id="object489871019593" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/support/dws-video/qs.mp4" title="快速入门" poster="https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002368866288.png" height="308.0000" width="600.0000"></video>
#### 操作流程
表1操作流程 
| 操作步骤                                                                                   | 说明                                                         |
|:---|:---|
| [准备工作] | 注册华为云账号，实名认证，为账户充值以及规划和创建VPC、子网资源。                          |
| [步骤一：创建DWS集群]                        | 创建3节点的DWS集群，配置集群节点、存储容量、集群版本号等信息。                            |
| [步骤二：上传数据到OBS桶]                     | 创建OBS桶，并将本地的csv格式数据上传到OBS桶。                                |
| [步骤三：连接DWS集群并导入数据进行分析]               | 使用SQL编辑器连接DWS数据库，并创建OBS外表，通过OBS外表将OBS桶数据导入DWS集群，并进行简单SQL查询。 |
   
 #### 准备工作
1. 注册账号并实名认证，且在使用DWS前检查账号状态，账号不能处于欠费或冻结状态。 在购买DWS之前，请先[注册华为云账号](https://support.huaweicloud.com/usermanual-account/account_id_001.html)、[实名认证](https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0071343161.html)。
   如果您已注册华为云账号并进行实名认证，请忽略此步骤。
   
2. 为账户充值。 请保证账户有足够的资金，以免创建DWS失败。具体操作，请参见[账户充值](https://support.huaweicloud.com/usermanual-billing/bills-topic_30000002.html)。
   
3. 获取此账号的"AK/SK"，参见[访问密钥](https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html)。
4. 规划VPC和子网等网络资源。 当您开始创建DWS的操作时，如果未配置过虚拟私有云，需进入[虚拟私有云管理控制台](https://console.huaweicloud.com/vpc)，新创建一个满足需求的虚拟私有云。更多信息请参见[虚拟私有云和子网规划建议](https://support.huaweicloud.com/usermanual-vpc/vpc_0001.html)。
   
5. 创建安全组并配置安全组规则。 当您开始创建DWS的操作时，选择"自动创建安全组"系统会创建默认的安全组（default）。默认安全组的更多信息，请参见[默认安全组和规则](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0603.html)。
   如果默认安全组和规则不能满足您的业务需要，建议您提前修改安全组规则。具体操作，请参见[配置安全组规则](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0030878383.html)。
   
 
 #### 步骤一：创建DWS集群
1. 登录[DWS管理控制台购买页面](https://console.huaweicloud.com/dws/#/dws/createInstance)。
2. 参见[表2]进行基础配置。
   
    表2基础配置 
   | 参数   | 示例                                                                                                                 | 说明                                                                                                                                                                                                                                                                             |
   |:---|:---|:---|
   | 区域   | 选择"**华北-北京四**"。 说明： 本指导以"华北-北京四"为例进行介绍，如果您需要选择其他区域，请确保其他云服务均在同一区域。 | 请就近选择靠近您业务的区域，可以降低网络时延、提高访问速度。DWS创建后无法更换区域，请谨慎选择。 更多信息，请参见[区域和可用分区](https://support.huaweicloud.com/dws_faq/dws_03_0052.html)。                                                                                                      |
   | 计费模式                              | **按需计费**。                                                                                                                                      | 支持包年/包月计费、按需计费。如长期使用，建议使用包年/包月，可享受更大折扣。 更多信息，请参见[计费说明](https://support.huaweicloud.com/price-dws/dws_price_0001.html)。                                                                                                         |
   | 可用分区 | **可用区1**（如规格售罄，可选择其他可用区）。                                                                                                                      | - 单AZ：集群的所有节点部署在同一个AZ内。  - 多AZ：集群的节点部署在多个AZ内，满足集群跨AZ高可用要求，对高可用要求更高的业务，建议使用多AZ。   |
      
   图1基础配置   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002581577306.png "点击放大")
   
   
3. 参见[表3]，进行数据仓库规格配置。
   
    表3规格配置 
   | 参数     | 示例                                                                                    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                              |
   |:---|:---|:---|
   | 版本选择    | **存算一体**                                                                              | - 存算一体：数据存储在计算节点的本地磁盘。  - 存算分离：计算节点本地盘仅做数据缓存和存储元数据，用户数据存储在OBS对象存储上。                                                                                                                                                                   |
   | 存储类型   | **SSD云盘**                                                                               | - SSD云盘：使用SSD类型的EVS作为数据存储介质，存储容量更加灵活，支持磁盘扩容。  - SSD本地盘：使用ECS规格自带的本地磁盘作为数据存储介质，容量固定，性能更高，不支持磁盘扩容。   更多信息，请参见[SSD云盘和本地盘的区别](https://support.huaweicloud.com/dws_faq/dws_03_2141.html)。 |
   | 节点规格     | **dwsk2.xlarge** 说明： 如规格售罄，可选择其他可用区或规格。 | 节点规格是衡量DWS算力的一个指标，包含CPU架构、vCPUs、内存、计算类型和部署类型，请根据业务需求合理选择，通常对查询性能要求越高，选择的规格越大。 更多信息，请参见[数据仓库规格](https://support.huaweicloud.com/productdesc-dws/dws_01_00018.html)。                                                                                                                                                                                                                 |
   | 热数据存储 | **20GB** / 节点                                                                         | 每节点可用存储容量。界面上显示的是业务数据实际存储容量，例如20GB/节点，节点总数3，则业务数据总容量为60GB。对于业务数据量较大的客户，请合理规划存储容量。                                                                                                                                                                                                                                                                                                                                                |
   | 节点数量     | **3**                                                                                 | 集群节点的数量。支持的节点数范围为3～256。                                                                                                                                                                                                                                                                                                                                                                                                        |
      
   图2规格配置   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002612097169.png "点击放大")
   
   
4. 参见[表4]进行网络配置。
   
    表4网络配置 
   | 参数    | 示例                                 | 说明                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|:---|
   | 虚拟私有云  | **vpc-default**                     | DWS所在的虚拟私有云网络。                                                                                                                                                                                                                                                                                                                     |
   | 子网    | **subnet-default(192.168.xx.xx/24)** | 虚拟私有云的子网。                                                                                                                                                                                                                                                                                                                          |
   | 安全组    | **自动创建安全组**                        | 支持"自动创建安全组"或选择已创建的安全组。 系统默认选中"自动创建安全组"，设置为该选项时，系统将会自动创建一个默认安全组。 默认安全组的规则如下：出方向允许所有访问，入方向只开放用户设置的DWS 集群的数据库端口8000。                                                                                                                       |
   | 公网访问   | **暂不使用**                            | 如果连接DWS的客户端跟DWS不在一个虚拟私有云网络内，需要选择使用弹性公网IP。                                                                                                                                                                                                                                                                                           |
   | 弹性负载均衡 | **暂不使用**                             | 用户使用客户端连接DWS集群时，如果用户仅连接一个CN节点地址，通过该CN节点内网IP或弹性公网IP连接时，只能连接到固定的CN节点上，存在CN单点问题。 利用ELB健康检查机制可将集群的CN请求快速转发到正常工作的CN节点上，当有CN故障节点时，也能第一时间切换流量到健康节点上，最大化降低集群访问故障。 更多信息，请参见[集群绑定和解绑ELB](https://support.huaweicloud.com/mgtg-dws/dws_01_0822.html)。 |
      
   图3网络配置   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002612097301.png "点击放大")
   
   
5. 参见[表5]进行集群管理配置。
   
    表5集群管理配置 
   | 参数    | 示例          | 说明                                                                                                                                                                                                                                                         |
   |:---|:---|:---|
   | 集群名称 | **dws-demo** | 集群名称，用户自定义，支持后续修改。                                                                                                                                                                                                                                          |
   | 集群版本  | 使用推荐版本       | 每个版本支持的数据库功能不同，默认选择推荐版本。如需使用高版本功能，请选择更高版本。 说明： 白名单客户界面，会显示其他集群版本，请根据界面实际情况选择。 集群各版本支持功能，请参见[产品公告](https://support.huaweicloud.com/bulletin-dws/dws_12_0006.html)。 |
   | 集群时区 | 默认          | 集群数据库默认使用的时区。                                                                                                                                                                                                                                              |
   | 企业项目  | default     | 仅当使用企业类型的账号创建DWS时，会显示该参数。 用于按项目统一管理云资源。                                                                                                                                                                      |
   | 标签   | -           | 在DWS中，当用户创建集群后，如果想对集群添加如项目名称、业务类别、背景信息等相关信息的标识，用户可以通过添加标签来实现。如果用户在其他云服务中使用了标签，那么建议用户为同一个业务所使用的云资源创建相同的标签键值对以保持一致性。                                                                                                                                         |
      
   图4集群管理配置   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002612097345.png "点击放大")
   
   
6. 参见[表6]进行数据库配置。
   
    表6数据库管理、加密数据库和更多配置 
   | 参数    | 示例         | 说明                                                                                                                                                                                                                                                                                                            |
   |:---|:---|:---|
   | 管理员用户   | **dbadmin** | 指定数据库系统管理员的用户名，默认即可。 数据库系统管理员默认具有SYSADMIN属性，非三权分立模式下，拥有数据库最高权限。可用于规划数据库对象，例如创建数据库、用户、授权用户角色等操作。 更多信息，请参见[数据库用户](https://support.huaweicloud.com/devg-dws/dws_04_0055.html)。                                   |
   | 管理员密码 | -         | 数据库系统管理员密码。                                                                                                                                                                                                                                                                                                  |
   | 确认密码   | -            | 数据库系统管理员密码。                                                                                                                                                                                                                                                                                                   |
   | 数据库端口 | **8000**  | 客户端连接DWS数据库的端口，默认8000即可。                                                                                                                                                                                                                                                                                       |
   | 加密数据库  | -            | 开启后，DWS将使用KMS（密钥管理服务）为集群及其快照的数据启用加密功能。                                                                                                                                                                                                                                                                       |
   | 更多配置   | -           | - **CN部署量**：在大规模集群下，建议部署多个CN。默认部署3个CN节点。  - **子网IPV6网段**：设置该集群是否开启IPv6双栈功能。勾选"开启IPv6"时，客户端或应用程序可通过IPv6的IP连接数据库。   |
      
   
   
7. 在页面右侧**"配置概要"** 中确认配置，确认无误后，单击"立即购买"。
   
   等待约10分钟，集群创建成功。
   
   
 #### 步骤二：上传数据到OBS桶
1. 创建OBS桶，参见[OBS用户指南](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)。
   
   关键参数按如下填写，其他参数默认即可。
   ![](https://support.huaweicloud.com/qs-dws/public_sys-resources/caution_3.0-zh-cn.png)
   不支持跨区域访问OBS桶数据，OBS桶需跟DWS创在同一个区域。例如"华北-北京四"。
   - **区域**：华北-北京四
   
   - **桶名称**：dws-obs01 （如提示冲突，可以依次递增到02、03）
   
   - **桶策略**：私有
   
   
   
   

2. 创建OBS桶成功后，左侧选择"桶列表"，单击新创建的dws-obs01桶名，左侧导航选择"对象"，单击"新建文件夹"，文件夹名称为"input_data"，单击"确定"。 
   图5新建文件夹   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002009746761.png "点击放大")
   
   
   
3. 在本地PC创建3个csv数据文件，名字（含格式后缀）分别为**product_info0.csv** 、**product_info1.csv** 、**product_info2.csv** 。
   
   图6创建csv文件   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000001973407782.png "点击放大")
   
   
4. 使用文本编辑工具分别打开3个csv文件，复制以下内容到每个csv文件中。 
   - product_info0.csv：
     ```
     100,XHDK-A,2017-09-01,A,2017 Shirt Women,red,M,328,2017-09-04,715,good! 
     205,KDKE-B,2017-09-01,A,2017 T-shirt Women,pink,L,584,2017-09-05,40,very good! 
     300,JODL-X,2017-09-01,A,2017 T-shirt men,red,XL,15,2017-09-03,502,Bad. 
     310,QQPX-R,2017-09-02,B,2017 jacket women,red,L,411,2017-09-05,436,It's nice. 
     150,ABEF-C,2017-09-03,B,2017 Jeans Women,blue,M,123,2017-09-06,120,good.
     ```
     
   
   - product_info1.csv：
     ```
     200,BCQP-E,2017-09-04,B,2017 casual pants men,black,L,997,2017-09-10,301,good quality. 
     250,EABE-D,2017-09-10,A,2017 dress women,black,S,841,2017-09-15,299,This dress fits well. 
     108,CDXK-F,2017-09-11,A,2017 dress women,red,M,85,2017-09-14,22,It's really amazing to buy. 
     450,MMCE-H,2017-09-11,A,2017 jacket women,white,M,114,2017-09-14,22,very good. 
     260,OCDA-G,2017-09-12,B,2017 woolen coat women,red,L,2004,2017-09-15,826,Very comfortable.
     ```
     
   
   - product_info2.csv：
     ```
     980,"ZKDS-J",2017-09-13,"B","2017 Women's Cotton Clothing","red","M",112,,, 
     98,"FKQB-I",2017-09-15,"B","2017 new shoes men","red","M",4345,2017-09-18,5473
     50,"DMQY-K",2017-09-21,"A","2017 pants men","red","37",28,2017-09-25,58,"good","good","good"
     80,"GKLW-l",2017-09-22,"A","2017 Jeans Men","red","39",58,2017-09-25,72,"Very comfortable."
     30,"HWEC-L",2017-09-23,"A","2017 shoes women","red","M",403,2017-09-26,607,"good!"
     40,"IQPD-M",2017-09-24,"B","2017 new pants Women","red","M",35,2017-09-27,52,"very good."
     50,"LPEC-N",2017-09-25,"B","2017 dress Women","red","M",29,2017-09-28,47,"not good at all."
     60,"NQAB-O",2017-09-26,"B","2017 jacket women","red","S",69,2017-09-29,70,"It's beautiful."
     70,"HWNB-P",2017-09-27,"B","2017 jacket women","red","L",30,2017-09-30,55,"I like it so much"
     80,"JKHU-Q",2017-09-29,"C","2017 T-shirt","red","M",90,2017-10-02,82,"very good."
     ```
     
   
   
   
   
   
5. 使用文本编辑工具转为UTF-8编码，并保存。
6. 回到浏览器上的OBS控制台，左侧导航选择"桶列表"，单击新创建的dws-obs01桶名。
7. 左侧导航选择"对象"，单击"input_data"文件夹。
8. 单击"上传对象"，单击"添加文件"。
9. 将**product_info0.csv** 、**product_info1.csv** 、**product_info2.csv**3个文件上传到OBS桶。
 
 #### 步骤三：连接DWS集群并导入数据进行分析
1. 浏览器切换到DWS管理控制台。
2. 左侧导航选择"数据 \> SQL编辑器"，单击"新增数据源"。
3. 填写数据库连接信息。 
   - 数据源名称：dws-demo-01。
   
   - 集群：选择本文创建的dws-demo集群。
   
   - 数据库：保持gaussdb默认。
   
   - 用户名：dbadmin
   
   - 密码：[步骤一]中创建DWS集群时设置的密码。
   
   
   
   
4. 勾选"记住密码"，单击"测试连接"。 
   图7数据库连接信息   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002010033629.png "点击放大")
   
   
5. 单击"确定"。 
   如下图，数据源名称前面图标为绿色![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000001973420768.png "点击放大")，表示数据库连接成功。右侧区域为SQL编辑器窗口，可进行后续的SQL编写并执行SQL语句。
   图8连接数据库成功   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000001973259808.png "点击放大")
   ![](https://support.huaweicloud.com/qs-dws/public_sys-resources/note_3.0-zh-cn.png)
   后续连接会话超时，或者浏览器重新刷新时，![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000001973353364.png "点击放大")图标置为灰色，表示连接断开，可以直接双击数据源名称重新连接数据库。
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002009783297.png "点击放大")
   
   
   
6. 将以下SQL语句复制到SQL编辑器窗口中，并将OBS桶名称、AK值、SK值，替换成实际值。 
   本文OBS桶名为dws-obs01，AK值和SK值从[访问密钥](https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html)获取。
   ```
   CREATE FOREIGN TABLE product_info_ext 
   ( 
   product_price integer not null, 
   product_id char(30) not null, 
   product_time date, 
   product_level char(10), 
   product_name varchar(200), 
   product_type1 varchar(20), 
   product_type2 char(10), 
   product_monthly_sales_cnt integer, 
   product_comment_time date, 
   product_comment_num integer, 
   product_comment_content varchar(200)
     )  
   SERVER gsmpp_server  
   OPTIONS
   ( 
   LOCATION 'obs://OBS桶名称/input_data/', 
   FORMAT 'CSV' , 
   DELIMITER ',', 
   ENCODING 'utf8', 
   HEADER 'false', 
   ACCESS_KEY 'AK值', 
   SECRET_ACCESS_KEY 'SK值', 
   FILL_MISSING_FIELDS 'true', 
   IGNORE_EXTRA_DATA 'true'
    )
   READ ONLY
   LOG INTO product_info_err  
   PER NODE REJECT LIMIT 'unlimited';
   ```
   图9创建OBS外表   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002010153077.png "点击放大")
   
   
7. 核对SQL语句无误，单击"运行"，创建OBS外表成功。 
   图10创建OBS外表成功   
   ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000002009917677.png "点击放大")
   
   
8. 复制以下SQL语句，在SQL窗口中执行，创建普通表。 
   ```
   CREATE TABLE product_info 
   ( 
   product_price integer not null, 
   product_id char(30) not null, 
   product_time date , 
   product_level char(10) , 
   product_name varchar(200) , 
   product_type1 varchar(20) , 
   product_type2 char(10) , 
   product_monthly_sales_cnt integer , 
   product_comment_time date , 
   product_comment_num integer , 
   product_comment_content varchar(200)
    )  
   WITH
   ( 
   orientation = column, 
   compression=middle 
   ) 
   DISTRIBUTE BY hash (product_id);
   ```
   
   
9. 复制以下SQL语句，在SQL窗口中执行，通过INSERT语句将OBS外表数据导入DWS数据库。 
   ```
   INSERT INTO product_info SELECT * FROM product_info_ext;
   ```
   
   
10. 复制以下SQL语句，在SQL窗口中执行，进行VACUUM和ANALYZE操作。 
    了解更多语法，请参考相关SQL语法章节。
    ```
    VACUUM FULL product_info; 
    ANALYZE product_info;
    ```
    
    
11. 复制以下SQL语句，在SQL窗口中执行，查询数据明细成功。 
    ```
    SELECT * FROM product_info;
    ```
    图11查询数据成功   
    ![](https://support.huaweicloud.com/qs-dws/figure/zh-cn_image_0000001973285432.png "点击放大")
    
    
 
