Skip to content

Instantly share code, notes, and snippets.

@zach-data
Created December 15, 2015 19:54
Show Gist options
  • Save zach-data/e3b41f5bd60da97160bc to your computer and use it in GitHub Desktop.
Save zach-data/e3b41f5bd60da97160bc to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3 -u
import sys
import getpass
import psycopg2
import logging
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
from psycopg2.extras import CompositeCaster
from psycopg2.extras import LoggingConnection
from psycopg2.extras import LoggingCursor
class LoggingCursor(psycopg2.extensions.cursor):
def execute(self, sql, args=None):
logger = logging.getLogger('sql_debug')
logger.info(self.mogrify(sql, args))
try:
psycopg2.extensions.cursor.execute(self, sql, args)
except Exception, exc:
logger.error("%s: %s" % (exc.__class__.__name__, exc))
raise
def is_super(c):
query = """copy part2 from 's3://redshift-demo/tpc-h/10/part/part.tbl.' CREDENTIALS
'aws_access_key_id=;aws_secret_access_key='
gzip delimiter '|'"""
c.execute(query)
def close_conn(conn,cur):
cur.close()
conn.close()
conn = psycopg2.connect("dbname=DBNAME"
+" user=USERNAME"
+" password=PASSWORD"
+" host=REDSHIFTENDPOINT"
+" port=8192")
conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cur = conn.cursor(cursor_factory=LoggingCursor)
is_super(cur)
get_conn()
close_conn(conn,cur)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment