:orphan:
.. _pysqream:
********
Pysqream
********
The BLUE Python connector is a set of packages that allows Python programs to connect to BLUE.
* ``pysqream-blue`` is a pure Python connector. It can be installed with ``pip`` on any operating system, including Linux, Windows, and macOS.
* ``pysqream-blue-sqlalchemy`` is a SQLAlchemy dialect for ``pysqream-blue``
The connector supports Python 3.9.x. The base ``pysqream-blue`` package conforms to Python DB-API specifications `PEP-249 `_.
**Before You Begin**
It is essential that you have:
* Python 3.9x
* BLUE access token
Installing the Python Connector
===============================
.. code-block:: none
pip3.9 install pysqream-blue pysqream-blue-sqlalchemy -U
Validating Your ``pysqream-blue`` Installation
----------------------------------------------
To validate your connection to BLUE, run the following Python script and make sure to replace ``host-name``, ``database``, and ``token`` with your respective BLUE parameters.
.. code-block:: python
import pysqream_blue
# Create a connection object
con = pysqream_blue.connect(host=<'your-host-name.com'>, port=<443>, database=<'your_database_name'>, access_token=<'YourToken'>)
# Create a new cursor
cur = con.cursor()
# The select statement - in this example a CPU based query to list the defined databases in the Blue cluster
statement = 'SELECT * FROM '
# Execute statement
cur.execute(statement)
res = cur.fetchall()
#Print results
print(res)
#Close the connection
con.close()
Using SQLAlchemy and Pandas
===========================
SQLAlchemy is an Object-Relational Mapper (ORM) for Python. Installing the ``pysqream-blue-sqlalchemy`` BLUE dialect, enables the use of frameworks such as Pandas, TensorFlow, and Alembic to query BLUE directly.
**Before You Begin**
To use BLUE with SQLAlchemy, it is essential that you:
* Download the ``pysqream-blue-sqlalchemy`` dialect through `pysqream-blue-sqlalchemy `_
* :download:`Download ` and run the dialect requirements file
SQLAlchemy
----------
SQLAlchemy simplifies working with query engines by providing a user-friendly Python interface. It offers a flexible SQL toolkit and object-relational mapper (ORM), allowing developers to write intuitive queries and switch between database engines easily.
To validate your SQLAlchemy connection to BLUE, run the following script and make sure to replace ``host-name``, ``database``, and ``token`` with your respective BLUE parameters.
.. code-block:: python
import sqlalchemy as sa
_access_token = ''
conn_str = f"sqream_blue://:443/"
connect_args = {'access_token': _access_token}
engine = sa.create_engine(conn_str, connect_args=connect_args)
conn = engine.connect()
res = conn.execute("SELECT * FROM nba").fetchall()
print(res)
Pandas
------
Pandas is a popular Python library for efficient data manipulation, including query engine integration. Its DataFrame structure enables easy querying, filtering, and manipulation using Python syntax. By seamlessly working with query engines, Pandas provides a user-friendly experience for executing SQL queries and analyzing data.
To validate your Pandas connection to BLUE, run the following script and make sure to replace ``host-name``, ``database``, and ``token`` with your respective BLUE parameters.
.. code-block:: python
import sqlalchemy as sa
import pandas as pd
from sqlalchemy.engine.url import URL
_access_token = ''
conn_str =
"sqream_blue://:443/"
connect_args = {'access_token': _access_token}
engine = sa.create_engine(conn_str, connect_args=connect_args)
conn = engine.connect()
table_df = pd.read_sql("SELECT * FROM nba", engine)
print(table_df)
conn.close()
engine.dispose()
Troubleshooting
===============
A successful validation means you can go ahead and build a Python application. However, if you receive a connection error, verify that:
* You have access to BLUE.
* The connection parameters are correct.