一張天價程序員賬單的故事
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
作者:Yingjun Wu 是的,你沒看錯。不到半分鐘,1 萬美元灰飛煙滅。 背景:一個簡單的查詢——我們原以為是這樣
查詢的具體內容如下: EXPORT DATA OPTIONS ( uri = 'gs://xxxxx/*.json', format = 'JSON', overwrite = true) AS ( SELECT * FROM LIMIT 1000000 ); 這個查詢會從 crypto_solana 數據集的 Instructions 表中導出 1,000,000 行數據(BigQuery 的公共數據集里),以 JSON 格式導出到一個 Google Cloud Storage 的 bucket 里。 賬單來了:三次查詢花了 $9,847.24?! 我們的賬單截圖顯示,我們在 22 秒內“掃描”了 509.89 TB 的數據! 我們的賬單截圖顯示,我們因掃描了 1,576.56 TB 的數據被收了 $9,847.24! 這到底怎么回事?!
我們當時都傻了。 真相:BigQuery 的隱藏計費模型 那到底怎么回事? 我們去問了在 Google 的朋友,結果揭開了這個陷阱: 顯然,GCP 自己心里有數——即便這邏輯完全說不通! 如果你的查詢“碰”到了一個 1 PB 的表,即使你只返回了幾 MB 的數據,BigQuery 也會按你掃描了整個 1 PB 來收費。 這跟其他云數據倉的處理方式完全不一樣。 其他數據倉是怎么處理的? 現代云數據倉(比如 AWS Redshift、Snowflake、Databricks)利用列式存儲和謂詞下推(Predicate Pushdown)等優化技術:
例如,在 Redshift、Snowflake 和 Databricks 中,你執行: SELECT * FROM huge_table LIMIT 100;
而 BigQuery 完全不是這么回事:
舉個例子,執行下面這個查詢: SELECT * FROM huge_table LIMIT 100;
工程師的噩夢 這簡直違反常識——其他云廠商都是按“實際處理的數據”收費,而不是按“引用的總表大小”。但 BigQuery 的賬單,是綁定到你的查詢“碰到”的整個數據集上的,這讓工程師在估算成本時完全抓瞎。 結果是什么?你的云積分分分鐘燒光。很多團隊以為 GCP 的免費額度能撐好幾個月,結果一個糟糕的查詢,幾個小時就燒完了。 云計費:一個赤裸裸的陷阱
這也是為什么很多公司會收到莫名其妙的巨額云賬單——這些定價策略本來就是設計得不透明又容易誤導。 最后的話
這不是一次性的小錯誤。這是 BigQuery 計費模型的一個根本性缺陷。 如果你在跑大規模的數據工作負載,一定要搞清楚自己到底是怎么被收費的——因為云服務的收費方式,遠遠不是你想的那樣。 ?轉自https://juejin.cn/post/7490977437674373155 該文章在 2025/4/9 15:29:58 編輯過 |
關鍵字查詢
相關文章
正在查詢... |