Socket
Book a DemoInstallSign in
Socket

squad-sagemaker-db-connector

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

squad-sagemaker-db-connector

A pluggable connector that allows users (admins) to execute SQL, view, and export the results.

0.2
pipPyPI
Maintainers
1

======================== Auctm Database Connector

A python package that provides database connection to Bifrost database, Substrate database, and Decision Science database.

Modules #########

There are three modules - bifrost, substrate and decision_science.

All the modules provide the engine for their respective database.

bifrost

This module provides the database connection for the Bifrost database. It provides read-only access to the database.

The schema for tables in this database can be seen on the Bifrost Explorer <https://bifrost.squadplatform.com/explorer/play>__

substrate

This module provides the database connection for the Substrate database. It provides read-only access to the database.

decision_science

This module provides the database connection for the Decision Science database. It provides read and write access to the user's schema in the database.

This module provides the database connection for the Decision Science database.

SquadIQ

This module provides the database connection for the SquadIQ database. It provides read-only access to the database.

Usage

.. code-block:: python

from database_connector import bifrost, substrate, decision_science, squadiq, sagemaker

bifrost_engine = bifrost.engine
substrate_engine = substrate.engine
ds_engine = decision_science.engine
iq_engine = squadiq.engine
ds_sagemaker_engine = sagemaker.engine

# Database connection is automatically closed when connection is used in a context manager i.e. inside "with"
with bifrost_engine.connect() as conn:
    data = conn.execute("Select * from fub_customer")

    # data is a dictionary with column name as key and row as value
    for row in data:
        print(row)
        
# Database connection is automatically closed when connection is used in a context manager i.e. inside "with"
with substrate_engine.connect() as conn:
    data = conn.execute("Select * from substrate_customer")

    # data is a dictionary with column name as key and row as value
    for row in data:
        print(row)

# Database connection is automatically closed when connection is used in a context manager i.e. inside "with"
with iq_engine.connect() as conn:
    data = conn.execute("Select * from voice_workflow_campaign")

    # data is a dictionary with column name as key and row as value
    for row in data:
        print(row)

# Database connection is automatically closed when connection is used in a context manager i.e. inside "with"
with ds_sagemaker_engine.connect() as conn:
    data = conn.execute("Select * from voice_workflow_campaign")

    # data is a dictionary with column name as key and row as value
    for row in data:
        print(row)

# Database connection is automatically closed when connection is used in a context manager i.e. inside "with"
with ds_engine.connect() as conn:
    data = conn.execute("Select * from vedvasu.customers")

    # data is a dictionary with column name as key and row as value
    for row in data:
        print(row)

    conn.execute("insert into vedvasu.customers (id, name) values (1, 'Robert-Slack')")

How to install this module inside SageMaker Jobs started from JupyterHub

The following commands should be added in the DockerFile to install this module in the docker image. Preferably add these commands near the end before changing the working directory since all the steps these commands will be rebuild and cache won’t be used. Check the release here <https://discourse.squadstack.com/t/sagemaker-update-launch-training-jobs-inside-vpc/56>__.

.. code-block:: dockerfile

COPY auctm-database-connector-*.tar.gz /mnt/
RUN pip3 install /mnt/auctm-database-connector-*.tar.gz

UI for the Decision Science Database

The UI is available at Auctm PGAdmin <https://pgadmin.auctm.com/pgadmin4>__. It provides a MySQL Workbench like interface for our PostgreSQL database. Users can login here to view and make changes to their tables via a UI. The credentials for this can be taken from the Admins (currently AGB and abkunal)

How to Onboard a new user on Decision Science Database

  • Login as the Admin Account at Auctm PGAdmin <https://pgadmin.auctm.com/pgadmin4>__.
  • Create a User account for a new user and share the credentials with the user.
  • Run the following SQL queries by replacing <role-name>, <strong-password>, and <schema-name>. Note down the role-name and strong-password.

.. code-block:: sql

-- Create a new role and GRANT all_read_only role to this new role
CREATE ROLE <role-name> WITH
    LOGIN
    NOSUPERUSER
    NOCREATEDB
    NOCREATEROLE
    INHERIT
    NOREPLICATION
    CONNECTION LIMIT -1
    PASSWORD '<strong-password>';

GRANT all_read_only TO <role-name>;

-- Grant this role to the Admin user
GRANT <role-name> TO decision_science;

-- Create schema for the role and make this role owner of this schema
CREATE SCHEMA <schema-name> AUTHORIZATION <role-name>;

-- Grant all_read_only role READ access to this new schema
GRANT USAGE ON SCHEMA <schema-name> TO all_read_only;
GRANT SELECT ON ALL TABLES IN SCHEMA <schema-name> TO all_read_only;
  • On JupyterHub, navigate to the user's home directory and create the credentials file.

.. code-block:: bash

sudo su
cd /home/<user>
nano decision_science_creds.csv

# Eg => cd /home/jupyter-kunal.yadav@squadr-319c0
  • Put the role name and password in the csv file as shown below.

.. code-block:: bash

username,password
<role-name>,<strong-password>
  • Change the ownership permissions for this file.

.. code-block:: bash

chown <user> decision_science_creds.csv
chgrp <user> decision_science_creds.csv

# Eg => chown jupyter-kunal.yadav@squadr-319c0 decision_science_creds.csv

Documentation

We use SQL Alchemy as an ORM because it provides additional features than raw psycopg2. You can check out its documentation here - SQL Alchemy docs <https://docs.sqlalchemy.org/en/13/core/connections.html>__

How to Modify this Package

  • This package works with Python 3
  • After making the necessary changes run the following commands to build the project and install the package

.. code-block:: bash

python setup.py sdist
sudo -E python -m pip install  dist/auctm-database-connector-0.1.tar.gz

3. You can uninstall the package by running the following command - sudo -E pip uninstall auctm-database-connector

Keywords

Db connector

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.