[英]Will partitioning in Google BigQuery improve join performance?
我有一個大約有 80 萬行的表(我認為這不是很多)。 它是根據一系列其他表創建的。 然后我將這個表與另一個大約 5M 行的表(使用 python 客戶端)連接起來,但它似乎要花很長時間。 在 NoSQL 和 SQL 世界中,我將創建一個索引。 在 BQ 中,我認為這是一個分區或者我可以創建一個索引。
我正在使用 python 和以下內容創建一個表
query = """
CREATE OR REPLACE TABLE `{table_name}` AS
WITH get_all_affiliate AS (
""".format(table_name=table_name)
和
query += """
) SELECT * from get_all_table
"""
然后
response = client.query(query).result()
我如何輕松地 CAST 並在一個字符串字段上執行一些索引/分區,但可以重鑄為 Integer?
正如@Samuel 在評論中提到的,分區可用於優化 BigQuery 中的查詢。 但是,如果兩個表都需要連接,則無濟於事,因為JOIN
將合並兩個表的所有元素,這與 Partition 的目的相矛盾。 有關更多信息,您可以參考此文檔。
您可以使用下面的字符串轉換為 integer。
Cast(string_column_A as int64) as tempory_column_A
將答案發布為社區 wiki ,以造福於將來可能會遇到此用例的社區。
請隨意編輯此答案以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.