銀層都是高質量,多樣化,和可訪問的數據集。這些可能不符合一個特定的用例,如服務生產報告在低延遲,但他們已經潔淨了,改變了,和策劃,以便數據科學家和分析師可以輕鬆和自信地使用這些表快速執行預處理,探索性分析和工程特性,這樣他們就可以把剩餘時間花在機器學習和洞察力。
最大的生產力殺手這些消費者不僅僅是數據訪問和預處理,但信心他們正在使用的數據的質量。出於這個原因,我們將使用DLT,確保這些數據集符合特定的質量標準,並明確標注數據集。兩個數據消費者和決策者可以使用生成的編目和質量監控,來自的正確使用約束和評論。
- 打開你的管道筆記本和創建一個新的細胞。
- 將下麵的代碼複製到一個新的細胞:
創建流媒體直播表sales_orders_cleaned (約束valid_order_number期望(order_number是不零)在違反下降行)分區通過(order_date)評論“清潔和有效的銷售訂單order_number (s)和分區order_datetime。”TBLPROPERTIES(“質量”=“銀”)作為選擇f.customer_id,f.customer_name,f。number_of_line_items,時間戳(from_unixtime ((投(f.order_datetime作為長))))作為order_datetime,日期(from_unixtime ((投(f.order_datetime作為長))))作為order_date,f。order_number f。ordered_products c。狀態,c。城市,c。朗,c。lat, c。units_purchased, c.loyalty_segment從流(LIVE.sales_orders_raw) f左加入生活。beplay体育app下载地址客戶c在c.customer_id=f.customer_id和c.customer_name=f.customer_name
- 返回到管道“銷售訂單管道”在左邊的導航條,導航到工作選擇“三角洲住表”並選擇管道上一步創建的
- 旁邊的下拉選擇啟動/停止開關,然後選擇“完整的刷新”
約束:約束允許您定義數據質量的期望。他們聲明,解決任何火花過濾謂詞,以及承擔失敗的動作。一個動作可以保留,下降,失敗,或隔離。為更多的細節在這裏看到的。所有的約束都記錄到啟用流線型的質量監控。
Tblproperties:的鍵值對列表可以是三角洲湖屬性,DLT管道屬性,或任意的。任意tblproperties就像標記可用於數據編目。在這個例子中,“質量”:“銀”是一個任意的函數作為一個標簽的屬性。
備注:一個字符串簡要描述表的目的,在未來使用數據編目
黃金數據集:完成與流媒體/連續vs觸發
許多聚合不能執行增量和必須執行完整的再加工,即使新的數據處理增量上遊聚合的銅和銀層。然而,有重要的價值在獲得實時或“快速”尚未聚合的數據。與傳統的λ架構需要一個複雜的雙重基礎設施過程快速和慢速數據,Lakehouse架構允許一個單一的管道實時增量的“快速”的銅和銀層,和一批更新金層(由強一致性保證三角洲湖存儲)。
在實踐中,這種模式可能是具有挑戰性的程序性ETL中需要部署獨立的流和批處理作業和每個單獨維護。為了解決這個問題,DLT允許你選擇管道中的每個數據集是否完整或增量,以最小的更改其他的管道。這使它容易規模管道涉及的銅和銀實時數據與黃金組合聚合層。
泡沫:一些引發聚合可以逐步執行,如計數、min,馬克斯和總和。在一些簡單的情況下,它可能是有意義的黃金數據集的增量。然而,即使是簡單的數量和金額可能會變得效率低下,不建議如果您使用多個分組(例如GROUP BY col1, col2 col3)。
在這種情況下我們的黃金表,我們在創建完整的金銀聚合數據表的表由城市:
- 打開你的管道筆記本和創建一個新的細胞。
- 將下麵的代碼複製到一個新的細胞:
創建生活表sales_order_in_la評論“銷售訂單在洛杉磯。”TBLPROPERTIES(“質量”=“黃金”)作為選擇城市、order_date customer_id、customer_name ordered_products_explode.curr,總和(ordered_products_explode.price)作為銷售,總和(ordered_products_explode.qty)作為qantity,數(ordered_products_explode.id)作為product_count從(選擇的城市,日期(order_datetime)作為order_date、customer_id customer_name,爆炸(ordered_products)作為ordered_products_explode從LIVE.sales_orders_cleaned在哪裏城市=“洛杉磯”)集團通過order_date、城市、customer_id customer_name ordered_products_explode.curr;創建生活表sales_order_in_chicago在芝加哥發表評論“銷售訂單”。TBLPROPERTIES(“質量”=“黃金”)作為選擇城市、order_date customer_id customer_name,ordered_products_explode.curr,總和(ordered_products_explode.price)作為銷售,總和(ordered_products_explode.qty)作為qantity,數(ordered_products_explode.id)作為product_count從(選擇的城市,日期(order_datetime)作為order_date、customer_id customer_name,爆炸(ordered_products)作為ordered_products_explode從LIVE.sales_orders_cleaned在哪裏城市=“芝加哥”)集團通過order_date、城市、customer_id customer_name ordered_products_explode.curr;
- 返回到管道“銷售訂單管道”在左邊的導航條,導航到工作選擇“三角洲住表”並選擇管道上一步創建的
- 旁邊的下拉選擇啟動/停止開關,並選擇“刷新”
連續vs引發管道模式
DLT,而單個數據集可以增量或完成,整個管道可能引發或連續的。當連續管道開始,它將自旋向上的基礎設施和管道繼續攝取新的數據,直到停止手動或通過API。引發管道將消耗源一旦和所有新數據將自動旋轉下的基礎設施。引起管道通常會安排運行在生產中使用一個協調器或磚多任務的工作。
之間切換觸發和連續模式,打開你的管道,並選擇“編輯設置”。連續will be a boolean in the JSON. Setting "continuous": false" is equivalent to setting the pipeline to Triggered mode.
這使您可以靈活地慢慢成熟為連續處理模式沒有顯著重構您的代碼。這是一個常見的模式組織開始實現實時的見解的價值不用花費高額成本的不斷運行的雲基礎設施。經驗豐富的火花工程師可以使用以下矩陣了解DLT的功能:
讀: |
寫: |
連續模式 |
觸發模式 |
完整的 |
完整的 |
再加工一個預定義的時間間隔 |
單再加工(刪除和替換) |
完整的 |
增量 |
不可能的 |
不可能的 |
增量 |
完整的 |
再加工一個預定義的時間間隔 |
再加工物化流的結果 |
增量 |
增量 |
流使用默認觸發 |
Trigger.once()流 |
Productionization
我們已經定義了管道。我們可以總結以下步驟:
- 設置一個目標數據庫方便消費者查詢管線的數據集
- 將管道設置為生產方式
- 如果您選擇使用觸發模式,您可以安排管道使用多任務工作
管道可觀測性和數據質量監控
在磚試試這個筆記本
事件日誌
DLT發出所有管道管道中的日誌一個預定義的三角洲湖表的存儲位置,可用於監測、血統和數據質量報告。可以導入這個通用的日誌分析筆記本檢查事件日誌,或使用dbutils訪問三角洲表{{你的存儲位置}}/係統/事件。
大多數有用的信息在日誌表的“詳細信息”欄。這裏有不同類型的行為,將導致DLT發出一個日誌,和一些相關的領域內的事件,你會發現在“細節”:
- user_action:事件發生時采取行動就像創建管道
- flow_definition:事件發生時管道部署或更新,並有血統,模式和執行計劃的信息
- output_dataset和input_datasets——輸出表/視圖及其上遊表(s) /視圖(s)
- flow_type——這是一個完整的或附加流
- explain_text——引發解釋計劃
- flow_progress:事件發生時數據流開始跑步或者結束處理一批數據
- 指標——目前包含num_output_rows
- data_quality -包含一個數組的數據質量規則的結果這個特定的數據集
- dropped_records
- 預期
- 名稱、數據集、passed_records failed_records
數據質量監控(需要磚SQL)
因為DLT日誌公開為一個三角洲表,和日誌包含數據預期指標,很容易生成報告監測數據質量與BI工具的選擇。我們建議使用磚的SQL因為它是與三角洲和磚平台緊密集成,提供極快的查詢速度通過易於管理計算端點。Beplay体育安卓版本