Пример #1
0
def get_max_ts(dag, tablename, schedule, **kwargs):
    dataset = tablename.split('.')[1]
    table_name = tablename.split('.')[2]
    max_identifier = config[schedule][tablename][0]
    pg_conn = config[schedule][tablename][1]
    bq_hook = BigQueryHook(bigquery_conn_id='bigquery_default',
                           location='europe-west3',
                           use_legacy_sql=False)
    bqmaxts = bq_hook.get_records(
        sql=
        "select max_value from bqadmin.tablesync_meta where tablename='{}' and datasource_dbconn='{}'"
        .format(dataset + '.' + table_name, pg_conn))
    result_bqmaxts = bqmaxts[0][0]
    print(result_bqmaxts)
    postgres_hook = PostgresHook(postgres_conn_id=pg_conn)
    with open(
            '/home/airflow/gcs/dags/mergeload/maxts_sql/maxts_' + dataset +
            '_' + table_name + '_' + pg_conn + '.sql', 'r') as sqlfile:
        pg_maxts_query = str(sqlfile.read())
    pgmaxts = postgres_hook.get_records(sql=pg_maxts_query.format(
        max_identifier, max_identifier, result_bqmaxts))
    print(pgmaxts[0][0])
    return bqmaxts[0][0], pgmaxts[0][0]