我必须交叉加入当前失败的2个相当大的数据集。我想将数据集拆分为逻辑块。我计划使用Python按顺序运行查询,其变量在每次循环运行期间发生变化,例如:
while x <= 100:
#Code to query in BigQuery: [SELECT * FROM table1 CROSS JOIN table2 WHERE table1.field = 'x'] then write the query results to a JSON file or upload directly in BigQuery
x += 1 #X is a counter
看起来单个bigquery查询的响应是一个JSON文件,但我一直在搞清楚如何上传并将其附加到表中。当我尝试在BigQuery中手动上传JSON文件时,它出错了 - 我不完全确定如何格式化它,以便BigQuery正确读取它。
问题: 这是一个很好的方法吗? 2.如何准备JSON文件以便在BigQuery中成功上传? 3.自动执行此操作的最佳方法是什么? (据推测通过API)
答案 0 :(得分:1)
有关在BigQuery中摄取数据的信息,请访问: https://cloud.google.com/bigquery/preparing-data-for-bigquery
但是,我不确定您的方案和问题是如何连接的。为什么需要上传JSON数据才能运行此查询(假设table1和table2已经在BQ中)?
另外,为什么需要执行交叉连接?交叉连接可能非常昂贵,因为如果你交叉连接两个大型表,你的输出将是无法管理的巨大。 BQ中交叉连接的主要用途是通过交叉连接来模拟更复杂的连接条件(例如,<=
),然后立即过滤输出。但即使这样也很昂贵,所以我鼓励你考虑其他方法来计算你想要的答案。