# RedshiftConnector

## Configuration

Prism uses the `psycopg2-binary` module to instantiate and configure the Redshift connector. The required arguments rare:

* `id`: ID for your connector.
* `autocommit`: toggle whether the connection commits changes to the database after executing. The default is `True`.
* `host`: the hostname of Amazon Redshift cluster.
* `port`: the port number of the Amazon Redshift cluster.
* `database`: the name of the database to which you want to connect.
* `user`: the user name to use for authentication.
* `password`: the password to use for authentication

```python
postgres_connector = RedshiftConnector(
    id="redshift_connector_id",
    user=os.environ["POSTGRES_USER"],
    password=os.environ["POSTGRES_PASSWORD"],
    port=5432,
    host=os.environ["POSTGRES_HOST"],
    database=os.environ["POSTGRES_DB"],
    autocommit=True,
)
```

## `execute_sql`

You can run queries against the Redshift cluster using the `execute_sql` function:

```python
from prism.decorators import task
from prism.runtime import CurrentRun

@task()
def postgres_task(self):
    conn = CurrentRun.conn("redshift_connector_id")
    data = conn.execute_sql(
        sql="SELECT * FROM table"
    )
```

Note that when `return_type = None`, the result will be a list tuples containing the query data.
