in lambda_run_redshift_script.py [0:0]
def run_sql(redshift_host, redshift_db, redshift_user, redshift_iam_role, script_s3_path, with_event=True,
run_type='ASYNC'):
cluster_identifier = redshift_host.split('.')[0]
script = get_config_from_s3(script_s3_path).format(redshift_iam_role)
res = boto3.client("redshift-data").execute_statement(Database=redshift_db, DbUser=redshift_user, Sql=script,
ClusterIdentifier=cluster_identifier, WithEvent=with_event)
query_id = res["Id"]
statuses = ["STARTED", "FAILED", "FINISHED"] if run_type == 'ASYNC' else ["FAILED", "FINISHED"]
done = False
while not done:
status = sql_status(query_id)
if status in statuses:
print(query_id + ":" + status)
break
return query_id