BigQuery 加入相似的键

BigQuery join on similar keys

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

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

如何创建这样的查询? (如果在 BQ 中甚至可能的话)

首先,您需要确定密钥相似的每一种可能方式。例如,一个是忽略大小写,另一个是删除特殊字符,如“!”。您可以制作一个用户定义的函数来处理所有此类情况 "clean" 或 "standarize" 键。

使用自定义函数创建一个新的清理 table 并在清理 table 上查询(并且从那时起在附加更多行之前始终清理键)

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

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

但是,无论您使用什么方法,您都需要在联接之前在子查询中执行此操作,或者您必须在查询之前将其作为预备步骤执行。 BigQuery 目前仅支持连接谓词,它们是相等比较的连词(即 a.key1 = b.key1 AND a.key2 = b.key2 等)。