开发者社区 > 数据库 > 数据库管理工具 > 正文

帮忙看看DMS,会不会是 TB少了一个_,应该是TB?

"帮忙看看DMS
e_compose(
e_if(op_eq(TB,'customer'),e_set(mobile,str_md5(mobile))),
e_if(op_eq(TB,'customer'),e_set(mobile2,str_md5(mobile2))),
e_if(op_eq(TB,'customer'),e_set(id_number, str_mask(id_number, 16, 17, '*')))
)
【任务名称】:XX
【所有报错信息】:
CODE:DTS-RETRY-ERR-0083
错误概述:执行ETL失败。
解决方案:请根据报错检查ETL语法是否配置正确。
帮助文档:https://help.aliyun.com/document_detail/462133.html#DTS-RETRY-ERR-0083
详细报错信息:从源库获取数据异常,正在重试,重试了5次,重试了40s,异常重试原因:
ETL: DTS--0001: Error while executing user ETL: TB not found in xxx.customer
cause:
RuntimeException: TB not found in xxx.customer
【URL】:https://dtsnew.console.aliyun.com/sync/cn-shenzhen
【当前时间】:2024-03-20 15:49:44
【Region】:cn-shenzhen
会不会是 TB少了一个_,应该是TB?"

展开
收起
cuicuicuic 2024-03-25 10:33:45 30 0
3 条回答
写回答
取消 提交回答
  • 2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>

    根据您提供的DMS(数据管理服务)错误信息,问题似乎出在ETL(Extract, Transform, Load)脚本执行过程中错指出,系统在执行用户定义的ETL在xxx.customer表中找到某个预期的元素或字段。

    具体的错误是 RuntimeException: not found in xxx.customer,这意味着脚本可能在尝试访问xxx.customer表中不存在的字段或记录。这并不一定是因为TB变量中缺少了下划线_,而更了解决这个问题,你需要检查以下几点:

    1. 字段名正确性:确认你的ETL脚本中引用的所有字段名在xxx.customer表中都存在。比如,确认mobilemobile2id_number字段在xxx.customer表中是否存在。

    2. 表名正确性:确认你使用的表名xxx.customer是否正确,并且该表在数据库中确实存在。

    3. ETL脚本逻辑:检查你的ETL逻辑是否有误,比如条件判断、字段设置等。

    4. 权限问题:确认你的DMS账户有足够的权限访问xxx.customer表。

    5. 数据类型匹配:如果字段存在,但是数据类型不匹配,也可能会导致类似错误。

    6. 重试策略:由于错误是在重试过程中发生的,考虑是否需要调整重试策略,比如增加重试次数或间隔。

    7. 查看文档和支持:参考相关帮助文档或联系技术支持获取更多帮助。

    请注意,这些建议是基于你提供的错误信息的一般性指导。具体的解决方案可能需要结合你的DMS环境和数据库的实际情况来确定。

    2024-03-31 17:01:57
    赞同 展开评论 打赏
  • 2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>

    根据您提供的DMS(数据管理服务)错误信息,确实有可能是在表名引用时出现了问题。在您的错误概述中,提到了“not found in xxx.customer”,这似乎表明系统在尝试查找xxx.customer表时未能找到。

    如果您的表名实际上是类似于xxx_customer这样的格式,并且在前面有一个下划线_,那么在引用时缺少这个下划线可能会导致找不到表的错误。在数据库中,表名是区分大小写且必须精确匹配的,包括任何前缀或后缀的下划线。

    在您的ETL语句中,您使用了e_if(op_eq(TB,'customer'),...),这里的TB应该是一个变量,代表当前的表名。如果在某个时刻TB的值是xxx_customer,而您的条件判断中使用了'customer',则这两个字符串是不匹配的,因为它们一个是带下划线的,另一个没有。

    为了解决这个问题,您需要确保:

    1. 确认您的表名是否确实包含下划线_
    2. 检查ETL脚本中的表名引用是否与实际的表名完全匹配,包括任何必要的下划线。
    3. 如果TB是一个变量,确保它在任何使用点都被正确地设置和引用。

    如果问题仍然存在,建议您检查DMS任务的配置,确保所有涉及的表和字段都被正确配置,并且ETL脚本的语法是正确的。如果需要,您可以参考阿里云的帮助文档或联系技术支持以获取更具体的帮助。

    2024-03-31 15:47:10
    赞同 展开评论 打赏
  • 2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>

    TB这个变量写错了。 ,此回答整理自钉群“DMS数据管理用户交流1群”

    2024-03-26 08:39:35
    赞同 展开评论 打赏

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载
http://www.vxiaotou.com