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