
# 基于用户自定义镜像的多模数据处理
#### 操作场景
AI DataLake是华为云提供的全托管的湖仓一体大数据分析服务，提供端到端的数据管理与分析能力，支持多种引擎的作业开发，满足多样化的大数据处理需求。
本文以通过创建计算资源池、配置Aura类型的端点、连接数据、在DataArts Studio提交作业为例，演示通过AI DataLake和DataArts Studio分析数据的操作指导。
#### 操作流程
开始使用如下样例前，请务必按[准备工作]指导完成必要操作。
1. [规划并创建OBS并行文件系统]：创建一个用于存储LakeFormation Catalog和数据库的OBS并行文件系统。
2. [规划并创建LakeFormation实例、Catalog、数据库]：创建一个LakeFormation实例，并在该实例中创建Catalog及数据库。
3. [创建工作空间]：创建一个工作空间并绑定LakeFormation实例。
4. [创建计算资源池]：创建运行作业的计算资源。
5. [创建运行作业的Aura端点]：创建运行作业的AuraJob端点，并关联资源空间以获得运行作业的资源。
6. [使用DataArts Studio运行作业]：在DataArts Studio作业开发页面提交一个单任务Shell或Pipeline类型的AI DataLake作业至Aura端点运行，本入门以提交单任务Shell的AI DataLake作业为例进行演示。
 
 #### 准备工作
- 已注册账号并实名认证，且账号不能处于欠费或冻结状态。
- 已开通AI DataLake服务并授权使用云服务资源。
- 已开通LakeFormation、OBS权限并进行了委托确认。
- 已开通DataArts Studio服务，并创建了DataArts Studio实例及工作空间。
- 已构建镜像并上传至SWR中。构建镜像时需同时加入处理数据的Python脚本文件，例如"data_processor.py"，用于读取OBS上的CSV文件，并对每行数字求和，将结果写入新文件并保存到OBS中，内容为：
  ```
  #!/usr/bin/env python3
  # -*- coding: utf-8 -*-
  import csv
  import io
  from obs import ObsClient, PutObjectHeader
  import os
  class ObsCsvProcessor:
      def __init__(self, ak: str, sk: str, endpoint: str, bucket_name: str):
          """
          初始化OBS客户端
          :param ak: Access Key ID
          :param sk: Secret Access Key
          :param endpoint: OBS终端节点
          :param bucket_name: 存储桶名称
          """
          self.obs_client = ObsClient(access_key_id=ak, secret_access_key=sk, server=endpoint)
          self.bucket_name = bucket_name
      def read_csv_from_obs(self, object_key: str) -> list:
          """
          从OBS读取CSV文件
          :param object_key: 对象键，即文件在OBS中的路径
          :return: 二维列表，每行是一个列表
          """
          resp = self.obs_client.getObject(bucketName=self.bucket_name, objectKey=object_key, loadStreamInMemory=True)
          if resp.status < 300:
              content = resp.body.buffer.decode('utf-8')
              # 使用csv模块解析
              reader = csv.reader(io.StringIO(content))
              data = []
              for row in reader:
                  # 将每行转换为int类型
                  int_row = [int(x) for x in row]
                  data.append(int_row)
              return data
          else:
              raise Exception(f"读取OBS文件失败: {resp.errorCode}, {resp.errorMessage}")
      def write_csv_to_obs(self, object_key: str, data: list):
          """
          将数据写入OBS的CSV文件
          :param object_key: 对象键，即文件在OBS中的路径
          :param data: 二维列表
          """
          # 将数据转换为CSV格式
          output = io.StringIO()
          writer = csv.writer(output)
          for row in data:
              writer.writerow(row)
          content = output.getvalue()
          # 上传到OBS
          # 1. Define the headers and set the content type correctly
          headers = PutObjectHeader()
          headers.contentType = 'text/csv'
          # 2. Call the method with the correct argument names
          resp = self.obs_client.putContent(
              bucketName=self.bucket_name,
              objectKey=object_key,
              content=content,
              headers=headers  # Pass the header object here
          )
          if resp.status >= 300:
              raise Exception(f"写入OBS文件失败: {resp.errorCode}, {resp.errorMessage}")
      def process_csv(self, input_key: str, output_key: str):
          """
          处理CSV文件：对每行求和
          :param input_key: 输入文件的对象键
          :param output_key: 输出文件的对象键
          """
          # 读取CSV
          data = self.read_csv_from_obs(input_key)
          print(f"读取到 {len(data)} 行数据")
          # 对每行求和
          row_sums = []
          for row in data:
              row_sum = sum(row)
              row_sums.append(row_sum)
              print(f"行 {row} 的和为: {row_sum}")
          # 将结果写入新文件（每行一个求和结果）
          self.write_csv_to_obs(output_key, [[s] for s in row_sums])
          print(f"结果已写入: {output_key}")
  if __name__ == "__main__":
      # 配置参数
      AK = os.environ.get("AK")
      SK = os.environ.get("SK")
      ENDPOINT = os.environ.get("OBS_ENDPOINT", "obs.xxx.xxx.xxx.com")  # 根据实际区域选择
      BUCKET_NAME = os.environ.get("BUCKET_NAME")
      INPUT_FILE = os.environ.get("INPUT_FILE")      # 输入文件路径 input/data.csv
      OUTPUT_FILE = os.environ.get("OUTPUT_FILE")   # 输出文件路径 output/sum_result.csv
      # 创建处理器并执行
      processor = ObsCsvProcessor(AK, SK, ENDPOINT, BUCKET_NAME)
      processor.process_csv(INPUT_FILE, OUTPUT_FILE)
  ```
  
