簡體   English   中英

Google BigQuery 中的分區會提高連接性能嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM