5.7 KiB
myems-normalization
MyEMS Normalization Service
数据规范化服务
Introduction
This service is a component of MyEMS to normalize energy data in historical database.
Prerequisites
mysql-connector-python
openpyxl
sympy
python-decouple
Quick Run for Development
cd myems/myems-normalization
pip install -r requirements.txt
cp example.env .env
chmod +x run.sh
./run.sh
Installation
Option 1: Install myems-normalization on Docker
In this section, you will install myems-normalization on Docker.
- Copy source code to root directory
On Windows:
cp -r myems/myems-normalization c:\
cd c:\myems-normalization
On Linux:
cp -r myems/myems-normalization /
cd /myems-normalization
- Create .env file based on example.env file
Manually replace 127.0.0.1 with real HOST IP address.
cp example.env .env
- Build a Docker image
docker build -t myems/myems-normalization .
- Run a Docker container
On Windows host, bind-mount the .env to the container:
docker run -d -v c:\myems-normalization\.env:/code/.env:ro --restart always --name myems-normalization myems/myems-normalization
On Linux host, bind-mount the .env to the container:
docker run -d -v /myems-normalization/.env:/code/.env:ro --restart always --name myems-normalization myems/myems-normalization
-
-d Run container in background and print container ID
-
-v If you use -v or --volume to bind-mount a file or directory that does not yet exist on the Docker host, -v creates the endpoint for you. It is always created as a directory. The ro option, if present, causes the bind mount to be mounted into the container as read-only.
-
--restart Restart policy to apply when a container exits
-
--name Assign a name to the container
The absolute path before colon is for path on host and that may vary on your system. The absolute path after colon is for path on container and that CANNOT be changed. By passing .env as bind-mount parameter, you can change the configuration values later. If you changed .env file, restart the container to make the change effective.
If you want to immigrate the image to another computer,
- Export image to tarball file
docker save --output myems-normalization.tar myems/myems-normalization
- Copy the tarball file to another computer, and then load image from tarball file
docker load --input .\myems-normalization.tar
Installation Option 2: Online install on Ubuntu server with internet access
In this section, you will install myems-normalization on Ubuntu Server with internet access.
cp -r myems/myems-normalization /myems-normalization
cd /myems-normalization
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
Copy exmaple.env file to .env and modify the .env file:
cp /myems-normalization/example.env /myems-normalization/.env
nano /myems-normalization/.env
Setup systemd service:
cp myems-normalization.service /lib/systemd/system/
Enable the service:
systemctl enable myems-normalization.service
Start the service:
systemctl start myems-normalization.service
Monitor the service:
systemctl status myems-normalization.service
View the log:
cat /myems-normalization.log
Installation Option 3: Offline install on Ubuntu server without internet access
In this section, you will install myems-normalization on Ubuntu Server.
Download and install MySQL Connector:
cd ~/tools
wget https://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-8.0.28.tar.gz
tar xzf mysql-connector-python-8.0.28.tar.gz
cd ~/tools/mysql-connector-python-8.0.28
python3 setup.py install
Download and install mpmath
cd ~/tools
git clone https://github.com/fredrik-johansson/mpmath.git
cd ~/tools/mpmath
python3 setup.py install
Download and install SymPy
cd ~/tools
git clone https://github.com/sympy/sympy.git
cd ~/tools/sympy
python3 setupegg.py develop
Download and install openpyxl
cd ~/tools
Get the latest version of et_xmlfile from https://foss.heptapod.net/openpyxl/et_xmlfile/
wget https://foss.heptapod.net/openpyxl/et_xmlfile/-/archive/1.1/et_xmlfile-1.1.tar.gz
tar xzf et_xmlfile-1.1.tar.gz
Get jdcal
git clone https://github.com/phn/jdcal.git
Get the latest version of openpyxl from https://foss.heptapod.net/openpyxl/openpyxl
wget https://foss.heptapod.net/openpyxl/openpyxl/-/archive/3.0.7/openpyxl-3.0.7.tar.gz
tar xzf openpyxl-3.0.7.tar.gz
cd ~/tools/et_xmlfile-1.1
python3 setup.py install
cd ~/tools/jdcal
python3 setup.py install
cd ~/tools/openpyxl-3.0.7
python3 setup.py install
Download and install Python Decouple
cd ~/tools
git clone https://github.com/henriquebastos/python-decouple.git
cd ~/tools/python-decouple
python3 setup.py install
Install myems-normalization service:
cp -r myems/myems-normalization /myems-normalization
cd /myems-normalization
Copy example.env file to .env file and modify the .env file:
cp /myems-normalization/example.env /myems-normalization/.env
nano /myems-normalization/.env
Setup systemd service:
cp myems-normalization.service /lib/systemd/system/
Enable the service:
systemctl enable myems-normalization.service
Start the service:
systemctl start myems-normalization.service
Monitor the service:
systemctl status myems-normalization.service
View the log:
cat /myems-normalization.log