Skip to main content

A unified cloud db package for AWS, Azure, and GCP for Queue Service

Project description

Cloud DB Connector

This package provides a flexible and secure way to establish connections to various database types, including AWS RDS, Azure SQL, Google Cloud MySQL, and local databases. It includes factory functions and connection classes, as well as helper functions to execute queries and handle database interactions with retry logic.

Package Structure

- db_manager.py        # Factory function to create DB connection based on the service type
- db_connection.py     # Interface to get DB connection
- aws_db.py            # AWS RDS MySQL connection class
- azure_db.py          # Azure SQL Database connection class
- gcp_db.py            # Google Cloud MySQL connection class
- local_db.py          # Local MySQL database connection class
- rds_execute.py       # Utility to execute SQL queries on the databases

Installation

Ensure all necessary dependencies are installed:

pip install clouddatabridge

Additional Requirements for Azure SQL Database

To connect to an Azure SQL Database, an ODBC driver is required. Install the appropriate driver for your operating system:

Follow the official installation instructions on the linked pages for your OS.

Usage

Setting Up a Database Connection

The db_manager.py file contains a factory function, create_db_connection, to create a connection based on the chosen service (local, aws, azure, gcp). You can also use the get_db_connection function in db_connection.py for easier configuration management.

from clouddatabridge.rds_execute import rds_execute

query = "SELECT * FROM person"

local_result = rds_execute(
    service="gcp",
    query=query,
    is_proxy=False,
    host="your-azure-sql-hostname",
    user="your-username",
    password="your-password",
    database="your-database",
    port=3306
    )

print(local_result)

Components Overview

db_manager.py

This module provides a factory function create_db_connection that creates the appropriate database connection object based on the specified service parameter.

  • Supported Services: local, aws, azure, gcp
  • Parameters: is_proxy, host, user, password, database, port, region (for AWS)
db_connection.py

Contains the get_db_connection function, which uses create_db_connection to return the correct connection object and handles errors gracefully.

Database-Specific Connection Classes

Each database type has its own connection class with retry logic and automatic connection handling.

  1. AWSRDSConnection (aws_db.py)

    Manages a connection to an AWS RDS MySQL database and generates an authentication token for secure access.

  2. AzureSQLConnection (azure_db.py)

    Handles connections to Azure SQL Database, supporting automatic retries. Ensure you install the ODBC driver to connect successfully.

  3. GCPMySQLConnection (gcp_db.py)

    Supports MySQL connections on Google Cloud with similar retry and connection management logic.

  4. LocalDBConnection (local_db.py)

    Provides connections to a local MySQL database.

rds_execute.py

Provides a high-level rds_execute function that executes queries across supported databases. It detects the SQL operation type and handles transactions for INSERT, UPDATE, and DELETE operations, committing changes automatically.

  • Operations Supported: SELECT, INSERT, UPDATE, DELETE
  • Parameters:
    • service: Type of database service (local, aws, azure, gcp)
    • query: SQL query to execute
    • params: Parameters for parameterized query (tuple or list of tuples for batch execution)

Error Handling

  • Connection Errors: Retries connection attempts with configurable retry delays for increased robustness.
  • Operational Errors: Prints specific messages on failure and re-raises the error if maximum retries are exceeded.

License

This package is licensed under the MIT License.

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

queue_service-0.1.7.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

queue_service-0.1.7-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file queue_service-0.1.7.tar.gz.

File metadata

  • Download URL: queue_service-0.1.7.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for queue_service-0.1.7.tar.gz
Algorithm Hash digest
SHA256 7a203762e587bb39ddb4ef6de7cc2c1a27dd9c7639f7fdedcfb91864f511bb2b
MD5 524a934ef43be9cb6445c5dceff520c2
BLAKE2b-256 161e45f9e50cb2da1871bc2deff92c6b34f411d8b37ff289a11d28b785d42a7a

See more details on using hashes here.

File details

Details for the file queue_service-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: queue_service-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for queue_service-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 604d34e6ca3c3f72bd922ec48e1d9c14655edc7f2ca4b03e974c9fb122313d50
MD5 21589e315e63241a126ba8eccd2a983c
BLAKE2b-256 78c1bc7307d0102f225a27d5ea66a6eae035a3c0b94a7011e564d3618bdbd792

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page