我有一个关于 GBQ 以及一次查找大量行的可能性的问题。我的 GBQ 表包含 3 亿行和 50 列(例如品牌、型号、颜色)。另外,我有一个 70K 行的 CSV 文件,仅包含 brand 和 model。我需要使用 GBQ 表来丰富这个 CSV 文件。像这样的长查询:
SELECT * FROM table_name WHERE ... or ... or ...
对我没有帮助,因为GBQ无法处理这么长的查询(只能处理2500个CSV行)。是否可以重新设计查找引擎(丰富引擎),使其正常工作并从 CSV 中为我的 70k 行中的每一行找到 50 列? Left Join
也没有帮助,因为它处理的时间太长了。谢谢!
附注现在我正在使用 Python 引擎通过将大请求分离为大量小请求来丰富 CSV 文件。
首先,您要将 70k 行 CSV 作为表格上传到 BigQuery。我们称其为
brand_model
。接下来您想要执行 LEFT JOIN 来丰富数据。
SELECT
full_table.*,
FROM
your_dataset.brand_model
LEFT JOIN
your_dataset.full_table
ON
brand_model.brand = full_table.brand
AND brand_model.model = full_table.model
这应该返回 70k 行,其中选择了 full_table
中的所有列(假设在both 表中 - 对于品牌和型号的每种组合只有一行)。 返回也不应该花费很长时间(如果需要,可以通过对品牌和型号的完整表进行聚类来加快速度)。