BigQuery加入类似的键

时间:2015-11-11 12:03:59

标签: google-bigquery

我的密钥在两个表中都可能略有变化,因为它们都是通过自由文本独立输入的。任何人眼都会发现它们是相同的,但是这些表格太大而无法为每种类型的不匹配创建正则表达式规则。

例如,这些应匹配:
This Is Key One This is Key one
Subject:the Description Subject: the Description
I am key two! I am key two

如何创建此类查询? (如果在BQ中甚至可能)

2 个答案:

答案 0 :(得分:3)

使用用户定义函数作为Zig建议的另一种方法是使用各种BigQuery string functions来清理数据。

无论您使用何种方法,您都需要在加入之前在子查询中执行此操作,或者您必须在查询之前执行此操作作为初步步骤。 BigQuery目前只支持连接谓词,它是相等比较的连接(即a.key1 = b.key1和a.key2 = b.key2等)。

答案 1 :(得分:1)

首先,您需要确定您的密钥可能相似的每种可能方式。例如,一个是忽略大小写,另一个是删除特殊字符,如"!"。你可以创建一个用户定义的函数来处理所有这些情况,以便"清理"或者"标准化"钥匙。

使用自定义函数和干净表上的查询创建一个新的干净表(并且在从那时开始添加更多行之前始终清理键)

https://cloud.google.com/bigquery/user-defined-functions