#! /usr/bin/env python3 import snowflake.connector import sys user = "" password = "" account = "" warehouse = "" database = "" sql_queries = { "V_LINKFIRE_RAW_DATA": { "src_table": "select count(*) as tbl from DELPHI_EXPLORATION.APPS_ETL.V_LINKFIRE_RAW_DATA where LINKFIRE_LINK_ID is not null and event_type is not null", "dst_table": "select sum(EVENT_COUNT) from DELPHI_LINKFIRE.LINKFIRE.FACT_EVENT_FUNNEL_DAILY" }, "LINKFIRE_IMPORT_LOG": { "src_table": "select count(*) from DELPHI_LINKFIRE.SYS.LINKFIRE_IMPORT_LOG where datediff(day, IMPORT_REPORTS_TIMESTAMP, current_date()) <= 2" } } ### get query data in dictionary format def snowflake_fetch_data(sql_query): ctx = snowflake.connector.connect( user=user, password=password, account=account, warehouse=warehouse, database=database ) cs = ctx.cursor(snowflake.connector.DictCursor) try: cs.execute(sql_query) result_dict = cs.fetchall() finally: cs.close() ctx.close() return result_dict # check V_LINKFIRE_RAW_DATA def v_link_raw_data(): result = "" src_table_dict = snowflake_fetch_data(sql_queries['V_LINKFIRE_RAW_DATA']['src_table']) dst_table_dict = snowflake_fetch_data(sql_queries['V_LINKFIRE_RAW_DATA']['dst_table']) src_table_int = int(list(src_table_dict[0].values())[0]) dst_table_int = int(list(dst_table_dict[0].values())[0]) if src_table_int != dst_table_int: result = f"src_table: {src_table_int}, dst_table: {dst_table_int}" return result # check LINKFIRE_IMPORT_LOG def linkfire_import_log(): result = "" src_table_dict = snowflake_fetch_data(sql_queries['LINKFIRE_IMPORT_LOG']['src_table']) src_table_int = int(list(src_table_dict[0].values())[0]) if src_table_int < 1: result = f"src_table: {src_table_int}" return result if __name__ == '__main__': if len(sys.argv) > 1: arg = str(sys.argv[1]) if arg == "V_LINKFIRE_RAW_DATA": print(v_link_raw_data()) elif arg == "LINKFIRE_IMPORT_LOG": print(linkfire_import_log()) else: print("wrong check type") else: print("no arguments were given")