事件日誌監控管道與三角洲生活表
創建和維護一個事件日誌每三角洲住表管道。事件日誌包含所有相關的信息管道,包括審計日誌,數據質量檢查,管道的進步,和數據血統。您可以使用事件日誌跟蹤、了解和監控您的數據管道。
每個管道的事件日誌存儲在一個三角洲DBFS表。您可以查看事件日誌條目在三角洲地區的生活表用戶界麵三角洲住表API,或者直接查詢δ表。本文主要關注查詢δ表。
的例如筆記本電腦包括本文中討論的查詢,可以用來探索三角洲生活事件日誌表。
需求
本文中的示例使用JSON SQL函數可以在磚運行時8.1或更高版本。
事件日誌位置
事件日誌存儲在/係統/事件
下存儲
的位置。例如,如果您已經配置了管道存儲
設置為/用戶/用戶名/數據
事件日誌存儲在/用戶/用戶名/數據/係統/事件
在DBFS路徑。
如果你沒有配置存儲
設置,默認的事件日誌位置/管道/ < pipeline-id > /係統/事件
在DBFS。例如,如果你的ID管道91年de5e48 - 35 - ed - 11 - ec - 8 d3d - 0242 ac130003
,存儲位置/管道/ 91 de5e48 - 35 - ed - 11 - ec - 8 d3d - 0242 ac130003 /係統/事件
。
事件日誌模式
下表描述了事件日誌模式。這些字段包含JSON文檔要求解析執行一些查詢。例如,分析數據質量指標要求解析字段細節
JSON文檔。本文中的示例演示使用Python函數執行所需的解析。
場 |
描述 |
---|---|
id |
管道的惟一標識符。 |
序列 |
一個JSON文檔,其中包含元數據來識別和秩序的事件。 |
起源 |
一個JSON文檔,其中包含元數據的起源事件,例如,雲提供商,地區,user_id或pipeline_id。 |
時間戳 |
時間事件被記錄。 |
消息 |
一個人類可讀的描述事件的消息。 |
水平 |
事件類型,例如,信息、警告、錯誤,或指標。 |
錯誤 |
如果一個錯誤發生,細節描述錯誤。 |
細節 |
一個JSON文檔,其中包含結構化事件的細節。這個主要用於分析事件。 |
event_type |
事件類型。 |
maturity_level |
穩定的事件模式。可能的值是:
|
事件日誌查詢
你可以創建一個視圖來簡化查詢事件日誌。下麵的示例創建一個視圖event_log_view
。這種觀點是用於查詢事件日誌記錄下麵的例子:
event_log=火花。讀。格式(“δ”)。負載(event_log_path)event_log。createOrReplaceTempView(“event_log_raw”)
取代event_log_path
與事件日誌位置。
每個管道運行的實例稱為一個更新。一些下麵的查詢中提取信息的最新更新。運行以下命令找到最近的更新和保存它的標識符latest_update_id
變量:
latest_update_id=火花。sql(“選擇起源。update_id從event_log_raw在哪裏event_type=“create_update”ORDER BY timestamp DESC LIMIT 1")。收集()(0]。update_id火花。相依。集(“latest_update.id”,latest_update_id)
審計日誌記錄
您可以使用事件日誌審計事件,例如,用戶操作。事件包含的信息用戶操作事件類型user_action
。信息存儲在行動user_action
對象細節
字段。使用以下查詢構造一個審計日誌的用戶事件:
選擇時間戳,細節:user_action:行動,細節:user_action:user_name從event_log_raw在哪裏event_type=“user_action”
時間戳 |
行動 |
user_name |
|
---|---|---|---|
1 |
2021 - 05 - 20 - t19:36:03.517 + 0000 |
開始 |
|
2 |
2021 - 05 - 20 - t19:35:59.913 + 0000 |
創建 |
|
3 |
2021 - 05 - 27 - t00:35:51.971 + 0000 |
開始 |
|
血統
你可以看到你的管道圖的可視化表示δ生活表的用戶界麵。您也可以通過編程提取這些信息來執行任務,比如生成報告合規或整個組織跟蹤數據依賴關係。事件包含血統信息事件類型flow_definition
。信息存儲在譜係flow_definition
對象細節
字段。中的字段flow_definition
對象包含必要的信息來推斷數據集之間的關係:
選擇細節:flow_definition。output_dataset,細節:flow_definition。input_datasets從event_log_raw在哪裏event_type=“flow_definition”和起源。update_id=“$ {latest_update.id}”
output_dataset |
input_datasets |
|
---|---|---|
1 |
beplay体育app下载地址 |
零 |
2 |
sales_orders_raw |
零 |
3 |
sales_orders_cleaned |
(“beplay体育app下载地址客戶”、“sales_orders_raw”) |
4 |
sales_order_in_la |
[" sales_orders_cleaned "] |
數據質量
事件日誌捕捉數據質量指標的基礎上預期管道中定義。事件包含的信息數據質量事件類型flow_progress
。當一個期望上定義一個數據集,數據質量度量存儲在字段的細節flow_progress.data_quality.expectations
對象。下麵的示例查詢的最後一根輸油管之後的數據質量標準更新:
選擇row_expectations。數據集作為數據集,row_expectations。的名字作為期望,總和(row_expectations。passed_records)作為passing_records,總和(row_expectations。failed_records)作為failing_records從(選擇爆炸(from_json(細節:flow_progress:data_quality:預期,“數組< struct <名稱:字符串,數據集:字符串,passed_records: int, failed_records: int > >”))row_expectations從event_log_raw在哪裏event_type=“flow_progress”和起源。update_id=“$ {latest_update.id}”)集團通過row_expectations。數據集,row_expectations。的名字
數據集 |
期望 |
passing_records |
failing_records |
|
---|---|---|---|---|
1 |
sales_orders_cleaned |
valid_order_number |
4083年 |
0 |
積壓指標
您可以使用事件日誌查詢積壓指標。事件包含訂單信息指標的事件類型flow_progress
。信息存儲在積壓指標flow_progress.metrics.backlog_bytes
中的對象細節
字段。下麵的示例查詢積壓指標在過去的管道更新:
選擇時間戳,雙(細節:flow_progress。指標。backlog_bytes)作為待辦事項列表從event_log_raw在哪裏event_type=“flow_progress”和起源。update_id=“$ {latest_update.id}”
請注意
積壓指標可能不是可根據管道的數據源類型和磚的運行時版本。
磚增強的自動定量的事件
事件日誌捕捉集群會自動啟用增強的自動定量時管道。事件包含的信息增強的自動定量事件類型自動定量
。信息存儲在集群調整請求自動定量
對象。下麵的示例查詢集群增強的自動定量調整請求過去管道更新:
選擇時間戳,雙(情況下當細節:自動定量。狀態=“調整”然後細節:自動定量。requested_num_executors其他的零結束)作為starting_num_executors,雙(情況下當細節:自動定量。狀態=“成功”然後細節:自動定量。requested_num_executors其他的零結束)作為succeeded_num_executors,雙(情況下當細節:自動定量。狀態=“PARTIALLY_SUCCEEDED”然後細節:自動定量。requested_num_executors其他的零結束)作為partially_succeeded_num_executors,雙(情況下當細節:自動定量。狀態=“失敗”然後細節:自動定量。requested_num_executors其他的零結束)作為failed_num_executors從event_log_raw在哪裏event_type=自動定量的和起源。update_id=“$ {latest_update.id}”
運行時信息
你可以查看管道運行時信息更新,例如,磚的運行時版本的更新:
選擇細節:create_update:runtime_version:dbr_version從event_log_raw在哪裏event_type=“create_update”
dbr_version |
|
---|---|
1 |
11.0 |