Example #1
0
def main():
    """Main function
    """
    parser = argparse.ArgumentParser()

    parser.add_argument('--table', dest='table', required=True)
    parser.add_argument('--sns_topic_arn', dest='sns_topic_arn', default=None)
    parser.add_argument('--test_name',
                        dest='test_name',
                        default="Check Primary Key")
    parser.add_argument('--log_to_s3', action='store_true', default=False)
    parser.add_argument('--path_suffix', dest='path_suffix', default=None)

    args = parser.parse_args()

    connection = redshift_connection()
    table = Table(SqlScript(args.table))
    result = pdsql.read_sql(table.select_duplicates_script().sql(), connection)
    check = PrimaryKeyCheck(len(result),
                            name=args.test_name,
                            sns_topic_arn=args.sns_topic_arn)
    check.publish(args.log_to_s3,
                  table=table.full_name,
                  path_suffix=args.path_suffix)
    connection.close()
def primary_key_check():
    parser = argparse.ArgumentParser()

    parser.add_argument('--table', dest='table', required=True)
    parser.add_argument('--sns_topic_arn', dest='sns_topic_arn', default=None)
    parser.add_argument('--test_name', dest='test_name',
                        default="Check Primary Key")
    parser.add_argument('--log_to_s3', action='store_true', default=False)
    parser.add_argument('--path_suffix', dest='path_suffix', default=None)

    args = parser.parse_args()

    connection = redshift_connection()
    table = Table(SqlScript(args.table))
    result = pdsql.read_sql(table.select_duplicates_script().sql(), connection)
    check = PrimaryKeyCheck(len(result), name=args.test_name,
                            sns_topic_arn=args.sns_topic_arn)
    check.publish(args.log_to_s3, table=table.full_name,
                  path_suffix=args.path_suffix)
    connection.close()