Extract and Load: installation
Requirements
A Linux system.
Python 3.12.
make(sudo apt install make).virtualenv(pip install virtualenv).
The agent must reach the data sources (MySQL and, for Open edX, MongoDB) and the AWS data lake (S3, Glue, Athena). It can be installed on the application host, on the database host, or on a bastion host, as long as it has that network connectivity.
Tip
You can split the installation across multiple hosts, for example one host to reach the MySQL tables and another for the MongoDB course structures.
Install from source
Clone the repository:
git clone https://github.com/aulasneo/panorama-elt
Install:
make installImportant
Do not run
make installfrom inside a virtual environment.This command will:
Create a
virtualenvin thevenvdirectory using thepython3interpreter.Install the Python dependencies listed in
requirements.txt.Copy the settings file from the template, if it does not already exist.
Running the agent
The scripts must run from the virtual environment. By default, running panorama.py from
the command line uses the Python interpreter in the installed virtual environment
(venv/bin/python), because the script starts with #! venv/bin/python.
./panorama.py --help
To use a settings file other than the default panorama_settings.yaml, pass --settings:
./panorama.py --settings panorama_openedx_settings.yaml test-connections
Note
--settings is a top-level option and must appear before the command, as shown
above. The same applies to --debug and --version.
Running in Docker
The agent can also run inside a Docker container, which avoids installing Python and the dependencies on the host. See Extract and Load: running in Docker for building the image and running one-off and scheduled jobs.