繁体   English   中英

使用 Spark BigQuery 连接器查询 BigQuery 视图时未启用缓存

[英]Cache not enabled when querying BigQuery view using Spark BigQuery connector

我正在使用 Spark BigQuery 连接器从 Dataproc 集群查询表和视图,我看到在请求视图时未使用缓存,连接器为每个读取的视图创建一个新的临时表:

df = spark.read.format('bigquery').option('table', view_name).option('viewsEnabled', 'true').load()

当我从表中读取时不是这样,使用了这里的缓存:

df = spark.read.format('bigquery').option('table', table).load()

谢谢

如果连接器创建了一个新的临时表,这意味着您没有该表的缓存结果,因为您没有对其运行任何查询(因为它是新的并且是在那个时候创建的),或者它是一个使用可能属于以下第 3 点的情况。

但是,在以下异常列表之前和之外已经创建的表或查询的外部表都可以

查询缓存的例外情况

不缓存查询结果:

  1. 在作业配置中指定目标表时,Cloud Console、bq 命令行工具或 API
  2. 如果任何引用的表或逻辑视图自结果先前缓存后发生更改
  3. 当查询引用的任何表最近收到流式插入(流式缓冲区附加到表)时,即使没有新行到达
  4. 如果查询使用非确定性函数; 例如,CURRENT_TIMESTAMP() 和 NOW() 等日期和时间函数以及 CURRENT_USER() 等其他函数会根据执行查询的时间返回不同的值
  5. 如果您使用通配符查询多个表
  6. 如果缓存的结果已经过期; 典型的缓存生命周期为 24 小时,但缓存的结果是尽力而为的,可能会更快失效
  7. 如果查询针对外部数据源运行

引用自https://cloud.google.com/bigquery/docs/cached-results

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM