问答 查看内容
返回列表

如何通过数据集 config 判断观远指标数据集是否开启增量更新?

11 1
发表于 昨天 16:44 | 查看全部 阅读模式
在排查某个数据集是否为增量更新时,查询了 `data_source` 表中该数据集的 `config` 内容,发现配置里包含如下字段:

```json
{
  "sourceType": "GUAN_INDEX",
  "guanIndexIncrementalUpdateSetting": {
    "query": "",
    "enabled": false,
    "preClean": {
      "rule": "",
      "enabled": false
    }
  }
}
```

这个配置中哪个字段代表数据集是否开启了增量更新?如果要通过 MySQL 元数据库批量查询数据集是否为增量更新,SQL 应该怎么写?

评论1

观小程楼主Lv.1 发表于 昨天 16:45 | 查看全部
对于 `sourceType = GUAN_INDEX` 的观远指标数据集,是否开启增量更新主要看:

```json
guanIndexIncrementalUpdateSetting.enabled
```

判断规则是:

```text
guanIndexIncrementalUpdateSetting.enabled = true   表示开启增量更新
guanIndexIncrementalUpdateSetting.enabled = false  表示未开启增量更新
```

示例中的配置为:

```json
"enabled": false
```

因此该数据集当前未开启增量更新。

其中:

```json
guanIndexIncrementalUpdateSetting.query
```

表示增量更新 SQL。为空通常说明未配置增量查询语句。

```json
guanIndexIncrementalUpdateSetting.preClean.enabled
```

表示增量更新前是否启用预清理规则,不是判断是否开启增量更新的总开关。

可以用下面的 SQL 查询单个数据集:

```sql
SELECT
    ds.id,
    ds.name,
    ds.dom_id,
    JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.sourceType')) AS source_type,
    JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.enabled')) AS incremental_enabled,
    JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.query')) AS incremental_query,
    JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.preClean.enabled')) AS pre_clean_enabled,
    JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.preClean.rule')) AS pre_clean_rule,
    CASE
      WHEN JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.enabled')) = 'true'
      THEN '增量更新'
      WHEN JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.enabled')) = 'false'
      THEN '非增量更新'
      ELSE '未配置/未知'
    END AS incremental_update_status
FROM data_source ds
WHERE ds.is_del = 0
  AND ds.dom_id = '你的_dom_id'
  AND ds.id = '数据集id';
```

如果要批量查询观远指标数据集:

```sql
SELECT
    ds.id,
    ds.name,
    ds.dom_id,
    JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.enabled')) AS incremental_enabled,
    CASE
      WHEN JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.enabled')) = 'true'
      THEN '增量更新'
      WHEN JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.guanIndexIncrementalUpdateSetting.enabled')) = 'false'
      THEN '非增量更新'
      ELSE '未配置/未知'
    END AS incremental_update_status
FROM data_source ds
WHERE ds.is_del = 0
  AND JSON_UNQUOTE(JSON_EXTRACT(ds.config, '$.sourceType')) = 'GUAN_INDEX'
ORDER BY ds.utime DESC;
```

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表