=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 你可以参考一下链接:https://help.aliyun.com/document_detail/135619.html

    ODPS分区配置支持linux shell通配符,* 表示0个或多个字符,? 代表任意一个字符。

    默认情况下,读取的分区需要存在,如果分区不存在任务会报错。 如果您希望分区不存在时任务仍然成功,您可以转换为脚本模式,在odps的parameter端下面配置successOnNoPartition参数,即 “successOnNoPartition”: true

    ODPS写插件指定分区技巧:

    需要写入数据表的分区信息,必须指定到最后一级分区。把数据写入一个三级分区表,必须配置到最后一级分区。

    例如:pt=20150101/type=1/biz=2

    不支持写入多个分区。

  2. 读取数据所在的分区信息。ODPS的分区配置支持linux shell通配符,表示0个或多个字符,?表示任意一个字符。默认情况下,读取的分区必须存在,如果分区不存在则运行的任务会报错。如果您希望当分区不存在时任务仍然执行成功,则可以切换至脚本模式执行任务,并在ODPS的Parameter中添加”successOnNoPartition”: true配置。例如,分区表test包含pt=1,ds=hangzhou、pt=1,ds=shanghai、pt=2,ds=hangzhou、pt=2,ds=beijing四个分区,则读取不同分区数据的配置如下:如果您需要读取pt=1,ds=hangzhou分区的数据,则分区信息的配置为”partition”:”pt=1,ds=shanghai”。 如果您需要读取pt=1中所有分区的数据,则分区信息的配置为”partition”:”pt=1,ds=”。 如果您需要读取整个test表所有分区的数据,则分区信息的配置为”partition”:”pt=,ds=”。此外,您还可以根据实际需求设置分区数据的获取条件(以下操作需要转脚本模式配置任务):如果您需要指定最大分区,则可以添加/query/ ds=(select MAX(ds) from DataXODPSReaderPPR)配置信息。 如果需要按条件过滤,则可以添加相关条件/query/ pt+表达式配置。例如/query/ pt>=20170101 and pt<20170110表示获取pt分区中,20170101日期之后(包含20170101日期),至20170110日期之前(不包含20170110日期)的所有数据。说明/query/表示将其后填写的内容识别为一个where条件。 https://help.aliyun.com/document_detail/146663.html,此回答整理自钉群“DataWorks交流群(答疑@机器人)”