2017-01-03 25 views
0

我有一個ETL流程,它將來自mongo羣集的數據流式傳輸到BigQuery。這通過cron每週運行,並在需要時手動運行。我爲每個客戶都有一個單獨的數據集,並且表結構在它們之間是相同的。BigQuery流數據不在表中

我剛剛運行過程,發現雖然我的所有數據塊都從insertAll api返回了「成功」響應({「kind」:「bigquery#tableDataInsertAllResponse」}),但該表爲空特定數據集。

我以前曾經見過這種情況,但從未能夠重新創建。現在我已經運行了兩次,獲得了相同的結果。我知道我的代碼正在工作,因爲其他數據集已正確填充。

表細節中沒有'流緩衝區',並且運行count(*)查詢返回0響應。我甚至嘗試從查詢中刪除緩存的結果,以強制新鮮 - 但沒有任何幫助。

編輯 - 從我的數據流(我保留時間戳日誌)10分鐘後 - 部分數據現在出現在表中;然而,又過了40分鐘,它看起來並沒有任何新的數據流入。

是否有其他人在流媒體服務中遇到打嗝?

值得一提的是,我的部分流程是將現有表複製到備份表中,刪除原始表並使用最新模式重新創建表。這可能會影響一些特定的邊緣情況下的插入?

回答

2

也許這是發生了什麼事給你:BigQuery table truncation before streaming not working

如果您刪除或創建一個表,你必須等待至少2分鐘,開始在它流數據。

由於您提到所有其他表格都正常工作,並且只有具有刪除過程的表沒有保存數據,因此這可能解釋了您正在觀察的內容。

要解決這個問題,你既可以在deletecreate操作後流數據或可能改變上傳數據(也許它保存到一些CSV文件,然後使用job插入方法上傳策略之前等待的時間長一點數據放入表格中)。

相關問題