Я запрашиваю набор данных BigQuery, который экспортируется из Firebase с использованием стандартного SQL. Я получаю Cannot read field 'user_properties' of type STRUCT as STRING
всякий раз, когда использую шаблонный запрос с условным _TABLE_SUFFIX
, но работает, когда я не использую шаблонный запрос.
SELECT
_TABLE_SUFFIX AS suffix,
user_properties
FROM
`analytics_<firebase_id>.events_*`
WHERE
_TABLE_SUFFIX = '20191026'
AND
app_info.id = '<my_app_id>'
Получена ошибка Cannot read field 'user_properties' of type STRUCT as STRING
Если я изменю свой запрос на
SELECT
user_properties
FROM
`analytics_<firebase_id>.events_20191026`
WHERE
app_info.id = '<my_app_id>'
Возвращает ожидаемые результаты.
И проверка работоспособности
SELECT
DISTINCT(_TABLE_SUFFIX) AS suffix
FROM
`analytics_<firebase_id>.events_*`
WHERE
_TABLE_SUFFIX = '20191026'
AND
app_info.id = '<my_app_id>'
Возвращает «20191026», как и ожидалось.
Я не могу понять, почему использование подстановочного знака может привести к другому типу user_properties
. Это также случилось со мной раньше, и это сработало, когда я повторил через пару часов. Я очень подозреваю, что это ошибка BigQuery, но их поддержка привела меня сюда.
(причина, по которой я должен использовать _TABLE_SUFFIX, заключается в том, что мне нужно передать дату в качестве параметра. В моем реальном коде это _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(DATE(@run_time), INTERVAL 1 DAY))
для заданий ETL)