使用多字符分隔符将存储在 google 云存储中的数据加载到 BigQuery

Load data stored on google cloud storage with multi character delimiter to BigQuery

我想将包含多个字符分隔符的数据加载到 BigQuery。 BQ 加载命令目前不支持多字符分隔符。它仅支持单个字符分隔符,如'|'、'$'、'~'等

我知道有一种数据流方法可以从这些文件中读取数据并写入 BigQuery。但是我有大量的小文件(每个文件400MB),必须单独写一个table的分区(分区编号在700左右)。这种方法对于数据流来说很慢,因为我目前必须启动一个不同的数据流作业,以便使用 for 循环将每个文件写入一个单独的 table。此方法 运行 超过 24 小时仍未完成。

那么有没有其他方法可以将这些具有多个字符定界符的多个文件加载到 BigQuery 的每个分区?

从数据流的角度来看,您可以通过在每个管道中上传多个文件来简化此操作。在组装管道时,您可以在 main 方法中使用 for 循环,本质上有很多 Read -> Write to BigQuery 步骤。

另请参阅 了解更多信息。

我对这些问题的懒惰方法:不要在数据流中解析,只需将每一行原始发送到 BigQuery(每行一列)。

然后您可以使用 JS UDF 在 BigQuery 内部进行解析。