Create your ETL integrations easy and quick!
Project description
ETL Lib
This is a simple package built for Portobello Shop integrations, and now is available as ETL lib.
Can be used with several services, like:
- Oracle
- Salesforce
- MSSQL Server
- GSuite
- Microvix
- ODBC Drivers: PYODBC and SQLALCHEMY
- And any REST services ...
Comming soon:
- RabbitMQ
- Kafka
- OpenVault (Credentials)
- ...
Basic Usage
Rewrite ETL ABC class
Use inheritance and rewrite the three abstract methods (even if you don't use it):
from etl_pbshop import ETL, Connectors
class MyETL(ETL):
def __init__(self):
self.config = MyConfiguration()
self.log = self.config.log
self.connector = Connectors(
config=self.config,
log=self.log,
services={'google': 'PROD', "salesforce": "PROD"}
)
def extract(self):
pass # extract the needed data using Connectors
def transform(self):
pass # do some transformations
def load(self):
pass # upload your transformations
Main caller:
On the main caller, you can simply:
if __name__ == '__main__':
etl = MyETL()
etl.config.start()
try:
etl.run()
exit(0)
except Exception as e:
etl.get_error(f"ERROR on main: {str(e)}")
raise e
finally:
etl.config.finish()
Rewriting default ConfigModel:
In another class, you can rewrite the ConfigModel class and input your values:
from etl_pbshop.config_model import ConfigModel
class MyConfiguration(ConfigModel):
def __init__(self):
super().__init__(__file__)
self.SQL_QUERIES = {
"produtos": "SELECT * FROM Products2"
}
self.INTEGRATION_SPREADSHEET_ID = '654asd5as1das5d165a4d68'
Environment variables:
You can put your environment variables to use the Connectors class.
In a .env file, set it in groups, like:
INTEGRACAO_ORACLE_ID_1=1
INTEGRACAO_ORACLE_TOKEN_VALUE_1=asd1234asd==
INTEGRACAO_ORACLE_TOKEN_URL_1=http://example.com/token
INTEGRACAO_ORACLE_METHOD_URL_1=http://example.com/method_to_post
INTEGRACAO_ORACLE_USER_1=asd..
INTEGRACAO_ORACLE_PASS_1=qwerty..
INTEGRACAO_ORACLE_ENVIRONMENT_1=DEV
INTEGRACAO_MICROVIX_ID_1=1
INTEGRACAO_MICROVIX_TOKEN_VALUE_1=1234-123-123-1234
INTEGRACAO_MICROVIX_METHOD_URL_1=https://webapi.microvix.com.br/1.0/api/method
INTEGRACAO_MICROVIX_USER_1=user
INTEGRACAO_MICROVIX_PASS_1=pass
INTEGRACAO_MICROVIX_ENVIRONMENT_1=PROD
INTEGRACAO_SALESFORCE_ID_1=1
INTEGRACAO_SALESFORCE_TOKEN_VALUE_1=qwerty
INTEGRACAO_SALESFORCE_METHOD_URL_1=https://login.salesforce.com/services/Soap/u/47.0
INTEGRACAO_SALESFORCE_USER_1=username@example.com
INTEGRACAO_SALESFORCE_PASS_1=myPass
INTEGRACAO_SALESFORCE_ENVIRONMENT_1=PROD
You only need to keep the pattern: INTEGRACAO_<service_name>_<key_name>_<group_id>
More info, please contact: daniel.camargo@portobelloshop.com.br
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 etl-pbshop-0.3.0.tar.gz.
File metadata
- Download URL: etl-pbshop-0.3.0.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f494670530f610f272bc5cfcc19edc9c681c2bc2237bd6a69c9f42077971fb65
|
|
| MD5 |
62d624642491f3a9bb11b071328df1df
|
|
| BLAKE2b-256 |
7ccc80ae260f28bfad97ecc3d0dc4a22b3d14d80537a19926e8ef14a0607c378
|
File details
Details for the file etl_pbshop-0.3.0-py3-none-any.whl.
File metadata
- Download URL: etl_pbshop-0.3.0-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64621b8c4cf052538422a358f9b7ba95cb5e2014bec86ec1c30a270aab8b4e87
|
|
| MD5 |
f65f0aef6cae9156acd73b03ec8021c9
|
|
| BLAKE2b-256 |
feb5d8e9d4911a1673954e166f7c8014dff04c866fd7416f9c2d6c92053fd73b
|