华为云用户手册

  • 备份资产 参考访问 DataArts Studio 实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。 在数据开发主界面的左侧导航栏,选择“备份管理”。 单击“启动每日备份”,打开“OBS文件浏览”页面,选择OBS文件夹,设置备份数据的存储位置。 图1 备份管理 每日备份在每日0点开始备份昨日的所有作业、脚本、资源和环境变量,启动当日不会备份昨日的作业、脚本、资源和环境变量。 选择OBS存储路径时,若仅选择至桶名层级,则备份对象自动存储在以“备份日期”命名的文件夹内。环境变量,资源,脚本和作业分别存储在1_env,2_resources,3_scripts和4_jobs文件夹内。 备份成功后,在以“备份日期”命名的文件夹内,自动生成backup.json文件,该文件按照节点类型存储了作业信息,支持恢复作业前进行修改。 启动每日备份后,若想结束备份任务,您可以单击右边的“停止每日备份”。
  • 还原资产 在DataArts Studio控制台首页,选择对应工作空间的“数据开发”模块,进入数据开发页面。 在数据开发模块控制台的左侧导航栏,选择“备份管理”。 选择“还原管理”页签,单击“还原备份”。 在还原备份对话框中,从OBS桶中选择待还原的资产存储路径,设置重名处理策略。 待还原的资产存储路径为备份资产中生成的文件路径。 您可在还原资产前修改备份路径下的backup.json文件,支持修改连接名(connectionName)、数据库名(database)和集群名(clusterName)。 图2 还原资产 单击“确定”。
  • 作业实例运行状态 表4 作业实例运行状态说明 运行状态 场景描述 等待运行 如果作业实例依赖的前置作业实例未最终完成(未最终完成的状态包括:未生成实例、等待运行、运行失败),该实例处于等待运行。 运行中 作业正常运行中。说明前置的依赖作业都已完成,该作业调度时间已到。 运行成功 作业真正成功执行了业务逻辑,并且最终成功(包含失败重试的成功)。 “运行成功”包括了“成功”、“强制成功”、“忽略失败”三种运行状态。 强制成功 作业实例处于失败或取消状态时,进行手动执行强制成功。 忽略失败成功 如下图所示,节点B设置了失败处理策略,当B执行失败了,会跳过B继续执行C,当存在这种节点运行失败,整个作业执行完成了就是忽略失败成功。 图10 失败处理策略-继续执行下一节点 运行异常 这种运行状态场景较少。如下图所示,节点B设置了失败处理策略,当B执行失败了,作业实例立即挂起,不会继续执行C,作业实例进入异常运行状态。 图11 失败处理策略-挂起当前作业执行计划 已暂停 这种运行状态场景较少。当某个作业的实例正在运行,测试人员在作业监控界面,手工暂停作业调度。此时,该作业正在运行的实例会进入已暂停状态。 已取消 等待运行状态的作业实例,进行手工停止,则实例处于已取消状态。 如果作业实例依赖的直接上游作业被停止调度了,该作业实例会自动进入已取消状态。作业A依赖作业B,作业B被停止调度,作业A实例生成后会自动取消。 冻结 对于未来时间内尚未生成的作业实例,进行冻结后,该作业实例会进入冻结状态。 失败 作业执行失败。执行失败的作业,可以查看失败原因,比如作业的哪个节点执行失败。
  • 举例 字符串变量str的内容如下: { "cities": [{ "name": "city1", "areaCode": "1000" }, { "name": "city2", "areaCode": "2000" }, { "name": "city3", "areaCode": "3000" }] }
  • 方法 表1 方法说明 方法 描述 示例 Object parse(String jsonStr) 将json字符串转换为对象。 假设变量a为JSON字符串,将json字符串转换为对象,EL表达式如下: #{JSONUtil.parse(a)} String toString(Object jsonObject) 将对象转换为json字符串。 假设变量b为对象,将对象转换为json字符串,EL表达式如下: #{JSONUtil.toString(b)} Object path(String jsonStr,String jsonPath) 返回json字符串指定路径下的字段值。类似于XPath,path方法可以通过路径检索或设置JSON,其路径中可以使用.或[]等访问成员、数值,例如:tables[0].table_name。 字符串变量str的内容如下: { "cities": [{ "name": "city1", "areaCode": "1000" }, { "name": "city2", "areaCode": "2000" }, { "name": "city3", "areaCode": "3000" }] } 获取city1的电话区号,EL表达式如下: #{JSONUtil.path(str,"cities[0].areaCode")}
  • 方法 表1 方法说明 方法 描述 示例 String format(Date date, String pattern) 将Date类型时间按指定pattern格式为字符串。 将作业调度计划的时间,转换为毫秒格式。 #{DateUtil.format(Job.planTime,"yyyy-MM-dd HH:mm:ss:SSS")} 将作业调度计划减一天的时间,转换为周格式。 #{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyyw")} Job.planTime为2024年1月7日时,返回值为20241。 #{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyyww")} Job.planTime为2024年1月7日时,返回值为202401。 Date addMonths(Date date, int amount) 给date添加指定月数后,返回新Date对象,amount可以是负数。 将作业调度计划减一个月的时间,转换为月份格式。 #{DateUtil.format(DateUtil.addMonths(Job.planTime,-1),"yyyy-MM")} Date addDays(Date date, int amount) 给date添加指定天数后,返回新Date对象,amount可以是负数。 将作业调度计划减一天的时间,转换为年月日格式。 #{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyy-MM-dd")} 将作业调度计划减一天的时间,转换为周格式。 #{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyyw")} Job.planTime为2024年1月7日时,返回值为20241。 #{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyyww")} Job.planTime为2024年1月7日时,返回值为202401。 Date addHours(Date date, int amount) 给date添加指定小时数后,返回新Date对象,amount可以是负数。 将作业调度计划减一小时的时间,转换为小时格式。 #{DateUtil.format(DateUtil.addHours(Job.planTime,-1),"yyyy-MM-dd HH")} Date addMinutes(Date date, int amount) 给date添加指定分钟数后,返回新Date对象,amount可以是负数。 将作业调度计划减一分钟的时间,转换为分钟格式。 #{DateUtil.format(DateUtil.addMinutes(Job.planTime,-1),"yyyy-MM-dd HH:mm")} int getDay(Date date) 从date获取天,例如:date为2018-09-14,则返回14。 从作业调度计划获取具体的天。 #{DateUtil.getDay(Job.planTime)} int getMonth(Date date) 从date获取月,例如:date为2018-09-14,则返回9。 从日期获取具体的月。 #{DateUtil.getMonth(Job.planTime)} int getQuarter(Date date) 从date获取季度,例如:date为2018-09-14,则返回3。 从日期获取具体的季度。 #{DateUtil.getQuarter(Job.planTime)} int getYear(Date date) 从date获取年,例如:date为2018-09-14,则返回2018。 从日期获取具体的年。 #{DateUtil.getYear(Job.planTime)} Date now() 返回当前时间。 以秒格式返回当前的时间。 #{DateUtil.format(DateUtil.now(),"yyyy-MM-dd HH:mm:ss")} long getTime(Date date) 将Date类型时间转换为long类型时间戳。 将作业调度计划时间转换为时间戳。 #{DateUtil.getTime(Job.planTime)} Date parseDate(String str, String pattern) 字符串按pattern转换为Date类型,pattern为日期、时间模式,请参考日期和时间模式。 将字符串类型的作业启动时间转换为秒格式。 #{DateUtil.parseDate(Job.getPlanTime("yyyy-MM-dd HH:mm:ss:SSS"),"yyyy-MM-dd HH:mm:ss")}
  • 属性和方法 表1 属性说明 属性 类型 描述 name String 作业名称。 planTime java.util.Date 作业调度计划时间,即周期调度配置的时间,例如每天凌晨1:01调度作业。 startTime java.util.Date 作业执行时间,有可能与planTime同一个时间,也有可能晚于planTime(由于作业引擎繁忙等)。 eventData String 当作业使用事件驱动调度时,从通道获取的消息。 projectId String 当前数据开发模块所处项目ID。 表2 方法说明 方法 描述 示例 String getNodeStatus(String nodeName) 获取指定节点运行状态,成功状态返回success,失败状态返回fail。 例如,判断节点是否运行成功,可以使用如下判断条件,其中test为节点名称: #{(Job.getNodeStatus("test")) == "success" } 获取test节点运行状态。 #{Job.getNodeStatus("test")} String getNodeOutput(String nodeName) 获取指定节点的输出。此方法只能获取前面依赖节点的输出。 获取test节点输出。 #{Job.getNodeOutput("test")} 当前一节点执行无结果时,输出结果为“null”。 当前一节点的输出结果是一个字段时,输出结果形如[["000"]]所示。此时可通过EL表达式分割字符串结果,获取前一节点输出的字段值,但注意输出结果类型为String。需要输出原数据类型时,仍需通过For Each节点及其支持的Loop内嵌对象EL表达式获取。 #{StringUtil.split(StringUtil.split(StringUtil.split(Job.getNodeOutput("前一节点名"),"]")[0],"[")[0],"\\"")[0]} 当前一节点的输出结果是多个(两个及以上)字段时,输出结果形如[["000"],["001"]]所示。此时需要结合For Each节点及其支持的Loop内嵌对象EL表达式如#{Loop.current[0]},循环获取输出结果,详见获取SQL节点的输出结果值。 String getParam(String key) 获取作业参数。 注意此方法只能直接获取当前作业里配置的参数值,并不能获取到父作业传递过来的参数值,也不能获取到工作空间里面配置的全局变量,作用域仅为本作业。 这种情况下建议使用表达式${job_param_name},既可以获取到父作业传递过来的参数值,也可以获取到全局配置的变量。 获取参数test的值: #{Job.getParam("test")} String getPlanTime(String pattern) 获取指定pattern的计划时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 获取作业调度计划时间,具体到毫秒: #{Job.getPlanTime("yyyy-MM-dd HH:mm:ss:SSS")} String getYesterday(String pattern) 获取执行pattern的计划时间前一天的时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 获取作业调度计划时间的前一天的时间,具体到日期: #{Job.getYesterday("yyyy-MM-dd HH:mm:ss:SSS")} String getLastHour(String pattern) 获取执行pattern的计划时间前一小时的时间字符串,pattern为日期、时间模式,请参考日期和时间模式。 获取作业调度计划时间前一小时的时间,具体到小时: #{Job.getLastHour("yyyy-MM-dd HH:mm:ss:SSS")} String getRunningData(String nodeName) 获取指定节点运行中记录的数据,当前只支持获取 DLI SQL节点SQL语句运行的作业id。此方法只能获取前面依赖节点的输出。 例如,想要获取DLI节点第3条语句的job ID(DLI节点名为DLI_INSERT_DATA),可以这样使用:#{JSONUtil.path(Job.getRunningData("DLI_INSERT_DATA"),"jobIds[2]")}。 获取指定DLI SQL节点test中第三条语句的job ID: #{JSONUtil.path(Job.getRunningData("test"),"jobIds[2]")} String getInsertJobId(String nodeName) 返回指定DLI SQL或Transform Load节点第一个Insert SQL语句的作业ID,不指定参数nodeName时,获取前面一个节点第一个DLI Insert SQL语句的作业ID,如果无法获取到作业ID,返回null值。 获取DLI SQL节点test中第一个Insert SQL语句的job ID: #{Job.getInsertJobId("test")} String getPreviousWorkday(Integer num, String pattern) 按照指定的pattern返回计划时间前第num个工作日的时间字符串,num只可为正整数。若没有获取到符合条件的结果则返回null值。 该EL表达式适用于按照日历选择自定义日期进行周期调度。 获取作业调度前五天的工作日的日期。 #{Job.getPreviousWorkday(5, "yyyyMMdd")} String getPreviousNonWorkday(Integer num, String pattern) 按照指定的pattern返回计划时间前第num个非工作日的时间字符串,num只可为正整数。若没有获取到符合条件的结果则返回null值。 该EL表达式适用于按照日历选择自定义日期进行周期调度。 获取作业调度前一天的非工作日的日期。 #{Job.getPreviousNonWorkday(1, "yyyyMMdd")} String getCalendarPreviousWorkday(String calendarName, Integer num, String pattern) 按照指定的pattern返回指定日历计划时间前第num个工作日的时间字符串,num只可为正整数。若没有获取到符合条件的结果则返回null值。 该EL表达式适用于按照日历选择自定义日期进行周期调度。 获取指定日历作业调度计划时间前五天的工作日的日期。 #{Job.getCalendarPreviousWorkday(5, "yyyyMMdd")} String getCalendarPreviousNonWorkday(String calendarName, Integer num, String pattern) 按照指定的pattern返回指定日历计划时间前第num个非工作日的时间字符串,num只可为正整数。若没有获取到符合条件的结果则返回null值。 该EL表达式适用于按照日历选择自定义日期进行周期调度。 获取指定日历作业调度计划时间前一天的非工作日的日期。 #{Job.getCalendarPreviousNonWorkday(1, "yyyyMMdd")} String getCalendarNextWorkday(String calendarName, Integer num, String pattern) 按照指定的pattern返回指定日历计划时间后第num个工作日的时间字符串,num只可为正整数。若没有获取到符合条件的结果则返回null值。 该EL表达式适用于按照日历选择自定义日期进行周期调度。 获取指定日历作业调度计划时间后五天的工作日的日期。 #{Job.getCalendarNextWorkday(5, "yyyyMMdd")} String getCalendarNextNonWorkday(String calendarName, Integer num, String pattern) 按照指定的pattern返回指定日历计划时间后第num个非工作日的时间字符串,num只可为正整数。若没有获取到符合条件的结果则返回null值。 该EL表达式适用于按照日历选择自定义日期进行周期调度。 获取指定日历作业调度计划时间后一天的非工作日的日期。 #{Job.getPreviousNonWorkday(1, "yyyyMMdd")}
  • 调试方法介绍 下面介绍几种EL表达式的调试方法,能够在调试过程中方便地看到替换结果。 后文以#{DateUtil.now()}表达式为例进行介绍。 使用DIS Client节点。 前提:您需要具备DIS通道。 方法:选择DIS Client节点,将EL表达式直接写在要发送的数据中,单击“测试运行”,然后在节点上右键查看日志,日志中会把EL表达式的值打印出来。 使用Kafka Client节点。 前提:您需要具备 MRS 集群,且集群有Kafka组件。 方法:选择Kafka Client节点,将EL表达式直接写在要发送的数据中,单击“测试运行”,然后在节点上右键查看日志,日志中会把EL表达式的值打印出来。 使用Shell节点。 前提:您需要具备弹性 云服务器ECS 。 方法:创建一个主机连接,将EL表达式直接通过echo打印出来,单击“测试运行”之后查看日志,日志中会打印出EL表达式的值。 使用Create OBS节点。 如果上述方法均不可用,则可以通过Create OBS去创建一个OBS目录,目录名称就是EL表达式的值,单击“测试运行”后,再去OBS界面查看创建出来的目录名称。
  • 举例 在Rest Client节点的参数“URL参数”中使用EL表达式“tableName=#{JSONUtil.path(Job.getNodeOutput("get_cluster"),"tables[0].table_name")}”,如图1所示。 表达式说明如下: 获取作业中“get_cluster”节点的执行结果(“Job.getNodeOutput("get_cluster")”),执行结果是一个JSON字符串。 通过JSON路径(“tables[0].table_name”),获取JSON字符串中字段的值。 图1 表达式示例 EL表达式在数据开发过程中被广泛应用,您可以参考最佳实践查看更多应用EL表达式的进阶实践。
  • 配置节点调度任务(实时作业) 配置实时处理作业的节点调度任务,支持单次调度、周期调度、事件驱动调度三种方式。操作方法如下: 单击画布中的节点,在右侧显示“调度配置”页签,单击此页签,展开配置页面,配置如表4所示的参数。 表4 节点调度配置 参数 说明 调度方式 选择作业的调度方式: 单次调度:手动触发作业单次运行。 周期调度:周期性自动运行作业。 事件驱动调度:根据外部条件触发作业运行。 “周期调度”的参数 生效时间 调度任务的生效时间段。 调度周期 选择调度任务的执行周期,并配置相关参数: 分钟 小时 天 周 月 调度周期需要合理设置,如 CDM 、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。 已经在运行中的作业,可以修改其调度周期。 跨周期依赖 选择作业下实例之间的依赖关系。 不依赖上一调度周期 选择“并发数”。多个作业实例并行执行的个数。如果并发数配置为1,前一个批次执行完成后(包括成功、取消、或失败),下一批次才开始执行。 自依赖(上一调度周期的作业实例执行成功下一周期才会执行,否则处于等待运行状态。) “事件驱动调度”的参数 触发事件类型 选择触发作业运行的事件类型。 DIS通道名称 选择DIS通道,当指定的DIS通道有新消息时,数据开发模块将新消息传递给作业,触发该作业运行。 当“触发事件类型”选择“DIS”或“OBS”时才需要配置。 连接名称 选择数据连接,需先在“管理中心”创建kafka数据连接。当“触发事件类型”选择“KAFKA”时才需要配置。 Topic 选择需要发往kafka的消息Topic。当“触发事件类型”选择“KAFKA”时才需要配置。 OBS路径 选择要监听的OBS路径,如果该路径下有新增文件,则触发调度;新增的文件的路径名,可以通过变量Job.trigger.obsNewFiles引用。前提条件:该OBS路径已经配置DIS 消息通知 。 最大处理文件数 节点被驱动运行时,每批次最多可处理的文件数。当“触发事件类型”选择“OBS”时才需要配置。 消费组 消费者组是kafka提供的可扩展且具有容错性的消费者机制。 它是一个组,所以内部可以有多个消费者,这些消费者共用一个ID,一个组内的所有消费者共同协作,完成对订阅的主题的所有分区进行消费。其中一个主题中的一个分区只能由一个消费者消费。 说明: 一个消费者组可以有多个消费者。 Group ID是一个字符串,在一个kafka集群中,它标识唯一的一个消费者组。 每个消费者组订阅的所有主题中,每个主题的每个分区只能由一个消费者消费。消费者组之间不影响。 当触发事件类型选择了DIS或KAFKA时,会自动关联出消费组的ID,用户也可以手动修改。 事件处理并发数 选择作业并行处理的数量,最大并发数为10。 事件检测间隔 配置时间间隔,检测DIS通道下是否有新的消息。时间间隔单位可以配置为秒或分钟。 读取策略 从上次位置读起 从最新位置读起 当“触发事件类型”选择“DIS”或“KAFKA”时才需要配置。 失败策略 选择节点执行失败后的策略: 挂起 忽略失败,继续调度
  • 约束限制 调度周期需要合理设置,单个作业最多允许5个实例并行执行,如果作业实际执行时间大于作业配置的调度周期,会导致后面批次的作业实例堆积,从而出现计划时间和开始时间相差大。例如CDM、ETL作业的调度周期至少应在5分钟以上,并根据作业表的数据量、源端表更新频次等调整。 如果通过DataArts Studio数据开发调度CDM迁移作业,CDM迁移作业处也配置了定时任务,则两种调度均会生效。为了业务运行逻辑统一和避免调度冲突,推荐您启用数据开发调度即可,无需配置CDM定时任务。
  • 功能 通过Rest Client节点执行一个华为云内的RESTful请求。 Rest Client算子的具体使用教程,请参见获取Rest Client算子返回值教程。 当由于网络限制,Rest Client某些API无法调通时,可以尝试使用Shell脚本进行API调用。您需要拥有弹性云服务器E CS ,并确保ECS主机和待调用的API之间网络可通,然后在DataArts Studio创建主机连接,通过Shell脚本使用CURL命令进行API调用。 Rest Client算子目前不支持大量的response返回体,目前代码限制30M。
  • 调测并保存作业 作业编排和配置完成后,请执行以下操作: 批处理作业 单击画布上方的测试运行按钮,会弹出测试参数配置的弹框,自动显示作业的变量参数,单击“确定”,测试作业。如果测试未通过,请您查看作业节点的运行日志,进行定位处理。 用户可以查看该作业的测试运行日志,单击“查看日志”可以进入查看日志界面查看日志的详细信息记录。 作业未提交版本之前,进行手动测试运行,作业监控里面的作业运行实例版本显示是0。 进行手动测试运行时,作业测试运行日志查看有权限管控,比如,用户A进行作业测试运行后,可以在“实例监控”页面查看测试运行日志,不允许用户B查看该测试运行日志。 测试通过后,单击画布上方的“保存”,保存作业的配置信息。 保存后,在右侧的版本里面,会自动生成一个保存版本,支持版本回滚。保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。 实时处理作业 单击画布上方的“保存”,保存作业的配置信息。 保存后,在右侧的版本里面,会自动生成一个保存版本,支持版本回滚。保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。 提交作业版本后,单击画布上方的“启动”,运行作业。运行完以后,前往实时作业监控查看作业运行结果。
  • 配置作业参数 作业参数为全局参数,可用于作业中的任意节点。操作方法如下: Pipeline模式的批处理作业和实时处理作业,单击画布的空白处,在右侧显示“作业参数配置”页签,单击此页签,展开配置页面,配置如表3所示的参数。 表3 作业参数配置 功能 说明 变量 新增 单击“新增”,在文本框中填写作业参数的名称和参数值。 参数名称 名称只能包含字符:英文字母、数字、中划线和下划线。 参数值 字符串类的参数直接填写字符串,例如:str1。 数值类的参数直接填写数值或运算表达式。 参数配置完成后,在作业中的引用格式为${参数名称}。 说明: 如果作业中有两个节点,比如第一个Rest Client节点返回了body,第二个节点使用返回的data。如果这个data的长度超过1000000个字符,内容就会被截断。在配置作业参数时,作业的参数值的结果最大不超过1000000个字符。 编辑参数表达式 在参数值文本框后方,单击,编辑参数表达式,更多表达式请参见表达式概述。 修改 在参数名和参数值的文本框中直接修改。 掩码显示 在参数值为密钥等情况下,从安全角度,请单击将参数值掩码显示。 删除 在参数值文本框后方,单击,删除作业参数。 常量 新增 单击“新增”,在文本框中填写作业常量的名称和参数值。 参数名称 名称只能包含字符:英文字母、数字、中划线和下划线。 参数值 字符串类的参数直接填写字符串,例如:str1。 数值类的参数直接填写数值或运算表达式。 参数配置完成后,在作业中的引用格式为${参数名称}。 编辑参数表达式 在参数值文本框后方,单击,编辑参数表达式,更多表达式请参见表达式概述。 修改 在参数名和参数值的文本框中直接修改,修改完成后,请保存。 删除 在参数值文本框后方,单击,删除作业常量。 工作空间环境变量 查看工作空间已配置的变量和常量。 单击“作业参数预览”页签,展开预览页面,配置如表4所示的参数。 MRS Flink Job、DLI Flink Job、DLI SQL、DWS SQL、MRS HetuEngine、MRS ClickHouse SQL、MRS Hive SQL、MRS Impala SQL、MRS Presto SQL、MRS Spark SQL、RDS SQL、DORIS SQL的算子脚本参数支持参数预览。 表4 作业参数预览 功能 说明 当前时间 仅单次调度才显示。系统默认为当前时间。 事件触发时间 仅事件驱动调度才显示。系统默认为事件触发时间。 周期调度 仅周期调度才显示。系统默认为调度周期。 具体时间 仅周期调度才显示。周期调度配置的具体运行时间。 起始日期 仅周期调度才显示。周期调度的生效时间。 后N个实例 作业运行调度的实例个数。 单次调度场景默认为1。 事件驱动调度场景默认为1。 周期调度场景 当实例数大于10时,系统最多展示10个日期实例,系统会自动提示“当前参数预览最多支持查看10个实例”。 在作业参数预览中,如果作业参数配置存在语法异常情况系统会给出提示信息。 如果参数配置了依赖作业实际运行时产生的数据,参数预览功能中无法模拟此类数据,则该数据不展示。
  • 配置作业基本信息 为作业配置责任人、优先级信息后,用户可根据责任人、优先级来检索相应的作业。操作方法如下: 单击画布右侧“作业基本信息”页签,展开配置页面,配置如表2所示的参数。 表2 作业基本信息 参数 说明 责任人 自动匹配创建作业时配置的作业责任人,此处支持修改。 执行用户 当“作业调度身份是否可配置”设置为“是”,该参数可见。 执行作业的用户。如果输入了执行用户,则作业以执行用户身份执行;如果没有输入执行用户,则以提交作业启动的用户身份执行。 说明: 配置执行用户调度功能当前需申请白名单后才能使用。如需使用该特性,请联系客服或技术支持人员。 作业委托 当“作业调度身份是否可配置”设置为“是”,该参数可见。 配置委托后,作业执行过程中,以委托的身份与其他服务交互。 作业优先级 自动匹配创建作业时配置的作业优先级,此处支持修改。 实例超时时间 配置作业实例的超时时间,设置为0或不配置时,该配置项不生效。如果您为作业设置了异常通知,当作业实例执行时间超过超时时间,将触发异常通知,发送消息给用户,作业不会中断,继续运行。 实例超时是否忽略等待时间 配置实例超时是否忽略等待时间。 如果勾选上,表示实例运行时等待时间不会被计入超时时间,可前往默认项设置修改此策略。 如果未选上,表示实例运行时等待时间会被计入超时时间。 自定义字段 配置自定义字段的参数名称和参数值。 作业标签 配置作业的标签,用以分类管理作业。 单击“新增”,可给作业重新添加一个标签。也可选择管理作业标签中已配置的标签。
  • 作业开发流程 作业开发功能提供如下能力: 提供图形化设计器,支持拖拉拽方式快速构建数据处理工作流。 预设数据集成、计算&分析、资源管理、数据监控、其他等多种任务类型,通过任务间依赖完成复杂数据分析处理。 支持多种作业调度方式。 支持导入和导出作业。 支持作业状态运维监控和作业结果通知。 提供编辑锁定能力,支持多人协同开发场景。 支持作业的版本管理能力,支持生成保存版本和提交版本。 保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。 支持单击右键,可快速复制作业名称,同时可以快速的关闭已打开的作业页签。 在MRS API连接模式下,单任务MRS Spark SQL和MRS Hive SQL运行完以后,在执行结果中查看运行日志,增加一键跳转MRS Yarn查看日志的链接。 企业模式下,开发作业时,单击页面上方的“前往发布”跳转到任务发布页面。 支持对“已提交”、“未提交”、“已调度”和“未调度”的作业进行筛选。同时未提交的作业通过红色进行标识,未调度的作业通过黄色进行标识。 单任务作业支持SQL编辑器风格配置。单击“风格配置”,可以对编辑器、操作栏、注释模板进行配置、以及查询SQL脚本编辑器可使用的快捷键。 单任务SQL查询结果展示支持表格和列表两种展示方式。单击“风格配置”,在“编辑器配置”里面可以对SQL查询结果展示进行配置。 支持通过“责任人”和“更新时间”进行过滤查询,方便快速过滤出最近更新的作业。 作业开发支持细粒度权限管控,在数据安全模块对数据开发作业目录权限管控策略进行配置。 开发作业前,您可以通过图1了解数据开发模块作业开发的基本流程。 图1 作业开发流程 新建作业:当前提供两种作业类型:批处理和实时处理,分别应用于批量数据处理和实时连接性数据处理,其中批处理作业还支持Pipeline和单节点作业两种模式,具体请参见新建作业。 开发作业:基于新建的作业,进行作业开发,您可以进行编排、配置节点。具体请参见开发Pipeline作业。 调度作业:配置作业调度任务。具体请参见调度作业。 如果您的作业是批处理作业,您可以配置作业级别的调度任务,即以作业为一个整体进行调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见配置作业调度任务(批处理作业)。 如果您的作业是实时处理作业,您可以配置节点级别的调度任务,即每一个节点可以独立调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见配置节点调度任务(实时作业)。 提交版本并解锁:作业调度配置完成后,您需要提交版本并解锁,提交版本并解锁后才能用于调度运行,便于其他开发者修改。具体请参见提交版本。 (可选)管理作业:作业开发完成后,您可以根据需要,进行作业管理。具体请参见(可选)管理作业。 发布作业。企业模式下需要发布作业,具体请参见发布作业任务。 父主题: 作业开发
  • 前提条件 已新增Shell脚本,请参见新建脚本。 已新建主机连接,该Linux主机用于执行Shell脚本,请参见主机连接参数说明。 连接主机的用户需要具有主机/tmp目录下文件的创建与执行权限。 Shell或Python脚本可以在该ECS主机上运行的最大并发数由ECS主机的/etc/ssh/sshd_config文件中MaxSessions的配置值确定。请根据Shell或Python脚本的调度频率合理配置MaxSessions的值。 当前用户已锁定该脚本,否则需要通过“抢锁”锁定脚本后才能继续开发脚本。新建或导入脚本后默认被当前用户锁定,详情参见编辑锁定功能。
  • 脚本开发流程 脚本开发功能提供如下能力: 提供在线脚本编辑器,支持进行SQL、Shell、Python等脚本在线代码开发和调测。 支持导入和导出脚本。 支持使用变量和函数。 提供编辑锁定能力,支持多人协同开发场景。 支持脚本的版本管理能力,支持生成保存版本和提交版本。 保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。 支持单击右键,可快速复制脚本名称,同时可以快速的关闭已打开的脚本页签。 在MRS API连接模式下,MRS Spark SQL和MRS Hive SQL脚本运行完以后,在执行结果中查看运行日志,增加一键跳转MRS Yarn查看日志的链接。 企业模式下,开发脚本时,鼠标放置在上,单击“前往发布”跳转到任务发布页面。 支持对“已提交”和“未提交”的脚本进行筛选。未提交的脚本通过红色进行标识。 系统支持脚本参数以弹框的形式进行展示,参数名不能修改,参数值可以修改。你可以单击“测试参数”查看脚本中所引用的参数信息,同时可以查看环境中已配置的环境变量信息,不可修改,SQL语句中的参数可以按照参数名进行排序。 支持SQL编辑器风格配置。鼠标放置在上,单击“风格配置”,可以对编辑器、操作栏、注释模板进行配置、以及查询SQL脚本编辑器可使用的快捷键。 SQL查询结果展示支持表格和列表两种展示方式。单击“风格配置”,在“编辑器配置”里面可以对SQL查询结果展示进行配置。 企业模式下,支持从脚本开发界面快速前往发布。鼠标放置在上,单击“前往发布”,进入待发布任务界面。 支持Hive SQL、DLI SQL、DWS SQL、RDS SQL和Impala SQL脚本可以查看右侧的数据表,单击表名前面的单选框,可以查看该数据的列名、字段类型和描述。 支持通过“责任人”和“更新时间”进行过滤查询,方便快速过滤出最近更新的脚本。 脚本开发支持细粒度权限管控,在数据安全模块对数据开发脚本目录权限管控策略进行配置。 脚本开发的使用流程如下: 图1 脚本开发流程 新建脚本:新建相应类型的脚本。具体请参见新建脚本。 开发脚本:基于新建的脚本,进行脚本的在线开发、调试和执行。具体请参见开发脚本。 提交版本并解锁:脚本开发完成后,您需要提交版本并解锁,提交版本并解锁后才能正式地被作业调度运行,便于其他开发者修改。具体请参见提交版本。 (可选)管理脚本:脚本开发完成后,您可以根据需要,进行脚本管理。具体请参见(可选)管理脚本。 发布脚本。企业模式下需要发布脚本,具体请参见发布脚本任务。 父主题: 脚本开发
  • 参数说明 表5 DLI数据表 参数 是否必选 说明 基本属性 表名 是 数据表的名称。只能包含英文小写字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 别名 否 数据表的别名,只能包含中文字符、英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 数据连接类型 是 数据表所属的数据连接类型。系统默认。 数据连接 是 数据表所属的数据连接。系统默认。 数据库 是 数据表所属的数据库。系统默认。 数据位置 是 选择数据存储的位置: OBS DLI 数据格式 是 选择数据的格式。“数据位置”为“OBS”时,配置该参数。 parquet:支持读取不压缩、snappy压缩、gzip压缩的parquet数据。 csv:支持读取不压缩、gzip压缩的csv数据。 orc:支持读取不压缩、snappy压缩的orc数据。 json:支持读取不压缩、gzip压缩的json数据。 路径 是 选择数据存储的OBS路径。“数据位置”为“OBS”时,配置该参数。 如果OBS路径不存在或者OBS桶不存在,系统支持可以自动创建OBS目录。 说明: 如果OBS桶创建超过上限,系统会自动提示“创建obs目录失败,错误原因:[Create OBS Bucket failed:TooManyBuckets:You have attempted to create more buckets than allowed]”。 表描述 否 数据表的描述信息。 表结构 列类型 是 选择列类型。包含分区列和普通列。系统默认普通列。 列名 是 填写列名,列名不能重复。 类型 是 选择数据类型,具体说明请参见《 数据湖探索 SQL语法参考》的数据类型。 列描述 否 填写列的描述信息。 操作 否 单击,增加列。 单击,删除列。 表6 DWS数据表 参数 是否必选 说明 基本属性 表名 是 数据表的名称。只能包含英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 别名 否 数据表的别名,只能包含中文字符、英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 数据连接类型 是 数据表所属的数据连接类型。系统默认。 数据连接 是 数据表所属的数据连接。系统默认。 数据库 是 数据表所属的数据库。系统默认。 模式 是 选择数据库的模式。 表描述 否 数据表的描述信息。 高级选项 否 提供以下高级选项: 选择数据表的存储方式 行存模式 列存模式 选择数据表的压缩级别 行存模式:压缩级别的有效值为YES/NO。 列存模式:压缩级别的有效值为YES/NO/LOW/MIDDLE/HIGH,还可以配置列存模式同一压缩级别下不同的压缩水平0-3(数值越大,表示同一压缩级别下压缩比越大)。 表结构 列名 是 填写列名,列名不能重复。 数据分类 是 选择数据类型的类别: 数值类型 货币类型 布尔类型 二进制类型 字符类型 时间类型 几何类型 网络地址类型 位串类型 文本搜索类型 UUID类型 JSON类型 对象标识符类型 类型 是 选择数据类型,具体说明请参见《 数据仓库 服务开发指南》的数据类型。 列描述 否 填写列的描述信息。 是否建ES索引 否 单击复选框时,表示需要建立ES索引。建立ES索引时,请同时在“CloudSearch集群名”中选择建立好的 CSS 集群。如何创建CSS集群,请参见《 云搜索服务 用户指南》的创建集群。 ES索引数据类型 否 选择ES索引的数据类型: text keyword date long integer short byte double boolean binary 操作 否 单击,增加列。 单击,删除列。 表7 MRS Hive数据表 参数 是否必选 说明 基本属性 表名 是 数据表的名称。只能包含英文小写字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 别名 否 数据表的别名,只能包含中文字符、英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 数据连接类型 是 数据表所属的数据连接类型。系统默认。 数据连接 是 选择数据表所属的数据连接。系统默认。 数据库 是 选择数据表所属的数据库。系统默认。 表描述 否 数据表的描述信息。 表结构 列名 是 填写列名,列名不能重复。 数据分类 是 选择数据类型的类别: 原始类型 ARRAY MAP STRUCT UNION 类型 是 选择数据类型,具体说明请参见LanguageManual DDL。 列描述 否 填写列的描述信息。 操作 否 单击,增加列。 单击,删除列。 表8 MRS Spark数据表 参数 是否必选 说明 基本属性 表名 是 数据表的名称。只能包含英文小写字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 别名 否 数据表的别名,只能包含中文字符、英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 数据连接类型 是 数据表所属的数据连接类型。系统默认。 数据连接 是 选择数据表所属的数据连接。系统默认。 数据库 是 选择数据表所属的数据库。系统默认。 表描述 否 数据表的描述信息。 表结构 列名 是 填写列名,列名不能重复。 数据分类 是 选择数据类型的类别: 原始类型 ARRAY MAP STRUCT UNION 类型 是 选择数据类型,具体说明请参见LanguageManual DDL。 列描述 否 填写列的描述信息。 操作 否 单击,增加列。 单击,删除列。
  • 相关操作 查看表详情:在脚本开发导航栏,选择,展开下方的数据连接至数据表层级,右键单击表名称,选择“查看表详情”,可查看如表4所示的数据表信息。 表4 表详情页面 页签名称 说明 表信息 显示数据表的基本信息和存储信息。 字段信息 显示数据表的字段信息。 数据预览 预览数据表的10条记录。 DDL 显示DLI/DWS/MRS Hive数据表的DDL。 删除表:在脚本开发导航栏,选择,展开下方的数据连接至数据表层级,右键单击表名称,选择“删除”后,在弹出的页面中单击“确定”完成删除。 删除操作不可撤销,请谨慎操作。
  • 数据管理流程 数据管理功能可以协助用户快速建立数据模型,为后续的脚本和作业开发提供数据实体。通过数据管理,您可以: 支持管理DWS、MRS Hive、MRS Spark、DLI等多种 数据湖 。 支持可视化和DDL方式管理数据库表。 注意,在MRS API连接方式下,不支持通过可视化方式查看与管理该连接下的数据库、数据表和字段。 单击可以查看数据连接目录树下的数据库、数据表以及字段信息。DWS SQL、DLI SQL、MRS Hive SQL、MRS Spark SQL代理模式均支持查看目录树,其他数据连接均不支持。 如果您在使用数据开发前,已创建了数据连接和对应的数据库和数据表,则可跳过数据管理操作,直接进入脚本开发或作业开发。 数据管理的使用流程如下: 图1 数据管理流程 创建数据连接,连接相关数据湖底座服务。具体请参见新建数据连接。 基于相应服务,新建数据库。具体请参见新建数据库。 如果是DWS连接,则需要新建数据库模式;否则直接新建数据表。具体请参见(可选)新建数据库模式。 新建数据表。具体请参见新建数据表。 父主题: 数据管理
  • 数据开发中的对象 数据连接:定义访问数据实体存储(计算)空间所需信息的集合,包括连接类型、名称和登录信息等。 解决方案:解决方案为用户提供便捷的、系统的方式管理作业,更好地实现业务需求和目标。每个解决方案可以包含一个或多个业务相关的作业,一个作业可以被多个解决方案复用。 作业:作业由一个或多个节点组成,执行作业可以完成对数据的一系列操作。 脚本:脚本(Script)是一种批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。 节点:定义对数据执行的操作。 资源:用户可以上传自定义的代码或文本文件作为资源,以便在节点运行时调用。 表达式:数据开发作业中的节点参数可以使用表达式语言(Expression Language,简称EL),根据运行环境动态生成参数值。数据开发EL表达式包含简单的算术和逻辑计算,引用内嵌对象,包括作业对象和一些工具类对象。 环境变量:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所使用到的信息。 补数据:手工触发周期方式调度的作业任务,生成某时间段内的实例。
  • 数据开发的主要功能 表1 数据开发的主要功能 支持的功能 说明 数据管理 支持管理DWS、DLI、MRS Hive等多种数据仓库。 支持可视化和DDL方式管理数据库表。 脚本开发 提供在线脚本编辑器,支持多人协作进行SQL、Shell、Python脚本在线代码开发和调测。 支持使用变量和函数。 作业开发 提供图形化设计器,支持拖拉拽方式快速构建数据处理工作流。 预设数据集成、SQL、Shell等多种任务类型,通过任务间依赖完成复杂数据分析处理。 支持导入和导出作业。 资源管理 支持统一管理在脚本开发和作业开发使用到的file、jar、archive类型的资源。 作业调度 支持单次调度、周期调度和事件驱动调度,周期调度支持分钟、小时、天、周、月多种调度周期。调度周期配置为小时,系统支持按间隔小时和离散小时配置调度周期。 运维监控 支持对作业进行运行、暂停、恢复、终止等多种操作。 支持查看作业和其内各任务节点的运行详情。 支持配置多种方式报警,作业和任务发生错误时可及时通知相关人,保证业务正常运行。
  • 配置SAP HANA源端参数 SAP HANA作为源端作业参数如表1所示。 表1 SAP HANA作源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 使用SQL语句 导出关系型数据库的数据时,您可以选择使用自定义SQL语句导出。 否 SQL语句 “使用SQL语句”选择“是”时,您可以在这里输入自定义的SQL语句,CDM将根据该语句导出数据。 说明: SQL语句只能查询数据,支持join和嵌套写法,但不能有多条查询语句,比如 select * from table a; select * from table b。 不支持with语句。 不支持注释 ,比如 "--" ,“/*”。 不支持增删改操作,包括但不限于以下操作: load data delete from alter table create table drop table into outfile 如果SQL语句过长,会导致请求过长下发失败,继续创建作业系统会报错“错误请求”,此时您需要简化或清空SQL语句,再次尝试继续创建作业。 select id,name from sqoop.user; 模式或表空间 “使用SQL语句”选择“否”时,显示该参数,表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,用户也可以直接输入模式或表空间名称。 如果选择界面没有待选择的模式或表空间,请确认对应连接里的账号是否有元数据查询的权限。 说明: 该参数支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有数据库。例如: SCHEMA*表示导出所有以“SCHEMA”开头的数据库。 *SCHEMA表示导出所有以“SCHEMA”结尾的数据库。 *SCHEMA*表示数据库名称中只要有“SCHEMA”字符串,就全部导出。 SCHEMA_E 表名 “使用SQL语句”选择“否”时,显示该参数,表示要抽取的表名。单击输入框后面的按钮可进入表的选择界面,用户也可以直接输入表名称。 如果选择界面没有待选择的表,请确认表是否已经创建,或者对应连接里的账号是否有元数据查询的权限。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 说明: 表名支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有表(要求表中的字段个数和类型都一样)。例如: table*表示导出所有以“table”开头的表。 *table表示导出所有以“table”结尾的表。 *table*表示表名中只要有“table”字符串,就全部导出。 table 高级属性 Where子句 “使用SQL语句”选择“否”时,显示该参数,表示配置抽取范围的Where子句,不配置时抽取整表。 该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见关系数据库增量迁移。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 DS='${dateformat(yyyy-MM-dd,-1,DAY)}' 抽取区分字段 “使用SQL语句”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。 单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。 说明: 抽取分区字段支持TINYINT、SMALLINT、INTEGER、BIGINT、REAL、FLOAT、DOUBLE、NUMERIC、DECIMAL、BIT、BOOLEAN、DATE、TIME、TIMESTAMP类型,建议该字段带有索引。 id 父主题: 配置CDM作业源端参数
  • 配置DWS源端参数 作业中源连接为DWS连接时,源端作业参数如表1所示。 表1 DWS作为源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 使用SQL语句 导出关系型数据库的数据时,您可以选择使用自定义SQL语句导出。 否 SQL语句 “使用SQL语句”选择“是”时,您可以在这里输入自定义的SQL语句,CDM将根据该语句导出数据。 说明: SQL语句只能查询数据,支持join和嵌套写法,但不能有多条查询语句,比如 select * from table a; select * from table b。 不支持with语句。 不支持注释 ,比如 "--" ,“/*”。 不支持增删改操作,包括但不限于以下操作: load data delete from alter table create table drop table into outfile 如果SQL语句过长,会导致请求过长下发失败,继续创建作业系统会报错“错误请求”,此时您需要简化或清空SQL语句,再次尝试继续创建作业。 select id,name from sqoop.user; 模式或表空间 “使用SQL语句”选择“否”时,显示该参数,表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,用户也可以直接输入模式或表空间名称。 如果选择界面没有待选择的模式或表空间,请确认对应连接里的账号是否有元数据查询的权限。 说明: 该参数支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有数据库。例如: SCHEMA*表示导出所有以“SCHEMA”开头的数据库。 *SCHEMA表示导出所有以“SCHEMA”结尾的数据库。 *SCHEMA*表示数据库名称中只要有“SCHEMA”字符串,就全部导出。 SCHEMA_E 表名 “使用SQL语句”选择“否”时,显示该参数,表示要抽取的表名。单击输入框后面的按钮可进入表的选择界面,用户也可以直接输入表名称。 如果选择界面没有待选择的表,请确认表是否已经创建,或者对应连接里的账号是否有元数据查询的权限。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 说明: 表名支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有表(要求表中的字段个数和类型都一样)。例如: table*表示导出所有以“table”开头的表。 *table表示导出所有以“table”结尾的表。 *table*表示表名中只要有“table”字符串,就全部导出。 table 高级属性 Where子句 “使用SQL语句”选择“否”时,显示该参数,表示配置抽取范围的Where子句,不配置时抽取整表。 该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见关系数据库增量迁移。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 DS='${dateformat(yyyy-MM-dd,-1,DAY)}' 抽取分区字段 “使用SQL语句”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。 单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。 说明: 抽取分区字段支持TINYINT、SMALLINT、INTEGER、BIGINT、REAL、FLOAT、DOUBLE、NUMERIC、DECIMAL、BIT、BOOLEAN、DATE、TIME、TIMESTAMP类型,建议该字段带有索引。 id 分区字段含有空值 是否允许分区字段包含空值。 是 拆分作业 选择“是”,会根据“作业拆分字段”值,将作业拆分为多个子作业并发执行。 说明: 仅支持目的端为DLI和Hive时配置该参数及作业拆分字段、拆分字段最小值、拆分字段最大值、子作业个数参数。 是 作业拆分字段 “拆分作业”选择“是”时,显示该参数,使用该字段将作业拆分为多个子作业并发执行。 - 拆分字段最小值 “拆分作业”选择“是”时,显示该参数,表示抽取数据时“作业拆分字段”的最小值。 - 拆分字段最大值 “拆分作业”选择“是”时,显示该参数,表示抽取数据时“作业拆分字段”的最大值。 - 子作业个数 “拆分作业”选择“是”时,显示该参数,根据“作业拆分字段”的最小值和最大值限定的数据范围,将作业拆分为多少个子作业执行。 - 父主题: 配置CDM作业源端参数
  • 获取API信息 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 获取待调用API的调用地址、请求方法和入参信息。 在左侧导航栏中进入API管理,找到待调用的API,并单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。 入参:本调用样例中创建了一个具备Query和Path入参位置的API,以便为您介绍入参应如何在调用时输入。 图1 保存调用地址、请求方法和入参信息
  • 调用API 打开Chrome浏览器,新建一个空白页签。 参考获取API信息,在浏览器中输入API调用地址并直接访问。注意如果入参中包含Path和Query参数,则需要将调用地址中的{path}变量修改为Path参数具体取值,Query参数取值可以通过“?Query参数名=Query参数值”的形式添加到调用地址的最后,如本例中为“?query=1”。 https://xx.xx.xx.xx/getContestantInfo/2?query=1 如果您需要对调用结果进行自定义调整,则还可以配置如下Query参数,通过“&”连接多个参数: (可选)分页配置:默认情况下,对于配置方式和默认分页的脚本/MyBatis方式API,系统将默认赋值返回量。如果需要获取特定分页数据,您可以添加如下参数设置分页,其中pageSize表示分页后的页面大小,pageNum表示页码。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&pageSize=100&pageNum=1 自定义分页的脚本/MyBatis方式API是在创建API时将分页逻辑写到取数SQL中,因此不支持在调用时修改分页设置。 (可选)排序配置:默认情况下,系统会根据排序参数信息给出默认排序情况,自定义排序默认为升序。如果需要修改排序情况,您可以修改pre_order_by参数。其中排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&pre_order_by=id:ASC;age:ASC;score:DESC 对于pre_order_by的值,您可以进行如下修改: 删掉某可选的排序参数,则此排序参数不再参与排序。 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。 pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。 调整排序参数的前后顺序,则排序依然以配置方式API配置排序参数时的排序参数顺序或脚本/MyBatis方式API SQL中的排序参数顺序为准,调整不生效。 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。 (可选)“返回总条数”配置:在创建API时,如果已打开“返回总条数”开关,则当API对应的数据表数据量较大时,获取数据总条数将会比较耗时。此时,如果需要在调用时不计算并返回数据总条数,可以修改use_total_num参数。use_total_num参数用于控制是否计算并返回数据总条数,值为1返回数据总条数,值非1不返回数据总条数。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&use_total_num=0 浏览器访问后可查看返回结果。返回"errCode":"DLM.0"即表示API调用成功。如果失败,则请根据报错信息进行修复。 图2 使用浏览器调用API
  • 约束与限制 如需在本地调用专享版API,则需在创建专享版集群时绑定一个弹性公网IP,作为实例的公网入口。共享版API默认可通过公网访问。 调用数据服务API时,如果查询及返回数据的总时长超过默认60秒则会报超时错误。此时可通过访问日志中的API调用时长信息,根据超时阶段进一步优化API配置。 ____________Duration information__________ duration: 60491ms //总耗时 url_duration: 0ms //URL匹配耗时 auth_duration: 70ms //鉴权耗时 befor_sql_duration: 402ms //执行SQL预处理耗时 sql_duration: 60001ms //SQL执行耗时 after_sql_duration:18ms //执行SQL后处理耗时
  • 获取API信息 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 获取待调用API的调用地址、请求方法和入参信息。 在左侧导航栏中进入API管理,找到待调用的API,并单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。 入参:本调用样例中创建了一个具备各类入参位置的API,以便为您介绍各类入参应如何在调用时输入。 图1 保存调用地址、请求方法和入参信息
  • 约束与限制 如需在本地调用专享版API,则需在创建专享版集群时绑定一个弹性公网IP,作为实例的公网入口。共享版API默认可通过公网访问。 调用数据服务API时,如果查询及返回数据的总时长超过默认60秒则会报超时错误。此时可通过访问日志中的API调用时长信息,根据超时阶段进一步优化API配置。 ____________Duration information__________ duration: 60491ms //总耗时 url_duration: 0ms //URL匹配耗时 auth_duration: 70ms //鉴权耗时 befor_sql_duration: 402ms //执行SQL预处理耗时 sql_duration: 60001ms //SQL执行耗时 after_sql_duration:18ms //执行SQL后处理耗时
共100000条