Я пытался оптимизировать запрос BigQuery, который использую для поиска в журналах приложений AppEngine (автоматически экспортируется в BigQuery через Google Cloud Logging), но я получил ошибку, которую не понимаю.
SELECT
protoPayload.requestId,
protoPayload.line.logMessage
FROM (
SELECT
protoPayload.requestId AS matchingRequestId
FROM
TABLE_DATE_RANGE(MyProject_Logs.appengine_googleapis_com_request_log_, DATE_ADD(CURRENT_TIMESTAMP(), -1, 'HOUR'), CURRENT_TIMESTAMP())
WHERE
protoPayload.resource CONTAINS '/url'
AND protoPayload.line.logMessage CONTAINS 'criteria'
LIMIT 50)
WHERE
protoPayload.requestId = matchingRequestId
приводит к
Query Failed
Error: Field 'protoPayload.requestId' not found.
Job ID: myProject:job_DZpCc0u52LBFh8DFL0nDCsizo8o
Эта ошибка не имеет для меня смысла, потому что, когда я пытаюсь выполнить только подзапрос, который также использует поле protoPayload.requestId
, он работает нормально.
Как примечание, это ТАК лучше отвечает на то, чего я пытаюсь достичь, но мне все еще любопытно, что вызывает ошибку в мой запрос.