Objective Oriented Python SDK for AWS Redshift
Project description
Welcome to simple_aws_redshift Documentation
simple_aws_redshift is a Pythonic library that provides a simplified, high-level interface for AWS Redshift operations. Built on top of boto3, it offers intuitive data models, property-based access patterns, and comprehensive type hints to make working with Redshift resources more developer-friendly and maintainable.
Killer Feature - SqlCommand
The SqlCommand class is a game-changer for running SQL queries against Redshift using the Data API. No database connections or credential management needed - just use IAM permissions! The native Data API returns raw JSON that’s difficult to work with, but SqlCommand automatically transforms results into user-friendly formats: Python dictionaries, pandas DataFrames, or polars DataFrames. One simple call handles everything: async execution, polling, and intelligent data parsing.
import simple_aws_redshift.api as rs
import boto3
# Create the command with your SQL
sql = """
SELECT
-- String/VARCHAR
'Hello World' AS test_string,
-- Integer (INT4)
42 AS test_integer,
-- Float/REAL
3.14159 AS test_float,
-- Boolean
TRUE AS test_boolean,
-- NULL value
NULL AS test_null,
-- Double precision (FLOAT8/DOUBLE PRECISION)
CAST(123.456789012345 AS REAL) AS test_double,
-- Long integer (BIGINT/INT8)
CAST(9223372036854775807 AS BIGINT) AS test_long,
-- BLOB/BYTEA (binary data)
'abc'::VARBYTE AS test_blob,
-- Date types
CAST('2024-06-12' AS DATE) AS test_date,
-- Timestamp without timezone
CAST('2024-06-12 14:30:45.123456' AS TIMESTAMP) AS test_timestamp,
-- Timestamp with timezone (TIMESTAMPTZ)
CAST('2024-06-12 14:30:45.123456-05:00' AS TIMESTAMPTZ) AS test_timestamptz,
-- Time
CAST('14:30:45' AS TIME) AS test_time,
-- Additional numeric types for completeness
CAST(123.45 AS DECIMAL(10,2)) AS test_decimal,
CAST(123.45 AS NUMERIC(10,2)) AS test_numeric,
-- Small integer
CAST(32767 AS SMALLINT) AS test_smallint
;
"""
sql_cmd = rs.redshift_data_api.SqlCommand(
redshift_data_api_client=boto3.client("redshift-data"),
sql=sql,
workgroup_name="my-workgroup",
database="dev",
)
# Run everything with one call - no async complexity!
sql_cmd.run()
# Results ready as DataFrame
sql_cmd.result.vdf.show() # Pretty print table
# (1, 15)
# +---------------+----------------+--------------+----------------+-------------+---------------+---------------------+-------------+-------------+----------------------------+----------------------------------+-------------+----------------+----------------+-----------------+
# | test_string | test_integer | test_float | test_boolean | test_null | test_double | test_long | test_blob | test_date | test_timestamp | test_timestamptz | test_time | test_decimal | test_numeric | test_smallint |
# |---------------+----------------+--------------+----------------+-------------+---------------+---------------------+-------------+-------------+----------------------------+----------------------------------+-------------+----------------+----------------+-----------------|
# | Hello World | 42 | 3.14159 | True | | 123.457 | 9223372036854775807 | abc | 2024-06-12 | 2024-06-12 14:30:45.123456 | 2024-06-12 19:30:45.123456+00:00 | 14:30:45 | 123.45 | 123.45 | 32767 |
# +---------------+----------------+--------------+----------------+-------------+---------------+---------------------+-------------+-------------+----------------------------+----------------------------------+-------------+----------------+----------------+-----------------+
df = sql_cmd.result.vdf.pandas_df # Get pandas DataFrame
df = sql_cmd.result.vdf.polars_df # Get polars DataFrame
Install
simple_aws_redshift is released on PyPI, so all you need is to:
$ pip install simple-aws-redshift
To upgrade to latest version:
$ pip install --upgrade simple-aws-redshift
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simple_aws_redshift-0.4.3.tar.gz.
File metadata
- Download URL: simple_aws_redshift-0.4.3.tar.gz
- Upload date:
- Size: 29.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77db4fceea61a776363a97afdfed3baa727ef5aca7a364a936922509b49869df
|
|
| MD5 |
134cb29d8c4633919c262786c9267140
|
|
| BLAKE2b-256 |
7c8895a70601924cc681b4a5ad776dde60fb2130d36ae421122cf3d71da6edc5
|
File details
Details for the file simple_aws_redshift-0.4.3-py3-none-any.whl.
File metadata
- Download URL: simple_aws_redshift-0.4.3-py3-none-any.whl
- Upload date:
- Size: 37.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acbd5d2b7de1030b0993fc39bbb9a02be1568c4bd559498775fab98f9e6ee16e
|
|
| MD5 |
b47d340991af9d6c9ee6b79aac22558d
|
|
| BLAKE2b-256 |
df3ebcc83c15ab3e4814a079af540450b34cc996ff02f1ee6977caa761a3a856
|