我創建了一個筆記本,使用自動裝卸機加載數據從存儲並將它附加到一個青銅表在第一個單元格,這沒問題,自動裝卸機拿起新數據到來時(筆記本跑使用工作)。
下麵同樣的筆記本,一些細胞,曆史表查詢API的青銅表用於識別新的銅表中的數據合並成一個銀色的表。筆記本使用SQL嚴格(即不使用foreachbatch和曆史查詢一個或多個Autoloaderbatch考慮)。我們注意到在某些情況下(例如,通過一個視圖更新銀,大量的轉換發生)的時間更新底層三角洲表不允許更新銀表中的數據攝入後同樣的筆記本;換句話說,盡管新數據添加在青銅,運行一個插入到銀馬上顯示沒有數據了。但是如果我們手動添加延遲(對於某些表,1分鍾是不夠的),數據有好銀。
我的問題是,它是由設計的時機執行單元的工作並不能反映存儲在後台發生了什麼?如果是,它記錄嗎?
我們知道流表和已經使用dlt在其他筆記本電腦,但是我想有一些清晰的。
嗨@adriennn,你的行為與分布式計算的本質和最終一致性模型。當使用三角洲湖與自動裝卸機,數據分布在多個節點上擴展和更新這些節點。然而,由於網絡延遲和更新所有節點所花費的時間,可能會有延遲之前所有節點的反映最新的狀態數據。這是沒有明確記載,但它是一個著名的分布式係統的特點。攝入數據之間在你的情況下,延遲到銅表和可用性的數據查詢和進一步處理(如合並到銀表)體現這一特點。
處理這件事,你可能會考慮以下:
1。引入延遲或重試機製數據攝入後在你的筆記本和之前查詢的新數據。這將確保所有節點更新最新數據再查詢。
2。使用三角洲湖的內置優化
命令小文件到大的緊湊,加速查詢。然而,要注意優化
它是一個資源密集型操作,應該明智地使用。
3所示。使用磚自動裝卸機與達美住表(dlt),您可以利用其內置的處理模式演化機製和監控通過指標在事件日誌中。
請注意的時機執行單元的工作並不一定反映在存儲在後台發生了什麼。
來源:
(文檔:etl-quick-start) (https://docs.m.eheci.com/getting-started/etl-quick-start.html)
(文檔:指數)(https://docs.m.eheci.com/ingestion/index.html)
(文檔:生產)(https://docs.m.eheci.com/ingestion/auto-loader/production.html)
嗨@adriennn,你的行為與分布式計算的本質和最終一致性模型。當使用三角洲湖與自動裝卸機,數據分布在多個節點上擴展和更新這些節點。然而,由於網絡延遲和更新所有節點所花費的時間,可能會有延遲之前所有節點的反映最新的狀態數據。這是沒有明確記載,但它是一個著名的分布式係統的特點。攝入數據之間在你的情況下,延遲到銅表和可用性的數據查詢和進一步處理(如合並到銀表)體現這一特點。
處理這件事,你可能會考慮以下:
1。引入延遲或重試機製數據攝入後在你的筆記本和之前查詢的新數據。這將確保所有節點更新最新數據再查詢。
2。使用三角洲湖的內置優化
命令小文件到大的緊湊,加速查詢。然而,要注意優化
它是一個資源密集型操作,應該明智地使用。
3所示。使用磚自動裝卸機與達美住表(dlt),您可以利用其內置的處理模式演化機製和監控通過指標在事件日誌中。
請注意的時機執行單元的工作並不一定反映在存儲在後台發生了什麼。
來源:
(文檔:etl-quick-start) (https://docs.m.eheci.com/getting-started/etl-quick-start.html)
(文檔:指數)(https://docs.m.eheci.com/ingestion/index.html)
(文檔:生產)(https://docs.m.eheci.com/ingestion/auto-loader/production.html)