將GuideWire CDA解釋為三角洲表:作為一家技術公司,Guidewire為全球財產和傷亡保險公司提供了行業平台。通過其保險套件下的不同產品和服務,他們為用戶提供了獲取,處理和解決索賠,維護保單,支持承保和調整過程所需的操作功能。另一方面,Databricks通過其湖屋為用戶提供了分析功能(從基本報告到復雜的ML解決方案)。通過將兩個平台相結合在一起,P&C保險公司現在具有開始將高級分析功能(AI/ML)集成到其核心業務流程中的能力,並使用替代數據(例如天氣數據)豐富了客戶信息,但同樣對Enterprise的關鍵信息進行了協調和報告。規模。
GuideWire通過其云數據訪問產品(CDA)支持數據訪問分析環境。不幸的是,將文件存儲為不同的時間戳和架構Evolution下的單個鑲木文件,這對於最終用戶來說很難處理。與其單獨處理文件,為什麼我們不生成delta log
清單文件以僅在需要時讀取所需的信息,而無需下載,處理和調和復雜的信息?這是該計劃的背後原則。生成的三角洲表將無法實現(數據不會在物理上移動),而是充當指導線數據的淺克隆。
更具體地說,我們將同時(即作為Spark作業)獨立處理所有GuideWire表,其中每個任務都將僅列出Parquet文件和文件夾並相應地生成Delta日誌。從最終用戶的角度來看,GuideWire將看起來像Delta表並進行處理,從而將處理時間從幾天減少到幾秒鐘(因為我們不必通過許多Spark作業下載和處理每個文件)。
由於數據現在位於三角洲湖上(無論是物理化是否實現),因此可以從三角洲湖的所有下游能力中受益,“訂閱”通過自動加載器功能,Delta Live Table(DLT)甚至Delta共享,加速,加速是時候從幾天到幾分鐘洞悉。
由於該模型遵循淺層克隆方法,因此建議僅授予最終用戶的讀取許可,因為生成的三角洲VACCUM
操作可能會導致指南S3存儲桶的數據丟失。我們強烈建議組織不要將此RAW數據集公開給最終用戶,而是創建具有實質性數據的銀色版本。請注意, OPTIMIZE
命令將導致使用優化的鑲木木材文件對最新的Delta快照進行構成現象。僅將相關文件從原始S3到目標表進行物理下載。
import com . databricks . labs . guidewire . Guidewire
val manifestUri = " s3://bucket/key/manifest.json "
val databasePath = " /path/to/delta/database "
Guidewire .index(manifestUri, databasePath)
默認情況下,此命令將以數據增量為單位運行,並在${databasePath}/_checkpoints
下加載我們以前存儲為Delta表的檢查點。如果您需要重新索引全部指南數據,請提供可選的savemode
參數如下
import org . apache . spark . sql . SaveMode
Guidewire .index(manifestUri, databasePath, saveMode = SaveMode . Overwrite )
遵循“淺克隆”模式,將不會存儲導絲文件,而是從可以定義為外部表的三角洲位置引用的。
CREATE DATABASE IF NOT EXISTS guidewire;
CREATE EXTERNAL TABLE IF NOT EXISTS guidewire . policy_holders LOCATION ' /path/to/delta/database/policy_holders ' ;
最後,我們可以在不同的時間戳上查詢GuiderWire數據並訪問其所有不同版本。
SELECT * FROM guidewire . policy_holders
VERSION AS OF 2
mvn clean package -Pshaded
按照Maven標準,添加配置文件shaded
以生成一個獨立的JAR文件,其中包含所有依賴項。該罐子可以相應地安裝在數據鍵環境上。