利用job提升馬哈魚資料血緣分析效率

一、Job基本知識

前面文章中已介紹馬哈魚的基本功能,其中一個是job,job其實是一個任務集合處理的概念,就是讓使用者通過job,可以一次遞交所有需要處理的 SQL,SQLFlow處理這些 SQL,把所有的資料血緣都分析出來。從使用者角度,job包含job list和The Latest Job。其中,job list是當前使用者所有的job。而The Latest Job是所有使用者job中最新的job列表。本文向您重點介紹job的作用及用法。

job是馬哈魚收集各種資料來源的資料後分析的任務,現在馬哈魚平臺上支援三種方式: 1、上傳檔案(支援SQL指令碼檔案,Spark的python指令碼檔案和CSV檔案,支援的CSV檔案的文件;

2、從資料庫中收集metadata,其實就是收集表,儲存過程,檢視的DDL,metadata結構文件:

3、上傳檔案並從資料庫中收集metadata,同時也從資料庫中收集metadata的目的是為了解決檔案中SQL指令碼分析過程中產生的Orphan Column的異常(詳情參閱《利用元資料提高 SQLFlow 血緣分析結果準確率》)。

二、如何使用Job進行血緣分析

job是一個與使用者緊密關聯的功能,如果您以訪客身份登入馬哈魚官網https://sqlflow.gudusoft.com/後,在沒有登入時,您無法正常使用job功能,其中job list列表為空,The Latest Job需要登入後才能進行檢視。如下圖:

對任何使用者,馬哈魚官方提供一個示例job作業,幫助使用者快速熟悉job的使用。

1、Job支援的檔案格式

  • 單個 SQL 檔案。

  • 多個 SQL 檔案,可以包含子目錄,打包成zip檔案再上傳。

  • 從 git server 上獲取的所有 SQL 檔案

  • 從資料庫中獲取的,包含元資料和DDL語句的,專門格式的 JSON檔案。

  • 包含 SQL 語句的 CSV 檔案

  • 其它 grabit 工具可以事先處理檔案,抽取出 SQL 提交給 SQLFlow 來分析血緣。

2、建立一個新的job

客戶在建立job前,必須先進行sql source選擇,不同的sql source對應填充項是不同的。馬哈魚job目前支援三種sql source,分別是:

  • upload file

    僅上傳SQL檔案,馬哈魚會根據上傳的SQL語句進行解析所有溯源關係,它必須填寫dbvendor、jobname、file等基本資訊,如果是csv檔案,還需要填寫database、schema、objectType、objectCode等在csv中的對應列名稱。如下圖:

  • from database

    客戶需要填寫使用者資料庫連線資訊,通過直連客戶資料庫,馬哈魚將從資料庫中直接獲取物件定義及它們間的邏輯關係,該型別job將會根據客戶選擇的資料庫所有或特定schema下所有的物件血緣關係進行分析。

    通過下圖中advanced選項,客戶可以限制馬哈魚job的分析範圍,如果不選擇預設分析當前連線資料庫中所有的物件間的血緣關係。

  • upload file+database metadata

    該方式是將上述兩種方式進行整合,更加靈活,客戶可以通過連線到資料庫方式對任何自定義語句集合進行集中分析,該方式靈活且能避免較多因sql語句書寫不規範帶來的問題。

3、使用已有的job

你設計一下,看看如何為所有的使用者,包含standard 使用者預設一個sample job 目的是為了可以讓使用者首次登入後馬上可以體驗job的功能,可以檢視該sample job的data lineage

job

點選upload按鈕,可以上傳檔案,建立一個job。當job處理完成後,可以點選view lineage,開啟處理結果。

當客戶登入到馬哈魚後,在左側功能導航欄中有兩個job入口,分別是job list和The Latest Job,其中,job list顯示該使用者下所有的job,而The Latest Job會使用新視窗自動載入最新的一個job的分析結果。

三、參考

馬哈魚資料血緣分析器: https://sqlflow.gudusoft.com

馬哈魚資料血緣分析器中文網站: https://www.sqlflow.cn