SqlAlchemy DS Manager: A simple datasource manager for SqlAlchemy using json file and cache manager for your sql statement
Project description
SqlAlchemy DS Manager: A simple datasource manager for SqlAlchemy using json file and cache manager for your sql statement
PyPi
pip install sqlalchemy-ds-manager
Configs
[
{
"provider": "ORACLE",
"source": [
{
"name": "golang",
"server": "server_name",
"port": 1000,
"service_name": "service_name"
}
]
},
{
"provider": "SQLSERVER",
"source": [
{
"name": "rust",
"server": "server_name",
"database": "database_name"
}
]
}
]
Usage
without cache
from sqlalchemy_ds_manager.datasource.manager import DatasourceManager
from sqlalchemy_ds_manager.provider.oracle import OracleProvider
from sqlalchemy_ds_manager.provider.sql_server import SqlServerProvider
from sqlalchemy import text
import pandas as pd
from os import path
def main():
currentDir = path.dirname(__file__)
filename = path.join(currentDir, 'datasource.json')
sql = "Select * from table_name"
dm = DatasourceManager(filename, providers=dict(
ORACLE=OracleProvider,
SQLSERVER=SqlServerProvider
))
datasource = dict(
golang = dm.get(source_name="golang", uid="go_uid", pwd="go_pwd"),
rust = dm.get(source_name="rust", uid="rust_uid", pwd="rust_pwd")
)
with datasource.get('golang').new().connect() as conn:
df = pd.read_sql(text(sql), conn)
if __name__ == "__main__":
main()
with cache
from sqlalchemy_ds_manager.datasource.manager import DatasourceManager
from sqlalchemy_ds_manager.provider.oracle import OracleProvider
from sqlalchemy_ds_manager.provider.sql_server import SqlServerProvider
from sqlalchemy_ds_manager.cache.file import FileCache
from sqlalchemy import text
import pandas as pd
import time
from os import path
currentDir = path.dirname(__file__)
filename = path.join(currentDir, 'datasource.json')
folder = path.join(currentDir, 'cache_files')
dm = DatasourceManager(filename, providers=dict(
ORACLE=OracleProvider,
SQLSERVER=SqlServerProvider
))
datasource = dict(
golang = dm.get(source_name="golang", uid="go_uid", pwd="go_pwd"),
rust = dm.get(source_name="rust", uid="rust_uid", pwd="rust_pwd")
)
def main():
sql = "Select * from table_name"
fc = FileCache(folder)
df = getSql(sql, "golang", fc)
def getSql(sql, source_name: str, fc):
exist = fc.find(sql)
if exist == None:
with datasource.get(source_name).new().connect() as conn:
start = time.time()
df = pd.read_sql(text(sql), conn)
duration = round(time.time() - start, 2)
filename = fc.add(sql, duration)
df.to_pickle(filename)
return df
else:
return pd.read_pickle(exist)
if __name__ == "__main__":
main()
Project details
Release history Release notifications | RSS feed
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 sqlalchemy_ds_manager-0.0.1.tar.gz.
File metadata
- Download URL: sqlalchemy_ds_manager-0.0.1.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
570ba9804564922d1640040c0e31f121bacc00d00c278ba0cd1b83aa996f3367
|
|
| MD5 |
3813d67e1c9d7a0b0d43811505a8c47f
|
|
| BLAKE2b-256 |
12cabc5623de3db4470f77685dad007058b713e77175ea67ed10323b239be89d
|
File details
Details for the file sqlalchemy_ds_manager-0.0.1-py3-none-any.whl.
File metadata
- Download URL: sqlalchemy_ds_manager-0.0.1-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4dda024a0e2e21cee2b5710b0019ea35aad64ad2f1ea44ac997052ddf6160475
|
|
| MD5 |
28b81ecd709ffdb9306928b875988b41
|
|
| BLAKE2b-256 |
c9edf7c522f00d6fa3c4beeae0466bcea240496e0c4e1bae7d5b6f9f0255c363
|