Redshift:有哪些计算模糊字符串相似度/字符串编辑距离的方法?

5
1个回答

7
Redshift基于极为陈旧(不再受支持)的Postgres 8.0版本,因此它们在多年间已经有了很大的分歧。目前开发版的Postgres是9.4,而Postgres的8.x和9.x版本在9.0及以上版本中有一些重大差异和补充。 levenshtein函数是你上面链接的fuzzystrmatch模块的一部分,该模块是在Postgres 8.3中引入的,这可能就是为什么它没有被包含在Redshift中的原因(并且显然此后也没有被添加)。
通常情况下,我会建议您定义一个自定义的PL/pgSQL函数来实现Levenshtein Distance算法,但根据Redshift docUser-defined functions and stored proceduresPostgres的许多主要功能之一,Redshift不支持,所以我认为在这方面,您可能会不幸地失去机会。
根据您的要求,您可以使用LIKE来实现类似的结果。有关更多信息,请参见此SO answer(请注意,该答案中的某些替代建议,例如full text也不受Redshift支持)。 更新,2016-04-25 自2014年10月我第一次回答这个问题以来,似乎已经增加了创建基于Python用户定义函数(UDF)的功能。这不像内联创建自定义Postgres函数那么理想(文档列出了各种警告),但应该允许在Redshift查询的上下文中实现Levenshtein距离算法并进行处理。 Apache Hive中的UDF是一个数据仓库项目,用于Hadoop生态系统,以类似的方式允许用户定义函数(JavaPython基础)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接