开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks中oracle reader splitPk支持字符串类型?

DataWorks中oracle reader splitPk支持字符串类型?

展开
收起
真的很搞笑 2023-09-25 09:45:40 187 0
2 条回答
写回答
取消 提交回答
  • 现象:
    配置并发8,实际只跑了1。
    报了个 Warn: [Note]: The splitting primary key [splitPk] you configured for OracleReader is: POLICYNO. Due to the too many repeated values in the splitting primary key, or the too few records in the source table, the number of tasks actually split by DataX is 1, less than the number of channels you configured: 8. Therefore, please take note that the actual concurrent channels of this synchronization task is: channel=1.
    解决:
    oracle 支持 string的splitPK,需要转换成脚本模式,参考这个配置一下"splitMode":"ramdomSampling";
    splitFactor可以设置小一点,比如10或者50。
    image.png
    ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-09-25 14:41:52
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在DataWorks中,Oracle Reader插件的splitPk参数默认是不支持字符串类型的。splitPk参数用于将读取任务分片化,以提高读取性能。

    然而,如果你想要在Oracle Reader中使用字符串类型的splitPk,可以通过以下两种方式实现:

    1. 使用数字范围代替字符串:可以通过将字符串转换为数字范围来模拟对字符串类型的splitPk进行分片。例如,假设有一个字符串类型的字段"category",可以将其映射为数字范围(如1-100、101-200等),然后在Oracle Reader中设置splitPk为数字范围,以实现类似的效果。

    2. 自定义SQL逻辑:可以通过自定义SQL查询语句,在WHERE条件中使用合适的字符串条件来实现对字符串类型字段的分片。例如,在查询中添加类似于 "WHERE category >= 'A' AND category <= 'D'" 的条件来限制读取的数据范围。

    需要注意的是,以上方法是一种绕过Oracle Reader插件默认设置的方式,并且可能需要根据具体情况进行调整和优化。此外,确保在使用字符串类型的splitPk时考虑到数据分布的均匀性和查询性能的影响。

    2023-09-25 13:55:32
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 热门讨论

    热门文章

    相关电子书

    更多
    DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载

    相关实验场景

    更多

    相关镜像