Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform BigQuery在(似乎)一个非常简单的查询上非常慢_Google Cloud Platform_Google Bigquery_Google Cloud Logging - Fatal编程技术网

Google cloud platform BigQuery在(似乎)一个非常简单的查询上非常慢

Google cloud platform BigQuery在(似乎)一个非常简单的查询上非常慢,google-cloud-platform,google-bigquery,google-cloud-logging,Google Cloud Platform,Google Bigquery,Google Cloud Logging,我们使用GCP日志,这些日志通过日志接收器导出到BigQuery中。 我们没有大量的日志,但每条记录似乎都相当大 使用BigQuery运行简单查询似乎需要花费大量时间。我们想知道这是正常的还是我们做错了什么。。。还有,我们能做些什么来让分析变得更实际一点呢 例如,查询 SELECT FORMAT_DATETIME("%Y-%m-%d %H:%M:%S", DATETIME(timestamp, "Australia/Melbourne")) as Melb_time,

我们使用GCP日志,这些日志通过日志接收器导出到BigQuery中。 我们没有大量的日志,但每条记录似乎都相当大

使用BigQuery运行简单查询似乎需要花费大量时间。我们想知道这是正常的还是我们做错了什么。。。还有,我们能做些什么来让分析变得更实际一点呢

例如,查询

SELECT 
        FORMAT_DATETIME("%Y-%m-%d  %H:%M:%S", DATETIME(timestamp, "Australia/Melbourne")) as Melb_time, 
        jsonPayload.lg.a, 
        jsonPayload.lg.p
FROM `XXX.webapp_usg_logs.webapp_*`
ORDER BY timestamp DESC
LIMIT 100
接受


谢谢大家!

尝试将其添加到查询中:

WHERE _TABLE_SUFFIX > FORMAT_DATE('%Y%m%d',  DATE_SUB(CURRENT_DATE(), INTERVAL 3 DAY))

它将过滤以仅在过去3天内获取带有
表后缀的表,而不是让BigQuery查看可能有多年历史的每个表。

尝试将此添加到查询中:

WHERE _TABLE_SUFFIX > FORMAT_DATE('%Y%m%d',  DATE_SUB(CURRENT_DATE(), INTERVAL 3 DAY))

它将过滤以仅在过去3天内获取带有
TABLE\u后缀的表,而不是让BigQuery查看可能有多年历史的每个表。

在其他支持索引的数据库上,将索引添加到
timestamp
列将有助于查询。谢谢!但是BigQuery似乎不使用索引……像这样查询通配符表会影响性能。这是因为在执行查询之前,需要读取它在glob(
*
)中匹配的每个表的元数据。尝试减少扫描的表格或在
WHERE
子句中使用
\u TABLE\u后缀
。看:是的,谢谢!当我手动指定日期时,它的工作速度要快得多。你知道有没有办法缓存元数据一次,以便以后每次都可以使用它?在其他支持索引的数据库上,在
timestamp
列中添加索引将有助于查询。谢谢!但是BigQuery似乎不使用索引……像这样查询通配符表会影响性能。这是因为在执行查询之前,需要读取它在glob(
*
)中匹配的每个表的元数据。尝试减少扫描的表格或在
WHERE
子句中使用
\u TABLE\u后缀
。看:是的,谢谢!当我手动指定日期时,它的工作速度要快得多。您知道是否有一种方法可以缓存元数据一次,以便以后每次都可以使用它吗?