将文件从 Cloud Storage 加载到 BigQuery 到单个字符串列

Load file from Cloud Storage to BigQuery to single string column

我们正在使用 Cloud Functions 设计一个新的摄取框架(Cloud Storage -> BigQuery)。但是,我们收到一些文件 (json, csv),这些文件已损坏且无法按原样插入(字段名称错误、缺少列等),甚至不能作为外部表插入。因此,我们希望将每一行作为一个 JSON 字符串提取到一个单元格中,并在我们清理 BigQuery 中的数据时处理这些问题。

有没有办法以本地方式高效地执行此操作并尽可能少地进行处理(这样 Cloud Functions 就不会超时)?我写了一个函数来处理文件并逐行换行,但对于更大的文件,它不是一个选项。我们更愿意继续使用 Cloud Functions 以使其尽可能轻量级。

在这种情况下,我的选择是使用虚拟分隔符提取 CSV,例如 #|。我知道我永远不会拥有这些角色,这就是我选择它们的原因。

这样,模式自动检测仅检测 1 列,并创建单个字符串列 table。

如果你能选择这样的字符,这是最简单的解决方案,但当然没有任何保证(它是损坏的文件,很难提前知道未使用的字符是什么)