我們使用Looker(儀表板/報表解決方案)在BigQuery中創建持久派生表。就bigquery而言,這些都是普通表,但命名是按照標準(它創建基於DB + SQL的散列),並相應地命名錶。這些表格通過每天在計劃時間內查看而生成。 BigQuery中的表名如下所示。當查詢使用通配符查詢時,Bigquery無法從表中返回適當的數據
table_id
LR_Z504ZN0UK2AQH8N2DOJDC_AGG__table1
LR_Z5321I8L284XXY1KII4TH_MART__table2
LR_Z53WLHYCZO32VK3FWRS2D_JND__table3
如果我通過顯式名稱在BQ中查詢結果表,那麼結果按預期返回。
select * from `looker_scratch.LR_Z53WLHYCZO32VK3FWRS2D_JND__table3`
查看器在查詢/作業更改後重新生成表時,更改表名中的哈希值。因此,我想用通配表查詢創建一個視圖,以使表名中的更改對外界透明。
但下面的查詢總是失敗。
SELECT *
FROM \`looker_scratch.LR_*\`
where _table_suffix like '%JND__table3'
我要麼得到一個完全隨機的架構與空值或錯誤,如:
Error: Cannot read field 'reportDate' of type DATE as TIMESTAMP_MICROS
沒有爭食表後綴,我已經使用的所有類型的正則表達式檢查(低,含有, etc)
這是因爲表名中包含哈希值而發生這種情況嗎?我已經在其他數據集上運行了多個測試,並且絕對沒有問題,我們已經很長時間運行了通配符表查詢,並且沒有遇到任何問題。
請讓我知道您的想法。
感謝Mikhail,現在我明白爲什麼查詢失敗了。 我認爲它足夠聰明,可以根據table_suffix匹配查找基礎表。 –