- 已在本地准备数据文件，例如名称为"data.csv"，内容如下：
  ```
  1,2,3
  4,5,6
  7,8,9
  ```
  
- 已获取提交作业用户的AK、SK信息。
  1. 在管理控制台页面，鼠标移动至右上方的用户名，在下拉列表中选择"我的凭证"。
  
  2. 单击"访问密钥"页签，单击"新增访问密钥"，输入验证码或密码。单击"确定"，生成并下载访问密钥。在.csv文件中获取用户的AK、SK信息。
   
 
 #### 步骤一：规划并创建OBS并行文件系统
AI DataLake Aura通过OBS服务实现数据存储，需要先在OBS控制台进行桶及文件夹创建，并导入样例数据。
1. 登录[华为云OBS管理控制台](https://console.huaweicloud.com/obs/)。
2. 选择"并行文件系统 \> 创建并行文件系统"，进入创建页面，配置相关参数后单击"立即创建"。
   - 文件系统名称：根据界面要求设置并行文件系统名称，例如"aura-job"。
   
   - 其他参数根据实际情况选择。
    
3. 在"并行文件系统"页面，单击已创建的文件系统名称，例如"aura-job"。
4. 在左侧导航栏选择"概览"，查看并记录"Endpoint(终端节点)"参数值。
5. 在左侧导航栏选择"文件"，单击"新建文件夹"，填写待创建的文件夹名称，单击"确定"。继续单击该新创建的文件夹名称，单击"新建文件夹"，可以创建其子文件夹。
   依次创建用于存放CSV数据文件和结果文件、及LakeFormation元数据的路径，例如：
   - 数据文件
     - CSV数据文件存储路径：aura-job/input
     
     - 数据处理结果文件存储路径：aura-job/output
      
   
   - 元数据存储路径
     - Catalog存储路径：aura-job/catalog1
     
     - 数据库存储路径：aura-job/catalog1/database1
      
     
6. 将本地数据文件（例如"data.csv"）上传至"input"路径下。
 
 #### 步骤二：规划并创建LakeFormation实例、Catalog、数据库
AI DataLake Aura通过LakeFormation服务管理数据源，需要在LakeFormation购买实例，并配置该实例的Catalog、数据库信息。
1. 登录[华为云LakeFormation管理控制台](https://console.huaweicloud.com/lake-formation/)。
2. 在"总览"页面右上角单击"购买实例"，配置相关参数购买LakeFormation实例。
3. 在页面左上角选择切换到该实例。
   图1切换目标实例   
   ![](https://support.huaweicloud.com/qs-aidatalake/zh-cn_image_0000002572263765.png "点击放大") 
4. 创建Catalog。
   1. 在左侧导航栏选择"数据目录"。
   
   2. 单击"创建"，配置以下参数后，单击"提交"。
      - Catalog名称：输入Catalog名称，例如"catalog1"。
      
      - 选择位置：单击"![](https://support.huaweicloud.com/qs-aidatalake/zh-cn_image_0000002565393963.png)"，选择存储位置，例如选择"obs://aura-serverless/catalog1"，单击"确定"。
      
      - Catalog类型：选择"DEFAULT"。
      
      - 其他参数保持默认。
       
   
   3. 创建完成后，即可在"Catalog"页面查看相关信息。
    
5. 创建数据库。
   1. 单击待创建数据库所属Catalog名称，在"数据库"页签查看当前Catalog中包含的数据库。 如果当前已包含名称为"default"的数据库，则跳过数据库的创建操作。
      
   
   2. 在"数据库"页签单击"创建"，配置相关参数。
      - 库名称：输入数据库名称，例如"database1"。
      
      - 所属Catalog：选择"catalog1"。
      
      - 选择位置：单击"![](https://support.huaweicloud.com/qs-aidatalake/zh-cn_image_0000002565353999.png)"，选择位置，例如选择"obs://aura-serverless/catalog1/database1"，单击"确定"。
      
      - 其他参数保持默认。
       
   
   3. 单击"提交"，创建完成后，即可在"数据库"页面查看详细信息。
    
 
 #### 步骤三：创建工作空间
1. 登录[AI DataLake管理控制台](https://console.huaweicloud.com/fabric/)。
2. 在左侧导航栏中，单击工作空间区域。
3. 在下拉列表中选择"创建工作空间"。
4. 配置工作空间的相关参数：
   表1创建工作空间参数说明 
   | 类型     | 参数              | 示例                         | 说明                                                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|:---|:---|
   | 基础信息   | 工作空间名称          | workspace_auratest         | 工作空间的具体名称。 - 名称只能包含字母、中文、数字、中划线、下划线。  - 输入长度为4\~32个字符。   工作空间名称不区分大小写，系统会自动转换为小写。                                              |
   | 基础信息   | 描述              | 智能驾驶数据分析                   | 对工作空间的简要描述。                                                                                                                                                                                                                                                                                                                                                            |
   | 基础信息   | 企业项目            | default                    | 如果所建工作空间属于企业项目，可选择对应的企业项目。 企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。 关于如何设置企业项目请参考《[企业管理用户指南](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763975.html)》。 说明： 只有开通了企业管理服务的用户才显示该参数。 |
   | 多模数据管理 | LakeFormation实例 | lakeformation_for_auratest | 选择当前工作空间关联的LakeFormation实例，即[2]创建的LakeFormation实例。 每个工作空间需关联1个LakeFormation实例，空间创建后已关联的实例不支持修改。                                                                                                                                                                                             |
      
   
5. 确认所有配置信息无误后，单击"立即创建"，完成工作空间的创建。 工作空间创建成功后，您可以在工作空间管理的列表中查看新创建的工作空间。
   
 
 #### 步骤四：创建计算资源池
1. 在AI DataLake管理控制台页面，切换页面左上角的工作空间为[步骤三：创建工作空间]中所创建的空间。
2. 单击左侧导航栏的"资源管理"，选择"计算资源池"，在页面右上角单击"购买"，进入购买计算资源池页面。
3. 在"购买计算资源池"界面，填写具体参数。
    表2购买计算资源池参数说明 
   | 参数             | 示例                         | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   |:---|:---|:---|
   | 计费模式           | 按需计费                       | - 包年/包月：预付费模式，按订单的购买周期计费。在购买周期内资源独享，空闲（无作业运行）时不会释放，使用体验更佳，价格比按需计费模式更优惠。 适用于可预估资源使用周期的场景，例如已完成开发进入生产阶段的项目，推荐使用包年/包月计费模式。     - 按需计费：即后付费模式，按实际使用量计费，在购买周期内资源独享，空闲时资源不被释放。                                                                                                                                                                                                          |
   | 资源池名称          | resource_pool_for_auratest | 计算资源池的具体名称。 - 名称只能包含数字、小写英文字母和中划线，且只能以字母开头、以字母或数字结尾。  - 输入长度不能超过63个字符。                                                                                                                                                                                                                                                                                                                                                                           |
   | CPU资源          | 本例配置8个通用计算标准型实例。           | CPU是通用型计算资源，适用于各种类型的计算任务。 - CPU资源的特点：通用性强，适合各种类型的计算任务。相比于GPU和NPU的成本更低。擅长处理顺序执行的任务。  - CPU资源的适用场景：ETL数据抽取、转换、加载；轻量计算场景，例如小规模数据处理、脚本运行，日志分析场景，例如日志采集、解析、统计分析。  - CPU资源的具体规格请参考[产品规格](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0011.html#section1)。                                                                                |
   | GPU资源          | 本例不购买GPU实例                 | GPU是图形处理器，适用于图形渲染和大规模并行计算场景，适合深度学习训练和科学计算。GPU拥有成百上千个计算核心，可以同时处理大量简单计算任务。 - GPU资源的特点：支持并行计算，适用于批处理作业场景，数千个核心同时计算，处理效率高。天然适合深度学习、神经网络、AI计算场景。  - GPU资源的适用场景：深度学习，例如神经网络训练、模型调优场景；图形处理场景，例如图像识别、目标检测；视频处理场景，例如视频分析、转码、视频渲染场景，等其他AI科学计算场景。  - GPU资源的具体规格请参考[产品规格](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0011.html#section2)。   |
   | NPU资源          | 本例不购买NPU实例                 | NPU适用于AI计算场景。NPU资源采用架构优化和指令集，专门加速AI推理任务，具有高能效比的特点。 - NPU资源的特点：AI计算场景专用，具备高性能、低延迟、推理成本更优的特点。  - NPU资源的适用场景：AI计算场景、图像识别场景，推荐系统等AI计算相关场景。  - NPU资源的具体规格请参考[产品规格](https://support.huaweicloud.com/productdesc-aidatalake/aidatalake_08_0011.html#section3)。                                                                                                             |
   | AI DataLake 网络 | 自定义                        | 选择AI DataLake资源池所属网络，该网络基于虚拟私有云（VPC）进行封装。如果不存在可使用的网络，也可单击"创建网络"进行创建。 **一个工作空间仅支持创建一个网络。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
      
   
4. 参数填写完成后，单击"立即购买"，在界面上确认当前配置是否正确。
5. 单击"提交"完成创建，等待资源池状态变成"可用"表示当前资源池创建成功。
 
 #### 步骤五：创建运行作业的Aura端点
1. 在AI DataLake管理控制台页面，切换页面左上角的工作空间为[步骤三：创建工作空间]新创建的空间。
2. 在左侧导航栏选择"引擎端点 \> 多模数据引擎Aura"进入Aura引擎端点列表页面。
3. 单击页面右上角的"创建端点"，配置以下参数并单击"立即创建"。
   表3创建Aura引擎端点 
   | 参数       | 示例                                                                                                                                                                                                                                                        | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|:---|
   | 端点类型     | AuraJob                                                                                                                                                                                                                                                   | 选择端点类型为"AuraJob"。 AuraJob用于执行定时调度任务，保障大规模数据稳定处理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 端点版本     | v1.0                                                                                                                                                                                                                                                      | 选择端点版本，选择"v1.0"。 - v1.0：自定义镜像算子，智算、通算混合资源池统一调度，支持Job级弹性。  - v2.0：细粒度Actor级算子编排调度，数据处理Pipeline执行，性能和效率极大提升。                                                                                                                                                                                                                                                             |
   | 端点名称     | aura-endpoint-test001                                                                                                                                                                                                                                     | 输入端点名称，是端点的唯一标识符，不可与已存在的端点重名，且创建后不支持修改。 - 名称只能包含小写字母、数字、中划线，且只能以字母开头，以字母或数字结尾。  - 输入长度不能超过63个字符。                                                                                                                                                                                                                                                                          |
   | 端点显示名称   | 智能驾驶团队专用Aura端点-01                                                                                                                                                                                                                                         | 输入端点显示名称，创建后可修改，用于用户界面展示，方便用户识别和记忆。 - 名称只能包含中文、英文、数字、中划线。  - 输入长度不能超过63个字符。                                                                                                                                                                                                                                                                                                  |
   | 资源使用模式   | 混合模式                                                                                                                                                                                                                                                      | 选择资源使用模式。 - 预留资源：预留资源通过预留专属计算资源，确保业务所需的计算资源的稳定性，同时获得最优的单价成本。更多信息，请参见[预留模式](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0047.html#section2)。  - 混合模式：混合模式结合了预留资源和弹性资源，优先消耗预留资源，高峰期预留资源不足时调度弹性资源组合使用。预留资源保证了业务基线的稳定性，弹性资源的自动调度又具备应对突发负载的弹性能力。更多信息，请参见[混合模式](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0047.html#section4)。   |
   | 选择计算资源池  | resource_pool_for_auratest                                                                                                                                                                                                                                | 在下拉框中选择[步骤四：创建计算资源池]已创建的资源池。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 规格配置     | - 资源规格：aidatalake.cpu.x86.general.1c4g  - 数量 (Min-Max)：8-8   | 选择对应的资源规格并配置资源数量。 - 资源规格：在下拉框中选择需要配置的资源规格，支持选择CPU、GPU、NPU资源。  - 数量 (Min-Max)：配置资源池分配给当前端点的最低可用资源和资源上限。 - Min值默认为0，且置灰不可修改。  - Max值需大于0，但不能超过所选计算资源池的资源上限。     可单击"添加规格"添加多个规格配置，也可单击"删除"删除配置，至少需保留一个规格配置。                                        |
   | 存储配置     | 勾选"存储配置"                                                                                                                                                                                                                                                  | 是否开启存储配置，勾选后还需配置"选择临时存储资源"和"挂载目录"。 开启存储配置后即可使用配置的存储资源存储业务数据，并能实现作业之间的数据共享，否则只能使用CCE容器自带的磁盘存储数据，无法实现数据共享。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 选择临时存储资源 | test-aura-job                                                                                                                                                                                                                                             | 选择用于缓存Aura引擎的运行时程序的存储资源，端点创建后不支持修改。 如果没有可用的存储资源可单击"购买临时存储"进行创建。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 挂载目录     | /home/service/works                                                                                                                                                                                                                                       | 配置AuraJob端点运行作业Pod中挂载存储文件所在的路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 日志对接LTS  | 勾选"日志对接LTS"                                                                                                                                                                                                                                               | 是否对接LTS。对接LTS后日志会投递到云日志服务（Log Tank Service，简称LTS）进行管理。可以使用LTS对云服务日志进行关键词搜索、运营数据统计分析、运行状况监控告警等多种操作。 勾选该参数后，还需配置"日志组"和"日志流"参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 日志组      | container_aurajob_test                                                                                                                                                                                                                                    | 在下拉框中选择日志组，如果下拉框中没有可选的日志组，可以单击"创建日志组"进行创建。 日志组（LogGroup）是云日志服务进行日志管理的基本单位，用于对日志流进行分类，一个日志组下面可以创建多个日志流。日志组本身不存储任何日志数据，仅方便管理日志流。每个账号下可以创建100个日志组。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 日志流      | container_job_log                                                                                                                                                                                                                                         | 在下拉框中选择日志流，如果下拉框中没有可选的日志流，可以单击"创建日志流"进行创建。 云日志服务是以日志流（LogStream）作为日志管理维度。日志采集后，以日志流为单位，将不同类型的日志分类存储在不同的日志流上，方便对日志进一步分类管理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
      
   
4. 端点创建后，可在列表中查看相关信息，端点状态变为"运行中"后即可提交作业到该端点中运行。
 
 #### 步骤六：使用DataArts Studio运行作业
1. 在AI DataLake管理控制台页面，单击导航栏下方"DataArts Studio"进入DataArts Studio作业开发界面。
2. 选择左侧导航栏的"配置管理 \> 配置"，单击"敏感参数"，在"敏感参数配置"页面单击"新增敏感参数"，配置以下参数并单击"确定"：
   - 参数名：输入自定义的参数名称，例如"SK"。
   
   - 参数值：已获取的用户SK信息。
   
   - 配置类型：选择"加密"。
    
3. 在左侧导航栏选择"数据开发 \> 作业开发"，在作业目录中，右键单击目录名称，选择"新建作业"。
4. 在弹出的"新建作业"对话框中，配置如[表4]所示的参数。
    表4作业参数 
   | 参数    | 示例                       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|:---|
   | 作业名称  | aidatalake_aura_job_test | 自定义作业的名称，只能包含英文字母、数字、中文、中划线、下划线及小数点，且长度为1～128个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 作业类型  | 批处理                      | 选择作业的类型，选择"批处理"。 批处理作业：按调度计划定期处理批量数据，主要用于实时性要求低的场景。批作业是由一个或多个节点组成的流水线，以流水线作为一个整体被调度。被调度触发后，任务执行一段时间必须结束，即任务不能无限时间持续运行。 批处理作业可以配置作业级别的调度任务，即以作业为一整体进行调度，具体请参见[配置作业调度任务（批处理作业）](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0470.html#section2)。                                                                                                                                                                                                             |
   | 模式    | 单任务SHELL                 | 选择作业模式。 - Pipeline：即传统的流水线式作业，作业通过画布编辑，可以拖入一个或多个节点组成作业，各节点依次被流水线式地执行。 说明： 在企业模式下，实时处理作业类型不支持Pipeline模式，仅支持单任务模式。   - 单任务：单任务作业可以认为是有且只有一个节点的批处理作业，整个作业即为一个脚本节点。单任务作业相比于先新建脚本再在作业中以节点引用脚本的开发方式，单任务作业可以直接在SQL编辑器中调测脚本并进行调度配置。 如果模式选择"单任务"，则作业类型仅支持选择"SHELL"。    |
   | 选择目录  | /作业/aura_job_test/       | 选择作业所属的目录，默认为根目录。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 责任人   | 保持默认                     | 填写该作业的责任人。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 作业优先级 | 高                        | 选择作业的优先级，提供高、中、低三个等级。 说明： 作业优先级是作业的一个标签属性，不影响作业的实际调度执行的先后顺序。                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 委托配置  | 保持默认                     | 配置委托后，作业执行过程中，以委托的身份与其他服务交互。 如果该工作空间已配置过委托，参见[配置公共委托](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0555.html#section3)，则新建的作业默认使用该工作空间级委托。您也可参见[配置作业委托](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0555.html#section4)，修改为作业级委托。 说明： 作业级委托优先于工作空间级委托。                                                                                                                                                            |
   | 日志路径  | 保持默认                     | 选择作业日志的OBS存储路径。 说明： - 若您想自定义存储路径，请参见[（可选）修改作业日志存储路径](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0530.html)选择您已在OBS服务侧创建的桶。  - 请确保您已具备该参数所指定的OBS路径的读、写权限，否则系统将无法正常写日志或显示日志。                                                                                                                         |
   | 企业项目  | default                  | 单击右侧下拉框，选择当前用户已创建的企业项目。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 作业描述  | -                        | 作业的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
      
   
5. 单击"确定"，创建作业。
6. 进入作业开发页面。
   - 单任务SHELL作业 在作业目录中，双击新创建的作业名称，进入作业开发页面。
     
   
   - Pipeline作业 拖拽"计算\&分析"区域中的"Shell"至右侧画布中，进入作业开发页面。
     
    
7. 在SQL编辑器右侧，单击"基本信息"，可以配置作业的相关参数：
   - 单任务SHELL作业：可以配置作业的基本信息、属性和高级信息等。
   
   - Pipeline作业：可以配置作业的基本信息。注意：作业的属性和高级信息需双击Shell图标进行配置。
   
   
   基本信息如[表5]所示，属性如[表6]所示，高级信息如[表7]所示。
    表5作业基本信息 
   | 参数           | 示例   | 说明                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|:---|
   | 责任人          | 保持默认 | 自动匹配创建作业时配置的作业责任人，此处支持修改。                                                                                                                                                                                                                                                                                                              |
   | 执行用户         | -    | 当"作业调度身份是否可配置"设置为"是"，该参数可见。设置"作业调度身份是否可配置"请参考[配置调度身份](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0555.html)。 执行作业的用户。如果输入了执行用户，则作业以执行用户身份执行；如果没有输入执行用户，则以提交作业启动的用户身份执行。                                                                   |
   | 作业委托         | 保持默认 | 当"作业调度身份是否可配置"设置为"是"，该参数可见。设置"作业调度身份是否可配置"请参考[配置调度身份](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0555.html)。 配置委托后，作业执行过程中，以委托的身份与其他服务交互。                                                                                                   |
   | 作业优先级        | 高    | 自动匹配创建作业时配置的作业优先级，此处支持修改。                                                                                                                                                                                                                                                                                                              |
   | 实例超时时间       | 0    | 配置作业实例的超时时间，设置为0或不配置时，该配置项不生效。如果您为作业设置了异常通知，当作业实例执行时间超过超时时间，将触发异常通知，发送消息给用户，作业不会中断，继续运行。                                                                                                                                                                                                                                               |
   | 实例超时是否忽略等待时间 | 不忽略  | 配置实例超时是否忽略等待时间。 - 选择"忽略"，表示实例运行时等待时间不会被计入超时时间。  - 选择"不忽略"，表示实例运行时等待时间会被计入超时时间。   |
   | 自定义字段        | -    | 配置自定义字段的参数名称和参数值。                                                                                                                                                                                                                                                                                                                      |
   | 作业标签         | -    | 配置作业的标签，用以分类管理作业。 单击"新增"，可给作业重新添加一个标签。                                                                                                                                                                                                                                      |
   | 作业描述         | -    | 作业的描述信息。                                                                                                                                                                                                                                                                                                                               |
      
    表6SQL作业属性信息 
   | 属性       | 示例                    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|:---|
   | 节点名称     | -                     | 仅Pipeline作业支持配置，表示SHELL节点名称。节点名称只能包含英文字母、数字、中文字符、中划线、下划线、/、\<\>和点号，且长度小于等于128个字符。 默认情况下，节点名称会和作业名称保持同步。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | Shell或脚本 | -                     | 仅Pipeline作业支持配置，选择作业运行的方式，包括： - Shell语句：需在"Shell语句"框中输入具体的Shell命令。  - Shell脚本：需在"Shell脚本"脚本中添加已准备好的Shell脚本，也可以单击![](https://support.huaweicloud.com/qs-aidatalake/zh-cn_image_0000002566714585.png)新建。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 运行环境     | AI DataLake           | 选择"AI DataLake"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 镜像       | 自定义                   | 选择镜像名称以及版本。 服务公测期间，需要您参考SWR的镜像操作指导自行准备镜像上传SWR。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 端点       | aura_endpoint_test001 | 运行作业的Aura端点名称，单击![](https://support.huaweicloud.com/qs-aidatalake/zh-cn_image_0000002566645331.png)进入端点列表页面，选择[步骤五：创建运行作业的Aura端点]新创建的端点名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 资源配置     | 自定义                   | 运行资源的配置信息。根据实际需求配置资源类型、规格、用量。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 容器环境变量   | 自定义                   | 容器运行时的环境变量配置，容器的环境变量要支持可传入空间变量/常量。 支持单个添加和批量添加。 批量添加时，通过文本模式，可以批量添加多个资源配置，最多添加100条。 运行本入门的示例需新增以下环境变量： - AK 键为"AK"，值为已获取的用户AK信息。   - SK 键为"SK"，值为"@priv{SK}"。 "@priv{SK}"中的"SK"即为[2]新增的敏感参数名称。   - 并行文件系统名称 键为"BUCKET_NAME"，值为存放数据文件的并行文件系统名称，例如"aura-job"。   - 数据文件所在的OBS路径 键为"INPUT_FILE"，值为待处理的数据文件所在的OBS路径，例如"input/data.csv"。   - 存放数据处理结果文件的OBS路径 键为"OUTPUT_FILE"，值为存放数据处理结果文件的OBS路径，例如"output/sum_result.csv"。   - OBS并行文件系统的终端节点信息 键为"OBS_ENDPOINT"，值为OBS并行文件系统的终端节点信息，即[4]查看到的Endpoint值。    |
      
    表7高级参数 
   | 参数               | 示例         | 是否必选 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   |:---|:---|:---|:---|
   | 节点状态轮询时间（秒）      | 20         | 是    | 设置轮询时间（1\~60秒），每隔x秒查询一次节点是否执行完成。 节点运行过程中，根据设置的节点状态轮询时间查询节点是否执行完成。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 节点执行的最长时间        | 6分钟        | 是    | 设置节点执行的超时时间，如果节点配置了重试，在超时时间内未执行完成，该节点将会再次重试。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 失败重试             | 否          | 是    | 节点执行失败后，是否重新执行节点。 - 是：重新执行节点，请配置以下参数。 - 超时重试  - 最大重试次数  - 重试间隔时间（秒）    - 否：默认值，不重新执行节点。   说明： - 如果作业节点配置了重试，并且配置了超时时间，该节点执行超时后，系统支持再重试。  - 当节点运行超时导致的失败不会重试时，您可前往"默认项设置"修改此策略。  - 当"失败重试"配置为"是"才显示"超时重试"。   |
   | 当前节点失败后，后续节点处理策略 | 终止当前作业执行计划 | 是    | 当前节点执行失败后，后续节点的处理策略： - 终止当前作业执行计划：终止当前作业运行，当前作业实例状态显示为"失败"。如果是周期调度作业，后续周期调度会正常运行。  - 忽略失败，作业结果设为成功：忽略当前节点失败，当前作业实例状态显示为"忽略失败"。如果是周期调度作业，后续周期调度会正常运行。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
      
   
8. 如果运行单任务SHELL作业，需在SQL编辑器中输入SQL语句，支持输入多条SQL语句。例如：
   ```
   python3 /opt/cloud/data_processor.py
   ```
   ![](https://support.huaweicloud.com/qs-aidatalake/public_sys-resources/note_3.0-zh-cn.png)
   - SQL语句之间以";"分隔。如果其他地方使用";"，请通过"\\"进行转义。例如：
     ```
     select 1;
     select * from a where b="dsfa\;";  --example 1\;example 2.
     ```
     
   
   - SQL脚本内容大小不能超过1MB。
   
   - 使用SQL语句获取的系统日期和通过数据库工具获取的系统日期是不一样，查询结果存到数据库是以YYYY-MM-DD格式，而页面显示查询结果是经过转换后的格式。
   
   - 请勿输入敏感信息，例如ak、sk、password、authorization等信息。
     
9. 单击画布上方的"提交"提交作业，再单击运行按钮![](https://support.huaweicloud.com/qs-aidatalake/zh-cn_image_0000002566527843.png)，运行作业。
   ![](https://support.huaweicloud.com/qs-aidatalake/public_sys-resources/note_3.0-zh-cn.png)
   用户可以查看该作业的运行日志，单击"查看日志"可以进入查看日志界面查看日志的详细信息记录，在日志信息中搜索"jobId"即可获取该作业的ID。
   运行完成后，单击画布上方的保存按钮![](https://support.huaweicloud.com/qs-aidatalake/zh-cn_image_0000002566647867.png)，保存作业的配置信息。
   保存后，在右侧的版本里面，会自动生成一个保存版本，支持版本回滚。保存版本时，一分钟内多次保存只记录一次版本。对于中间数据比较重要时，可以通过"新增版本"按钮手动增加保存版本。
   
10. （可选）如果运行的为调度作业，可返回数据开发首页，在左侧导航栏选择"运维调度 \> 作业监控"，在列表中单击提交的作业名称，即可查看作业状态，"运行成功"即表示作业执行成功。 单击"查看日志"可以进入查看日志界面查看日志的详细信息记录，搜索"jobId"即可获取作业的ID。
    
11. 返回AI DataLake管理控制台，切换工作空间，并在左侧导航栏选择"引擎端点 \> 多模数据引擎Aura"，单击运行作业的Aura端点名称，选择"作业运行历史"，可通过作业ID查看作业运行相关信息。
12. 查看数据结果文件内容。
    1. 登录[华为云OBS管理控制台](https://console.huaweicloud.com/obs/)。
    
    2. 选择"并行文件系统"进入并行文件系统列表页面，单击存放结果文件的文件系统名称，例如"aura-job"。
    
    3. 单击存放结果文件的目录，例如"output"，获取结果文件"sum_result.csv"，并下载至本地查看文件内容，例如内容为：
       ```
       6
       15
       24
       ```
       
     
 
