Step 1: Prepare Data
Preparations Before Using DataArts Studio
If you are new to DataArts Studio, register a Huawei account, buy a DataArts Studio instance, create workspaces, and make other preparations. For details, see Buying and Configuring a DataArts Studio Instance. Then you can go to the created workspace and start using DataArts Studio.
Preparing Data Sources
This practice analyzes the data features of the users and products of an e-commerce store. (The data is from BI reports.)
To facilitate demonstration, this practice provides some data used to simulate the original data. To integrate the source data into the cloud, you need to store the sample data in CSV files and upload them to an OBS bucket.
- Copy and paste the sample data (user data user_data.csv, product data product_data.csv, comment data comment_data.csv, and behavior data action_data.csv) to different CSV files and save them in UTF-8 without BOM format. The name of a CSV file is the name of the corresponding data table. For example, the user data table is user_data.csv. To generate a CSV file in Windows, you can perform the following steps:
- Use a text editor (for example, Notepad) to create a .txt file and copy the sample data to the file.
- Check the number of rows and line-break accuracy.
- If the sample data is replicated from a PDF document, the data in a single row will be wrapped if the data is too long. In this case, you must manually adjust the data to ensure that it is in a single row.
- Choose File > Save as. In the displayed dialog box, set Save as type to All files (*.*), enter the file name with the .csv suffix for File name, and select the UTF-8 encoding format (without BOM) to save the file in CSV format.
- Use a text editor (for example, Notepad) to create a .txt file and copy the sample data to the file.
- Upload the CSV file containing the sample data to OBS.
- Log in to the OBS console.
- Click Create Bucket and set parameters as prompted to create an OBS bucket. (In this example, the OBS bucket name is fast-demo.)
To ensure network connectivity, select the same region for OBS bucket as that for the DataArts Studio instance. If an enterprise project is required, select the enterprise project that is the same as that of the DataArts Studio instance.
For details about how to create a bucket on the OBS console, see Creating a Bucket in Object Storage Service Console Operation Guide.
- Click the bucket name fast-demo to go to the Objects page.
- On the Objects page, click Create Folder to create the user_data, product_data, comment_data, and action_data folders. Figure 1 Creating folders
- Upload the user_data.csv, product_data.csv, comment_data.csv, and action_data.csv files saved in Step 1 to the corresponding folders. (For example, upload user_data.csv to the user_data folder.)
When associating a CSV table with DLI to create an OBS foreign table, you cannot specify the file name and can only specify the file path. Therefore, you need to place CSV tables in different file paths and ensure that each file path contains only the required CSV table.
For details about how to upload a file on the OBS console, see Uploading a File in Object Storage Service Console Operation Guide.
Sample Data
This practice involves the following sample data: user data (user_data.csv), product data (product_data.csv), comment data (comment_data.csv), and action data (action_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
| Field | Type | Description | Value |
|---|---|---|---|
| user_id | int | User ID | Anonymized |
| age | int | Age group | -1 indicates that the user age is unknown. |
| gender | int | Gender |
|
| rank | Int | User level | The greater the value of this field, the higher the user level. |
| register_time | string | User registration date | Unit: day |
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
| Field | Type | Description | Value |
|---|---|---|---|
| product_id | int | Product No. | Anonymized |
| a1 | int | Attribute 1 | Enumerated value. The value -1 indicates unknown. |
| a2 | int | Attribute 2 | Enumerated value. The value -1 indicates unknown. |
| a3 | int | Attribute 3 | Enumerated value. The value -1 indicates unknown. |
| category | int | Category ID | Anonymized |
| brand | int | Brand ID | Anonymized |
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
| Field | Type | Description | Value |
|---|---|---|---|
| deadline | string | Deadline | Unit: day |
| product_id | int | Product No. | Anonymized |
| comment_num | int | Segments of the accumulated comment count |
|
| has_bad_comment | int | Whether there are negative comments | 0: no; 1: yes |
| bad_comment_rate | float | Dissatisfaction rate | Proportion of negative comments |
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
| Field | Type | Description | Value |
|---|---|---|---|
| user_id | int | User ID | Anonymized |
| product_id | int | Product No. | Anonymized |
| time | string | Time of action | - |
| model_id | string | Module ID | Anonymized |
| type | string |
| - |
Preparing a Data Lake
This practice uses DLI as the data foundation. To ensure network connectivity between DataArts Studio and DLI, ensure that you select the same region and enterprise project as those of the DataArts Studio instance when creating a DLI queue.
- The version of the default Spark component of the default DLI queue is not up-to-date, and an error may be reported indicating that a table creation statement cannot be executed. In this case, you are advised to create a queue to run your tasks. If you want to execute table creation statements in the default queue, contact the DLI customer service or technical support.
-
The default queue default of DLI is only used for trial. It may be occupied by multiple users at a time. Therefore, it is possible that you fail to obtain the resource for related operations. If the execution takes a long time or fails, you are advised to try again during off-peak hours or use a self-built queue to run the job.
Configure a DLI job bucket, create a DLI connection in Management Center, create a database using the DataArts Factory module, and then run a SQL statement to create an OBS foreign table.
The procedure is as follows:
- Configure a DLI job bucket. For details, see Configuring a DLI Job Bucket.
- Log in to the DataArts Studio console.
For details, see Accessing the DataArts Studio Instance Console.
- On the DataArts Studio console, locate a workspace and click Management Center.
- On the displayed Manage Data Connections page, click Create Data Connection. Figure 2 Creating a data connection
- Create a DLI data connection. Select DLI for Data Connection Type, set Name to dli, and retain the default values for other parameters. Click Test to test the connection. If the test is successful, click Save.Figure 3 Creating a data connection
- Go to the DataArts Factory page. Figure 4 DataArts Factory page
- Right-click the DLI connection to create a database named BI for storing data tables. For how to create a database, see Figure 5.
- Create a DLI SQL script by referring to Figure 6. With the script, you can create data tables using DLI SQL statements.
- In the displayed SQL editor, set key parameters.
Table 5 Key parameters Parameter
Description
Connection
DLI data connection created in Step 5
Database
Database created in Step 7
Queue
The default resource queue default can be used.
Figure 7 Key parameters
Enter the following SQL statements and click Execute to create data tables: Among them, user, product, comment, and action are OBS foreign tables that store raw data. The data in them is from the CSV files in Preparing Data Sources. top_like_product and top_bad_comment_product are DLI tables that store analysis results.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);
Figure 8 Creating data tables
- After the script is successfully executed, create a DLI SQL script by referring to Step 8 and run the following script to check whether the data tables have been successfully created:
SHOW TABLES;
After confirming that the data tables have been created, you can close the script as it is no longer needed.
What is your overall rating for this page?
Thank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot

