alibaba.dt.sqlalgo.similarity.querysqlsimilarity (阿里控股.数据技术与产品部.图治SQL算法开放.检查两条SQL的相似性)

阿里控股.数据技术与产品部.图治SQL算法开放.检查两条SQL的相似性

公共参数

请求参数

名称 类型 是否必须 示例值 更多限制 描述
sql_similarity_request SqlSimilarityRequest 必须 sql相似度计算请求
  • └ sql_b
  • String
  • 必须
  • select *,'A' from tablea where ds = '20230402' and col1 = 'A'
  • sql相似度比较的sql_b
  • └ table_column_string
  • String
  • 必须
  • tablea::1##col1##0,2##col2##0,3##col3##0,4##ds##1
  • 表列信息字符串
  • └ sql_a
  • String
  • 必须
  • select *,'B' from tablea where ds = '20230401' and col1 = 'A'
  • sql相似度比较的sql_a
  • └ project_name
  • String
  • 必须
  • data_sec
  • 项目名称

响应参数

名称 类型 示例值 描述
sql_similarity_result SqlSimilarityResult sql相似度计算结果
  • └ format_result
  • String
  • {\"SQLB\":{\"fp\":\"98609D4539042A0A796AAF7F2EEDFB7E\",\"fromatSQL\":\"SELECT 'B' AS __col_0, __ts_0.col1 AS col1, __ts_0.col2 AS col2, __ts_0.col3 AS col3, __ts_0.ds AS ds\\nFROM tablea __ts_0\\nWHERE __ts_0.col1 = 'A'\\n\\tAND __ts_0.ds = '20230401'\",\"sfp\":\"A25432FB40F32D9CE9D20AA3F43F598B\"},\"SQLA\":{\"fp\":\"D9A9B21D60068B7A2196DD9B5F9F70F2\",\"fromatSQL\":\"SELECT 'A' AS __col_0, __ts_0.col1 AS col1, __ts_0.col2 AS col2, __ts_0.col3 AS col3, __ts_0.ds AS ds\\nFROM tablea __ts_0\\nWHERE __ts_0.col1 = 'A'\\n\\tAND __ts_0.ds = '20230402'\",\"sfp\":\"A25432FB40F32D9CE9D20AA3F43F598B\"}}
  • SQL格式化后的结果及指纹信息
  • └ similar_result
  • String
  • SQLA 与 SQLB 去除常量后完全一致
  • 相似性描述结果。包括3个取值,分别是:SQLA 与 SQLB 完全一致,SQLA 与 SQLB 去除常量后完全一致,SQLA 与 SQLB 不一致
  • └ error
  • String
  • SQL parse failed: ...
  • 若发生异常则包含错误信息,正常情况下不存在此字段

请求示例

  • JAVA
  • .NET
  • PHP
  • CURL
  • Python
  • C/C++
  • NodeJS
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
AlibabaDtSqlalgoSimilarityQuerysqlsimilarityRequest req = new AlibabaDtSqlalgoSimilarityQuerysqlsimilarityRequest();
AlibabaDtSqlalgoSimilarityQuerysqlsimilarityRequest.SqlSimilarityRequest obj1 = new AlibabaDtSqlalgoSimilarityQuerysqlsimilarityRequest.SqlSimilarityRequest();
obj1.setSqlB("select *,'A' from tablea where ds = '20230402' and col1 = 'A'");
obj1.setTableColumnString("tablea::1##col1##0,2##col2##0,3##col3##0,4##ds##1");
obj1.setSqlA("select *,'B' from tablea where ds = '20230401' and col1 = 'A'");
obj1.setProjectName("data_sec");
req.setSqlSimilarityRequest(obj1);
AlibabaDtSqlalgoSimilarityQuerysqlsimilarityResponse rsp = client.execute(req);
System.out.println(rsp.getBody());

响应示例

  • XML示例
  • JSON示例
<alibaba_dt_sqlalgo_similarity_querysqlsimilarity_response>
    <sql_similarity_result>
        <format_result>{\&quot;SQLB\&quot;:{\&quot;fp\&quot;:\&quot;98609D4539042A0A796AAF7F2EEDFB7E\&quot;,\&quot;fromatSQL\&quot;:\&quot;SELECT &apos;B&apos; AS __col_0, __ts_0.col1 AS col1, __ts_0.col2 AS col2, __ts_0.col3 AS col3, __ts_0.ds AS ds\\nFROM tablea __ts_0\\nWHERE __ts_0.col1 = &apos;A&apos;\\n\\tAND __ts_0.ds = &apos;20230401&apos;\&quot;,\&quot;sfp\&quot;:\&quot;A25432FB40F32D9CE9D20AA3F43F598B\&quot;},\&quot;SQLA\&quot;:{\&quot;fp\&quot;:\&quot;D9A9B21D60068B7A2196DD9B5F9F70F2\&quot;,\&quot;fromatSQL\&quot;:\&quot;SELECT &apos;A&apos; AS __col_0, __ts_0.col1 AS col1, __ts_0.col2 AS col2, __ts_0.col3 AS col3, __ts_0.ds AS ds\\nFROM tablea __ts_0\\nWHERE __ts_0.col1 = &apos;A&apos;\\n\\tAND __ts_0.ds = &apos;20230402&apos;\&quot;,\&quot;sfp\&quot;:\&quot;A25432FB40F32D9CE9D20AA3F43F598B\&quot;}}</format_result>
        <similar_result>SQLA 与 SQLB 去除常量后完全一致</similar_result>
        <error>SQL parse failed: ...</error>
    </sql_similarity_result>
</alibaba_dt_sqlalgo_similarity_querysqlsimilarity_response>

异常示例

  • XML示例
  • JSON示例
<error_response>
    <code>50</code>
    <msg>Remote service error</msg>
    <sub_code>isv.invalid-parameter</sub_code>
    <sub_msg>非法参数</sub_msg>
</error_response>

错误码解释

错误码 错误描述 解决方案

API工具

如何获得此API

FAQ

返回
顶部