天天看点

DataWorks百问百答33:数据同步怎么配置ODPS分区?

同步任务可以支持ODPS的数据列、分区列、常量列,但_不支持函数列_ 

  • ODPS分区配置支持linux shell通配符,* 表示0个或多个字符,? 代表任意一个字符
  • 默认情况下,读取的分区需要存在,如果分区不存在任务会报错。 如果您希望分区不存在时任务仍然成功,您可以转换为脚本模式,在odps的parameter端下面配置successOnNoPartition参数,即 "successOnNoPartition": true

例如:分区表 test存在 pt=1,ds=hangzhou pt=1,ds=shanghai pt=2,ds=hangzhou pt=2,ds=beijing 四个分区,如果你想读取 pt=1,ds=shanghai 这个分区的数据,分区信息中配置: pt=1,ds=shanghai;

如果你想读取 pt=1下的所有分区,分区信息中配置 :pt=1,ds=;如果你想读取整个 test 表的所有分区的数据,分区信息中配置 :pt=,ds=*

  • 如果需要指定最大分区,可以配置如下信息:
/*query*/ ds=(select MAX(ds) from DataXODPSReaderPPR)
  • 如果需要按条件过滤,可以配置如下信息:
/*query*/ pt>=20170101 and pt<20170110,表示pt分区大于等于20170101且小于20170110的所有数据

ODPS写插件指定分区技巧

  • 需要写入数据表的分区信息,必须指定到最后一级分区。把数据写入一个三级分区表,必须配置到最后一级分区
例如:pt=20150101/type=1/biz=2
  • 不支持写入多个分区

DataWorks百问百答历史记录

请点击这里查看>>

更多DataWorks技术和产品信息,欢迎加入

【DataWorks钉钉交流群】

继续阅读