
# 步骤1：数据准备
#### 使用DataArts Studio前的准备
如果您是第一次使用DataArts Studio，请参考[购买并配置DataArts Studio](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0115.html)章节完成注册华为账号、购买DataArts Studio实例、创建工作空间等一系列操作。然后进入到对应的工作空间，即可开始使用DataArts Studio。
 #### 数据源准备
本入门示例以某电商商城的BI报表数据为例，分析用户和商品的各种数据特征。
为方便演示，本示例提供了用于模拟原始数据的部分数据。为了方便将源数据集成到云上，我们需要先将样例数据存储为CSV文件，将CSV文件上传至OBS服务中。
1. 将样例数据（用户数据[user_data.csv]、商品数据[product_data.csv]、评价数据[comment_data.csv]和行为数据[action_data.csv]）分别复制粘贴到不同CSV文件中，然后保存为CSV文件（UTF-8无bom格式）。CSV文件名为对应的数据表名（比如用户数据的数据表名为user_data.csv）。
   
   以下是Windows下生成.csv文件的办法之一：
   1. 使用文本编辑工具（如记事本）新建一个txt文档，将某个样例数据复制到文档中。
      ![](https://support.huaweicloud.com/qs-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
      - 复制后检查数据的行数及数据分行的正确性。
      
      - 如果是从PDF文档中复制样例数据，单行的数据过长时会产生换行，需手动重新调整为单行。
        
   
   2. 单击"文件 \> 另存为"，在弹出的对话框中，"保存类型"选择为"所有文件(\*.\*)"，在"文件名"处输入文件名和.csv后缀，选择"UTF-8"编码格式（不能带BOM），则能以CSV格式保存该文件。
    
   
   
2. 将保存了样例数据的CSV文件上传到OBS服务。 
   1. 登录[OBS管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)。
   
   2. 单击"创建桶"，然后根据页面提示配置参数，创建一个OBS桶（本示例的OBS桶名称为"fast-demo"）。
      ![](https://support.huaweicloud.com/qs-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
      为保证网络互通，OBS桶区域请选择和DataArts Studio实例相同的区域。如果需要选择企业项目，也请选择与DataArts Studio实例相同的企业项目。
      使用OBS控制台创建桶的操作，请参见《对象存储服务控制台指南》中的[创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)。
      
   
   3. 单击"fast-demo"的桶名称，进入"对象"页面。
   
   4. 在"对象"页面单击"新建文件夹"，创建user_data、product_data、comment_data和action_data四个文件夹。
      图1新建文件夹   
      ![](https://support.huaweicloud.com/qs-dataartsstudio/zh-cn_image_0000002717413185.png "点击放大") 
   
   5. 将[步骤1]中保存的user_data.csv、product_data.csv、comment_data.csv和action_data.csv文件上传数据到对应文件夹中（比如user_data.csv上传到user_data文件夹）。
      ![](https://support.huaweicloud.com/qs-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
      由于DLI在关联CSV表格用于创建OBS外表时，不支持指定文件名、仅支持指定文件路径，因此需要将CSV表格分别放到不同的文件路径下，且确保文件路径下仅包含所需的CSV表格。
      使用OBS控制台上传文件的操作，请参见《对象存储服务控制台指南》中的[上传文件](https://support.huaweicloud.com/usermanual-obs/obs_03_1002.html)。
      
   
   
   
   
 
#### 样例数据
本示例中涉及到4部分原始样例数据，分别为用户数据[user_data.csv]、商品数据[product_data.csv]、评价数据[comment_data.csv]和行为数据[action_data.csv]。
- [user_data.csv]
  
  ```
  user_id,age,gender,rank,register_time
  100001,20,0,1,2021/1/1
  100002,22,1,2,2021/1/2
  100003,21,0,3,2021/1/3
  100004,24,2,5,2021/1/4
  100005,50,2,9,2021/1/5
  100006,20,1,3,2021/1/6
  100007,18,1,1,2021/1/7
  100008,20,1,6,2021/1/8
  100009,60,0,4,2021/1/9
  100010,20,1,1,2021/1/10
  100011,35,0,5,2021/1/11
  100012,20,1,1,2021/1/12
  100013,7,0,1,2021/1/13
  100014,64,0,8,2021/1/14
  100015,20,1,1,2021/1/15
  100016,33,1,7,2021/1/16
  100017,20,0,1,2021/1/17
  100018,15,1,1,2021/1/18
  100019,20,1,9,2021/1/19
  100020,33,0,1,2021/1/20
  100021,20,0,1,2021/1/21
  100022,22,1,5,2021/1/22
  100023,20,1,1,2021/1/23
  100024,20,0,1,2021/1/24
  100025,34,0,7,2021/1/25
  100026,34,1,1,2021/1/26
  100027,20,1,8,2021/1/27
  100028,20,0,1,2021/1/28
  100029,56,0,5,2021/1/29
  100030,20,1,1,2021/1/30
  100031,22,1,8,2021/1/31
  100032,20,0,1,2021/2/1
  100033,32,1,0,2021/2/2
  100034,20,1,1,2021/2/3
  100035,45,0,6,2021/2/4
  100036,20,0,1,2021/2/5
  100037,67,1,4,2021/2/6
  100038,78,0,6,2021/2/7
  100039,11,1,8,2021/2/8
  100040,8,0,0,2021/2/9
  ```
  表1用户数据说明 
  | 字段名称          | 字段类型   | 字段说明   | 字段取值                                                                                                                                                                                                                                                                                                                          |
  |:---|:---|:---|:---|
  | user_id       | int    | 用户ID   | 脱敏                                                                                                                                                                                                                                                                                                                            |
  | age           | int    | 年龄段    | -1表示未知                                                                                                                                                                                                                                                                                                                        |
  | gender        | int    | 性别     | - 0表示男  - 1表示女  - 2表示保密   |
  | rank          | Int    | 用户等级   | 有顺序的级别枚举，越高级别数字越大                                                                                                                                                                                                                                                                                                             |
  | register_time | string | 用户注册日期 | 单位：天                                                                                                                                                                                                                                                                                                                          |
     
- [product_data.csv]
  
  ```
  product_id,a1,a2,a3,category,brand
  200001,1,1,1,300001,400001
  200002,2,2,2,300002,400001
  200003,3,3,3,300003,400001
  200004,1,2,3,300004,400001
  200005,3,2,1,300005,400002
  200006,1,1,1,300006,400002
  200007,2,2,2,300007,400002
  200008,3,3,3,300008,400002
  200009,1,2,3,300009,400003
  200010,3,2,1,300010,400003
  200011,1,1,1,300001,400003
  200012,2,2,2,300002,400003
  200013,3,3,3,300003,400004
  200014,1,2,3,300004,400004
  200015,3,2,1,300005,400004
  200016,1,1,1,300006,400004
  200017,2,2,2,300007,400005
  200018,3,3,3,300008,400005
  200019,1,2,3,300009,400005
  200020,3,2,1,300010,400005
  200021,1,1,1,300001,400006
  200022,2,2,2,300002,400006
  200023,3,3,3,300003,400006
  200024,1,2,3,300004,400006
  200025,3,2,1,300005,400007
  200026,1,1,1,300006,400007
  200027,2,2,2,300007,400007
  200028,3,3,3,300008,400007
  200029,1,2,3,300009,400008
  200030,3,2,1,300010,400008
  200031,1,1,1,300001,400008
  200032,2,2,2,300002,400008
  200033,3,3,3,300003,400009
  200034,1,2,3,300004,400009
  200035,3,2,1,300005,400009
  200036,1,1,1,300006,400009
  200037,2,2,2,300007,400010
  200038,3,3,3,300008,400010
  200039,1,2,3,300009,400010
  200040,3,2,1,300010,400010
  ```
  表2商品数据说明 
  | 字段名称       | 字段类型 | 字段说明 | 字段取值      |
  |:---|:---|:---|:---|
  | product_id | int  | 商品编号 | 脱敏        |
  | a1         | int  | 属性1  | 枚举，-1表示未知 |
  | a2         | int  | 属性2  | 枚举，-1表示未知 |
  | a3         | int  | 属性3  | 枚举，-1表示未知 |
  | category   | int  | 品类ID | 脱敏        |
  | brand      | int  | 品牌ID | 脱敏        |
     
- [comment_data.csv]
  
  ```
  deadline,product_id,comment_num,has_bad_comment,bad_comment_rate
  2021/3/1,200001,4,0,0
  2021/3/1,200002,1,0,0
  2021/3/1,200003,2,2,0.1
  2021/3/1,200004,3,3,0.05
  2021/3/1,200005,1,0,0
  2021/3/1,200006,2,0,0
  2021/3/1,200007,3,2,0.01
  2021/3/1,200008,4,1,0.001
  2021/3/1,200009,4,0,0
  2021/3/1,200010,1,0,0
  2021/3/1,200011,2,2,0.2
  2021/3/1,200012,3,3,0.04
  2021/3/1,200013,1,0,0
  2021/3/1,200014,2,2,0.2
  2021/3/1,200015,3,2,0.05
  2021/3/1,200016,4,1,0.003
  2021/3/1,200017,4,0,0
  2021/3/1,200018,1,0,0
  2021/3/1,200019,2,2,0.3
  2021/3/1,200020,3,3,0.03
  2021/3/1,200021,1,0,0
  2021/3/1,200022,2,5,1
  2021/3/1,200023,3,2,0.07
  2021/3/1,200024,4,1,0.006
  2021/3/1,200025,4,0,0
  2021/3/1,200026,1,0,0
  2021/3/1,200027,2,2,0.4
  2021/3/1,200028,3,3,0.03
  2021/3/1,200029,1,0,0
  2021/3/1,200030,2,5,1
  2021/3/1,200031,3,2,0.02
  2021/3/1,200032,4,1,0.003
  2021/3/1,200033,4,0,0
  2021/3/1,200034,1,0,0
  2021/3/1,200035,2,2,0.5
  2021/3/1,200036,3,3,0.06
  2021/3/1,200037,1,0,0
  2021/3/1,200038,2,1,0.01
  2021/3/1,200039,3,2,0.01
  2021/3/1,200040,4,1,0.009
  ```
  表3评价数据说明 
  | 字段名称             | 字段类型   | 字段说明    | 字段取值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  |:---|:---|:---|:---|
  | deadline         | string | 截止时间    | 单位：天                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  | product_id       | int    | 商品编号    | 脱敏                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | comment_num      | int    | 累计评论数分段 | - 0表示无评论  - 1表示有1条评论  - 2表示有2-10条评论  - 3表示有11-50条评论  - 4表示大于50条评论   |
  | has_bad_comment  | int    | 是否有差评   | 0表示无，1表示有                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | bad_comment_rate | float  | 差评率     | 差评数占总评论数的比重                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
     
- [action_data.csv]
  
  ```
  user_id,product_id,time,model_id,type
  100001,200001,2021/1/1,1,view
  100001,200001,2021/1/1,1,add
  100001,200001,2021/1/1,1,delete
  100001,200002,2021/1/2,1,view
  100001,200002,2021/1/2,1,add
  100001,200002,2021/1/2,1,buy
  100001,200002,2021/1/2,1,like
  100002,200003,2021/1/1,1,view
  100002,200003,2021/1/1,1,add
  100002,200003,2021/1/1,1,delete
  100002,200004,2021/1/2,1,view
  100002,200004,2021/1/2,1,add
  100002,200004,2021/1/2,1,buy
  100002,200004,2021/1/2,1,like
  100003,200001,2021/1/1,1,view
  100003,200001,2021/1/1,1,add
  100003,200001,2021/1/1,1,delete
  100004,200002,2021/1/2,1,view
  100005,200002,2021/1/2,1,add
  100006,200002,2021/1/2,1,buy
  100007,200002,2021/1/2,1,like
  100001,200003,2021/1/1,1,view
  100002,200003,2021/1/1,1,add
  100003,200003,2021/1/1,1,delete
  100004,200004,2021/1/2,1,view
  100005,200004,2021/1/2,1,add
  100006,200004,2021/1/2,1,buy
  100007,200004,2021/1/2,1,like
  100001,200005,2021/1/3,1,view
  100001,200005,2021/1/3,1,add
  100001,200005,2021/1/3,1,delete
  100001,200006,2021/1/3,1,view
  100001,200006,2021/1/4,1,add
  100001,200006,2021/1/4,1,buy
  100001,200006,2021/1/4,1,like
  100010,200005,2021/1/3,1,view
  100010,200005,2021/1/3,1,add
  100010,200005,2021/1/3,1,delete
  100010,200006,2021/1/3,1,view
  100010,200006,2021/1/4,1,add
  100010,200006,2021/1/4,1,buy
  100010,200006,2021/1/4,1,like
  100001,200007,2021/1/2,1,buy
  100001,200007,2021/1/2,1,like
  100002,200007,2021/1/1,1,view
  100002,200007,2021/1/1,1,add
  100002,200007,2021/1/1,1,delete
  100002,200007,2021/1/2,1,view
  100002,200007,2021/1/2,1,add
  100002,200008,2021/1/2,1,like
  100002,200008,2021/1/2,1,like
  100003,200008,2021/1/1,1,view
  100003,200008,2021/1/1,1,add
  100003,200008,2021/1/1,1,delete
  100004,200008,2021/1/2,1,view
  100005,200009,2021/1/2,1,like
  100006,200009,2021/1/2,1,buy
  100007,200010,2021/1/2,1,like
  100001,200010,2021/1/1,1,view
  100002,200010,2021/1/1,1,add
  100003,200010,2021/1/1,1,delete
  100004,200010,2021/1/2,1,view
  100005,200010,2021/1/2,1,like
  100006,200010,2021/1/2,1,buy
  100007,200010,2021/1/2,1,like
  100001,200010,2021/1/3,1,view
  100001,200010,2021/1/3,1,add
  100001,200010,2021/1/3,1,delete
  100001,200011,2021/1/3,1,view
  100001,200011,2021/1/4,1,like
  100001,200011,2021/1/4,1,buy
  100001,200011,2021/1/4,1,like
  100010,200012,2021/1/3,1,view
  100011,200012,2021/1/3,1,like
  100011,200012,2021/1/3,1,delete
  100011,200013,2021/1/3,1,view
  100011,200013,2021/1/4,1,like
  100011,200014,2021/1/4,1,buy
  100011,200014,2021/1/4,1,like
  100007,200022,2021/1/2,1,like
  100001,200022,2021/1/1,1,view
  100002,200023,2021/1/1,1,add
  100003,200023,2021/1/1,1,delete
  100004,200023,2021/1/2,1,like
  100005,200024,2021/1/2,1,add
  100006,200024,2021/1/2,1,buy
  100007,200025,2021/1/2,1,like
  100001,200025,2021/1/3,1,view
  100001,200026,2021/1/3,1,like
  100001,200026,2021/1/3,1,delete
  100001,200027,2021/1/3,1,view
  100001,200027,2021/1/4,1,like
  100001,200027,2021/1/4,1,buy
  100001,200028,2021/1/4,1,like
  100010,200029,2021/1/3,1,view
  100011,200030,2021/1/3,1,like
  100011,200031,2021/1/3,1,delete
  100011,200032,2021/1/3,1,view
  100011,200033,2021/1/4,1,like
  100011,200034,2021/1/4,1,buy
  100011,200035,2021/1/4,1,like
  ```
  表4行为数据说明 
  | 字段名称       | 字段类型   | 字段说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 字段取值 |
  |:---|:---|:---|:---|
  | user_id    | int    | 用户编号                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 脱敏   |
  | product_id | int    | 商品编号                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 脱敏   |
  | time       | string | 行为时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -    |
  | model_id   | string | 模块编号                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 脱敏   |
  | type       | string | - 浏览view（指浏览商品详情页）  - 加入购物车add  - 购物车删除delete  - 下单buy  - 关注like   | -    |
     
#### 数据湖准备
在本示例中，选择数据湖探索（DLI）服务作为数据底座。为确保DataArts Studio与DLI网络互通，在创建DLI队列时区域和企业项目应与DataArts Studio实例保持一致。
![](https://support.huaweicloud.com/qs-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
- 当前由于DLI的"default"队列默认Spark组件版本较低，可能会出现无法支持建表语句执行的报错，这种情况下建议您选择自建队列运行业务。如需"default"队列支持建表语句执行，可联系DLI服务客服或技术支持人员协助解决。
- DLI的"default"队列为共享队列，仅用于用户体验，用户间可能会出现抢占资源的情况，不能保证每次都可以得到资源执行相关操作。当遇到执行时间较长或无法执行的情况，建议您在业务低峰期再次重试，或选择自建队列运行业务。
  
 
先完成DLI作业桶的配置，然后在管理中心创建DLI连接，随后通过数据开发组件新建数据库，最后执行SQL创建OBS外表。
详细操作步骤如下：
1. DLI作业桶的配置，具体操作请参考[配置DLI作业桶](https://support.huaweicloud.com/usermanual-dli/dli_01_0536.html)。
2. [登录DataArts Studio管理控制台](https://console.huaweicloud.com/dayu/)。
   
   详情请参考[访问DataArts Studio实例控制台](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0001.html)。
   
   
3. 在DataArts Studio控制台首页，选择对应工作空间的"管理中心"模块，进入管理中心页面。
4. 在"数据连接"页面，单击"创建数据连接"按钮。 
   图2数据连接   
   ![](https://support.huaweicloud.com/qs-dataartsstudio/zh-cn_image_0000002028721365.png "点击放大")
   
   
   
5. 创建一个到DLI的连接，数据连接类型选择"数据湖探索（DLI）"，数据连接名称设置为"dli"，其他选项保持默认。
   
   完成设置后，单击"测试"，测试成功后单击"保存"，完成DLI数据连接的创建。
   图3创建数据连接   
   ![](https://support.huaweicloud.com/qs-dataartsstudio/zh-cn_image_0000002563009925.png "点击放大")
   
   
   
6. DLI连接创建完成后，跳转到数据开发页面。 
   图4跳转到数据开发页面   
   ![](https://support.huaweicloud.com/qs-dataartsstudio/zh-cn_image_0000002557432319.png "点击放大")
   
   
7. 参见[图5]，在DLI连接上右键单击，创建一个数据库用于存放数据表，数据库名称为"BI"。
   
   图5创建数据库   
   ![](https://support.huaweicloud.com/qs-dataartsstudio/zh-cn_image_0000001207516206.png "点击放大")
   
   
8. 参见[图6]，新建DLI SQL脚本，通过DLI SQL语句来创建数据表。
   
   图6新建脚本   
   ![](https://support.huaweicloud.com/qs-dataartsstudio/zh-cn_image_0000001207518476.png "点击放大")
   
   
9. 在新建脚本弹出的SQL编辑器中，填写关键参数。 
   表5关键参数 
   | 参数   | 说明                                                          |
   |:---|:---|
   | 数据连接 | [步骤5]中创建的DLI数据连接。 |
   | 数据库  | [步骤7]中创建的数据库。    |
   | 资源队列 | 可使用提供的默认资源队列"default"。                                      |
      
   图7关键参数   
   ![](https://support.huaweicloud.com/qs-dataartsstudio/zh-cn_image_0000002717575721.png "点击放大")
   
   输入如下SQL语句，单击"运行"来创建数据表。其中，user、product、comment、action为OBS外表，使用[数据源准备]中的CSV文件来填充数据，用于存放原始数据；top_like_product和top_bad_comment_product为DLI表，用于存放分析结果。
   ```
   create table user(
     user_id int,
     age int,
     gender int,
     rank int,
     register_time string
   ) USING csv OPTIONS (path "obs://fast-demo/user_data");
   create table product(
     product_id int,
     a1 int,
     a2 int,
     a3 int,
     category int,
     brand int
   ) USING csv OPTIONS (path "obs://fast-demo/product_data");
   create table comment(
     deadline string,
     product_id int,
     comment_num int,
     has_bad_comment int,
     bad_comment_rate float
   ) USING csv OPTIONS (path "obs://fast-demo/comment_data");
   create table action(
     user_id int,
     product_id int,
     time string,
     model_id string,
     type string
   ) USING csv OPTIONS (path "obs://fast-demo/action_data");
   create table top_like_product(brand int, like_count int);
   create table top_bad_comment_product(product_id int, comment_num int, bad_comment_rate float);
   ```
   图8创建数据表   
   ![](https://support.huaweicloud.com/qs-dataartsstudio/zh-cn_image_0000002717735579.png "点击放大")
   
   
   
10. 脚本运行成功后，可以参考[步骤8]新建DLI SQL脚本，然后执行如下脚本检查数据表是否创建成功。
    
    ```
    SHOW TABLES;
    ```
    ![](https://support.huaweicloud.com/qs-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
    确认数据表创建成功后，该脚本后续无需使用，可直接关闭。
    
    
 
