在數據倉庫報表開發時,有的報表依賴的表多,雖然在海豚調度任務上是跑成功,但實際上沒有跑出數據來。開發人員負責的任務和表越來越多,每天去手動檢查費時費力,不去理睬默認是成功的,等到業務或產品發現問題時,又給人一種不專業不負責的感覺。
比較好的方式是用代碼進行自動巡檢,由于項目現在是用海豚調度器,為了統一及利用海豚調度器的失敗通知,下面用海豚調度器來實現自動監測報表是否跑出數據來。
由于海豚調度器是分布式的,后面不但要監測mysql、還要監測hive或hbase,但pyspark可以方便來訪問這些數據庫,同時不用在不同機器額外安裝軟件。
1、編寫查看mysql的包按日期或月份是否有數據的腳本
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
import sys# 創建SparkSession
spark = SparkSession.builder \.appName("Database Query") \.getOrCreate()# 數據庫連接信息
DB_HOST = 'your_db_host'
DB_PORT = 3306 # MySQL默認端口號
DB_NAME = 'your_db_name'
DB_USER = 'your_db_user'
DB_PASSWORD = 'your_db_password'# 檢查的日期和月份
DATE_TO_CHECK = '2024-05-22'
MONTH_TO_CHECK = '202404'# 表名和相應的SQL查詢語句
TABLE_QUERIES = {'test_measu