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

DataWorks任务有时候会过滤一些脏数据,想通过脚本检测一下这个Stage是否拿到全部数据?

DataWorks任务有时候会过滤一些脏数据,想通过脚本检测一下这个Stage是否拿到全部数据?

展开
收起
真的很搞笑 2023-12-10 19:30:26 29 0
3 条回答
写回答
取消 提交回答
  • 在DataWorks中,您可以使用SQL脚本来检查任务处理后的数据量是否与原始数据量相符,以确保没有过滤掉任何脏数据。以下是一个简单的示例:

    1. 获取源表数据量
      • 首先,查询您的源表(例如OSS上的CSV文件)中的数据行数。
    SELECT COUNT(*) FROM source_table;
    
    1. 获取Stage数据量
      • 然后,查询您清洗后的Stage表中的数据行数。
    SELECT COUNT(*) FROM stage_table;
    
    1. 比较数据量
      • 将上述两个查询的结果进行比较,如果它们相等,则说明您没有过滤掉任何脏数据。
    -- 假设source_rows和stage_rows分别为上面两个查询的计数结果变量
    IF source_rows = stage_rows THEN
      PRINT '数据量一致,未过滤脏数据';
    ELSE
      PRINT '数据量不一致,可能存在过滤问题,请检查任务配置或脚本';
    END IF;
    

    请注意,这只是一个基本示例。实际情况下,您可能需要根据您的数据结构和需求来调整这些查询。此外,这种方法无法检测到部分记录被修改或替换的情况,如果您需要更严格的完整性检查,可以考虑对比特定字段的值或者使用MD5校验等方法。

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

    要检测DataWorks任务是否拿到了全部数据,可以通过以下步骤进行:

    1. 在DataWorks中查看该Stage的输入和输出数据量,确保输出数据量与预期一致。
    2. 编写一个脚本,从DataWorks的API接口获取该Stage的运行日志。
    3. 分析运行日志,检查是否有过滤脏数据的记录。如果有,可以查看具体的过滤条件和规则。
    4. 根据过滤条件和规则,编写一个脚本来模拟这些条件,生成相应的测试数据。
    5. 将测试数据上传到DataWorks中,并运行该Stage,观察输出结果是否符合预期。
    6. 如果输出结果不符合预期,可以进一步分析日志和代码,找出问题所在。
    2023-12-11 10:56:07
    赞同 展开评论 打赏
  • 当脏数据非常大的时候 日志里无法打印全 ,目前openapi只能拿到外层的runlog日志 还拿不到数据集成的detail loghttps://help.aliyun.com/zh/dataworks/developer-reference/api-getinstancelog?spm=a2c4g.11186623.0.i10#doc-api-dataworks-public-GetInstanceLog ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-12-11 10:46:39
    赞同 展开评论 打赏

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

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

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