可以直接查 `data_source` 表,数据集 SQL 的主存储路径是 `config.tableQuery.query`,分类字段一般看 `config.sourceType`。
先用下面这条 SQL 看环境里实际有哪些 `sourceType`:
```sql
SELECT
JSON_UNQUOTE(JSON_EXTRACT(config, '$.sourceType')) AS source_type,
COUNT(*) AS cnt
FROM data_source
WHERE is_del = 0
GROUP BY JSON_UNQUOTE(JSON_EXTRACT(config, '$.sourceType'))
ORDER BY cnt DESC;
```
如果要查询所有抽取或直连数据集模型结构中的 SQL,可以用下面这条:
```sql
SELECT
ds_id,
name,
JSON_UNQUOTE(JSON_EXTRACT(config, '$.sourceType')) AS source_type,
cn_id,
ac_id,
JSON_UNQUOTE(JSON_EXTRACT(config, '$.tableQuery.queryType')) AS query_type,
JSON_UNQUOTE(JSON_EXTRACT(config, '$.tableQuery.table')) AS table_name,
CASE
WHEN JSON_EXTRACT(config, '$.tableQuery.ifEncoded') = true THEN
CONVERT(
FROM_BASE64(
CONVERT(
UNHEX(JSON_UNQUOTE(JSON_EXTRACT(config, '$.tableQuery.query')))
USING utf8mb4
)
) USING utf8mb4
)
ELSE JSON_UNQUOTE(JSON_EXTRACT(config, '$.tableQuery.query'))
END AS dataset_sql,
ctime,
utime
FROM data_source
WHERE is_del = 0
AND JSON_UNQUOTE(JSON_EXTRACT(config, '$.sourceType')) IN ('DIRECT_CONNECT_DATABASE', 'GUAN_INDEX')
ORDER BY utime DESC;
```
如果只想看明确配置了自定义 SQL 的数据集,可以再加一层过滤:
```sql
AND JSON_EXTRACT(config, '$.tableQuery.query') IS NOT NULL
```
需要注意,如果 `tableQuery.query` 为空,但 `tableQuery.table` 有值,通常说明这是选表型数据集,不是自定义 SQL 型数据集。
|