def run_analyses(hpo_id): """ Run the achilles analyses :param hpo_id: :return: """ commands = _get_run_analysis_commands(hpo_id) for command in commands: logging.debug(' ---- Running `%s`...\n' % command) if sql_wrangle.is_to_temp_table(command): table_id = sql_wrangle.get_temp_table_name(command) query = sql_wrangle.get_temp_table_query(command) insert_query_job_result = bq_utils.query(query, False, table_id) query_job_id = insert_query_job_result['jobReference']['jobId'] incomplete_jobs = bq_utils.wait_on_jobs([query_job_id]) if len(incomplete_jobs) > 0: logging.critical('tempresults doesnt get created in 15 secs') raise RuntimeError('Tempresults taking too long to create') elif sql_wrangle.is_truncate(command): table_id = sql_wrangle.get_truncate_table_name(command) if bq_utils.table_exists(table_id): bq_utils.delete_table(table_id) elif sql_wrangle.is_drop(command): table_id = sql_wrangle.get_drop_table_name(command) if bq_utils.table_exists(table_id): bq_utils.delete_table(table_id) else: bq_utils.query(command)
def run_heel(hpo_id): """ Run heel commands :param hpo_id: string name for the hpo identifier :returns: None :raises RuntimeError: Raised if BigQuery takes longer than 30 seconds to complete a job on a temporary table """ # very long test commands = _get_heel_commands(hpo_id) count = 0 for command in commands: count = count + 1 logging.debug(' ---- running query # {}'.format(count)) logging.debug(' ---- Running `%s`...\n' % command) if sql_wrangle.is_to_temp_table(command): table_id = sql_wrangle.get_temp_table_name(command) query = sql_wrangle.get_temp_table_query(command) insert_query_job_result = bq_utils.query(query, False, table_id) query_job_id = insert_query_job_result['jobReference']['jobId'] incomplete_jobs = bq_utils.wait_on_jobs([query_job_id]) if len(incomplete_jobs) > 0: logging.critical('tempresults doesnt get created in 30 secs') raise RuntimeError('Tempresults taking too long to create') elif sql_wrangle.is_truncate(command): table_id = sql_wrangle.get_truncate_table_name(command) query = 'DELETE FROM %s WHERE TRUE' % table_id bq_utils.query(query) elif sql_wrangle.is_drop(command): table_id = sql_wrangle.get_drop_table_name(command) bq_utils.delete_table(table_id) else: bq_utils.query(command)
def run_heel(hpo_id): # very long test commands = _get_heel_commands(hpo_id) count = 0 for command in commands: count = count + 1 logging.debug(' ---- running query # {}'.format(count)) logging.debug(' ---- Running `%s`...\n' % command) if sql_wrangle.is_to_temp_table(command): table_id = sql_wrangle.get_temp_table_name(command) query = sql_wrangle.get_temp_table_query(command) insert_query_job_result = bq_utils.query(query, False, table_id) query_job_id = insert_query_job_result['jobReference']['jobId'] incomplete_jobs = bq_utils.wait_on_jobs([query_job_id]) if len(incomplete_jobs) > 0: logging.critical('tempresults doesnt get created in 30 secs') raise RuntimeError('Tempresults taking too long to create') elif sql_wrangle.is_truncate(command): table_id = sql_wrangle.get_truncate_table_name(command) query = 'DELETE FROM %s WHERE TRUE' % table_id bq_utils.query(query) elif sql_wrangle.is_drop(command): table_id = sql_wrangle.get_drop_table_name(command) bq_utils.delete_table(table_id) else: bq_utils.query(command) time.sleep(1)