本帖最后由 lucas.Yan 于 2024-12-9 12:20 编辑
背景: 在日常的数据管理工作中,我们经常遇到客户反映数据库中某个SQL查询长时间未完成或表现为慢SQL的情况。经过初步排查,发现这些SQL查询的来源是我们的产品 Wyn。然而,由于Wyn 中存在大量的直连数据集,每个数据集可能包含多个自定义 SQL 查询,这使得手动逐一检查每一个数据集变得异常繁琐且耗时。 具体来说,当客户报告某条SQL查询性能不佳时,我们需要迅速确定这条SQL属于哪个具体的直连数据集。如果依靠人工逐个点击并检查每个数据集中的自定义SQL表,不仅效率低下,而且容易遗漏关键信息,导致问题解决周期延长,影响用户体验。 因此,找到一种高效的方法来快速定位和识别对应的直连查询数据集显得尤为重要。理想情况下,我们应该能够自动化地扫描所有数据集,并根据特定的SQL查询条件快速筛选出目标数据集,从而及时进行优化或修改。
技术实现方案我们可以编写一个JavaScript脚本,该脚本将执行以下任务: 数据采集:通过API请求获取所有直连数据集的详细信息。 数据解析:解析返回的JSON数据,提取每个数据集的自定义SQL查询、数据源和数据集名称。 数据聚合:将提取的信息聚合成一个表格形式,便于后续分析。 模糊匹配:实现模糊匹配功能,允许用户输入部分SQL关键字,快速查找相关数据集。
我们先看看脚本的效果: 首先我们需要输入我们服务的base地址,其次输入有足够权限的token。点击提交后将会自动开始查询。 下面的表格明细中看到所有数据集所使用的自定义Sql。 模糊匹配:当我们想要使用查询关键词 left的时候。可以直接搜索left来筛选出sql中包含left的语句。
注意事项:请求接口为V2版本,低版本如果需要实现脚本需要修改下面文件压缩包中JS文件的接口。
|