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

DataWorks针对非按日分区表,支持这种《表行数,7天平均值波动率》校验规则嘛?

DataWorks针对非按日分区表,支持这种《表行数,7天平均值波动率》校验规则嘛?dataworks 会辅助记录历史数据进行校验?
image.png

展开
收起
真的很搞笑 2024-08-21 12:41:48 40 0
2 条回答
写回答
取消 提交回答
  • 支持的 会采集历史数据校验 所以配置该规则 测试运行的时候可以选择不同的业务日期 跑7天 可以观察到历史记录里有7天的样本值 ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2024-08-21 21:47:00
    赞同 3 展开评论 打赏
  • 技术浪潮涌向前,学习脚步永绵绵。

    DataWorks 支持对非按日分区表进行数据质量校验,包括对表行数的变化情况进行监控。虽然 DataWorks 默认提供的数据质量校验规则可能不直接包含“7天平均值波动率”的具体规则,但是你可以通过自定义的方式来实现这一功能。

    下面是如何在 DataWorks 中实现针对非按日分区表的“表行数,7天平均值波动率”校验规则的方法:

    步骤 1: 数据准备

    首先,你需要确保 DataWorks 或者其他地方有一个存储历史表行数的地方。这通常需要创建一个额外的表来记录每天的表行数,并且每天更新这个表。

    创建历史记录表

    CREATE TABLE IF NOT EXISTS row_count_history (
        table_name STRING,
        date DATE,
        row_count BIGINT
    );
    

    插入数据

    INSERT INTO row_count_history (table_name, date, row_count)
    SELECT 'your_table_name', CURRENT_DATE, COUNT(*)
    FROM your_table_name;
    

    步骤 2: 实现自定义校验规则

    接下来,你需要编写一个 SQL 查询或者使用 DataWorks 的自定义脚本来实现这个规则。

    计算 7 天平均值波动率

    假设你已经有一个历史记录表 row_count_history,你可以通过以下 SQL 查询来计算过去 7 天的平均值波动率:

    WITH last_seven_days AS (
        SELECT
            table_name,
            date,
            row_count,
            LAG(row_count, 1) OVER (PARTITION BY table_name ORDER BY date) AS prev_row_count
        FROM row_count_history
        WHERE date BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) AND CURRENT_DATE
    ),
    avg_and_stddev AS (
        SELECT
            table_name,
            AVG(row_count) AS avg_row_count,
            STDDEV_SAMP(row_count) AS stddev_row_count
        FROM last_seven_days
        GROUP BY table_name
    )
    SELECT
        a.table_name,
        a.avg_row_count,
        a.stddev_row_count,
        (c.current_row_count - a.avg_row_count) / a.stddev_row_count AS fluctuation_rate
    FROM avg_and_stddev a
    JOIN last_seven_days c ON a.table_name = c.table_name
    WHERE c.date = CURRENT_DATE;
    

    步骤 3: 在 DataWorks 中配置校验规则

    1. 登录 DataWorks 控制台
    2. 进入数据质量 -> 校验规则管理
    3. 创建新的校验规则
      • 设置校验规则的名称、描述等基本信息。
      • 在“校验方式”中选择“自定义 SQL”。
      • 输入上面编写的 SQL 查询语句。
      • 设置校验规则的阈值,比如波动率超过某个百分比则触发告警。
      • 保存校验规则。

    步骤 4: 触发校验

    1. 配置定时任务:在 DataWorks 中创建一个定时任务,每天自动运行上述 SQL 查询。
    2. 设置告警:在创建的校验规则中设置告警机制,例如通过企业微信、邮件等方式发送告警通知。

    注意事项

    • 确保你的历史记录表中有足够的数据来计算过去 7 天的平均值。
    • 根据实际需求调整 SQL 查询中的日期范围和统计方法。
    • 如果需要更加复杂的校验逻辑,可以考虑使用 DataWorks 的 Python 或 Java 自定义脚本功能。

    通过以上步骤,你可以实现在 DataWorks 中对非按日分区表的行数变化进行监控,并基于 7 天平均值波动率来进行校验。如果你需要更详细的帮助或具体的实现细节,请随时提问。

    2024-08-21 14:47:37
    赞同 10 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

    更多
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载

    相关实验场景

    更多