SQLFlow是一個可視化的在線處理SQL對象依賴關系的工具,只需要上傳你的SQL腳本,它可以自動分析SQL里的數據對象,包括database、schema、table、view、column、procedure、function、trigger等等,並且能夠分析這些數據對象之間的依賴關系,並將這些依賴關系可視化展現出來。本文將描述SQLFlow的高階模式——Job任務
什么是Job任務
SQLFlow的Job任務,可以支持多文件,數據庫連接等復雜的方式對數據庫或者SQL文件進行數據對象依賴關系分析,並且可以查看Job歷史記錄。
Job任務包含三種分析模式:
1. SQL文件靜態分析,支持多個SQL文件,以多文件或者zip包的方式上傳到服務端分析
2. 通過數據庫連接獲取元數據,進而分析數據庫各種表、視圖、存儲過程、Function、Trigger等數據對象直接的依賴關系
3. SQL文件+數據庫連接獲取元數據方式分析,能提供更精准的SQL依賴關系分析
SQL文件靜態分析
該模式和常規的SQL分析類似,屬於SQL靜態分析,但是用戶也可以提供數據庫DDL SQL,sqlflow 會通過掃描ddl語句,構建數據庫元數據信息,進而能夠提供分析的准確性。另外普通的SQL分析只支持300KB大小的sql分析,並且有超時限制,而Job sql文件分析,則沒有這個限制。
通過數據庫連接分析數據庫數據對象依賴關系
該模式可以通過JDBC連接數據庫,獲取數據庫的數據對象信息,以及視圖、存儲過程、方法、觸發器等數據對象的源碼,並對這些數據對象進行依賴關系分析,目前已支持的數據庫包括:Oracle、Mysql、SQLServer、Progresql、Redshift、Greenplum、Snowflake、Teradata、Netezza等。
數據庫連接+SQL文件分析
由於提供了數據庫連接,SQLFlow可以獲得完整的數據庫元數據信息,進而能夠更加准確的對SQL進行分析,這對多表Join查詢分析非常有幫助,能夠准確識別字段所屬表
需要說明的是,數據庫連接涉及到用戶數據安全,需要用戶授權,並且數據庫密碼傳輸是通過RSA進行加密的,確保傳輸過程的安全性。
SQLFlow官方入口: https://sqlflow.gudusoft.com