Browse Source

Merge pull request '```' (#37) from cjl-dev into master

Reviewed-on: http://120.26.116.243:3000/root/model-lab/pulls/37
master
chenjiale 3 weeks ago
parent
commit
f474f794e8
  1. 52
      PCA_Test.py
  2. 5
      config.py
  3. BIN
      requirements.txt

52
PCA_Test.py

@ -7,7 +7,8 @@ PCA source code
import numpy as np
import json
import pymysql
import dmPython
from urllib.parse import urlparse, parse_qs
import requests
import config
@ -145,32 +146,45 @@ class MSSQL:
self.conn.close()
class MySQL:
def __init__(self, host, user, pwd, database):
self.host = host
def _parse_dm_jdbc_url(jdbc_url):
if not jdbc_url:
raise NameError("没有设置数据库URL")
url = jdbc_url
if url.startswith("jdbc:"):
url = url[len("jdbc:"):]
parsed = urlparse(url)
host = parsed.hostname
port = parsed.port or 5236
schema = None
if parsed.query:
params = parse_qs(parsed.query)
schema_list = params.get("schema") or params.get("SCHEMA")
if schema_list:
schema = schema_list[0]
return host, port, schema
class DaMeng:
def __init__(self, jdbc_url, user, pwd):
self.jdbc_url = jdbc_url
self.user = user
self.pwd = pwd
self.db = database
self.conn = None
def __GetConnect(self):
"""建立 MySQL 连接并返回 cursor"""
if not self.db:
raise NameError("没有设置数据库信息")
self.conn = pymysql.connect(
host=self.host,
port=config._PORT, # MySQL 端口,例:3306
"""建立达梦连接并返回 cursor"""
host, port, schema = _parse_dm_jdbc_url(self.jdbc_url)
self.conn = dmPython.connect(
user=self.user,
password=self.pwd,
database=self.db,
charset="utf8mb4",
cursorclass=pymysql.cursors.Cursor
server=host,
port=port
)
cur = self.conn.cursor()
if not cur:
raise NameError("连接数据库失败")
if schema:
cur.execute(f"SET SCHEMA {schema}")
return cur
def ExecQuery(self, sql):
@ -188,13 +202,13 @@ class MySQL:
self.conn.commit()
self.conn.close()
def get_model_by_ID(model_id, version="v-test"):
ms = MySQL(host=config._SQL_IP, user="root", pwd="powerSIS#123", database="alert")
ms = DaMeng(jdbc_url=config._DM_URL, user=config._DM_USER, pwd=config._DM_PASSWORD)
resList = ms.ExecQuery(f"SELECT Model_info FROM model_cfg where model_id={model_id}")
return json.loads(resList[0][0])
def get_model_by_id_and_version(model_id, version):
ms = MySQL(host=config._SQL_IP, user="root", pwd="powerSIS#123", database="alert")
ms = DaMeng(jdbc_url=config._DM_URL, user=config._DM_USER, pwd=config._DM_PASSWORD)
resList = ms.ExecQuery(f"SELECT Model_info FROM model_version where model_id={model_id} and version='{version}'")
return json.loads(resList[0][0])

5
config.py

@ -3,4 +3,7 @@
_SQL_IP = "120.26.116.243" # 数据库IP
_EXA_IP = "120.26.116.243" # EXA IP
_CLEAN_IP = "172.28.137.231:8098" # EXA清洗接口IP
_PORT = 3306 # port
_PORT = 3306 # port
_DM_URL = "jdbc:dm://120.26.116.243:5236?schema=ALERT"
_DM_USER = "SYSDBA"
_DM_PASSWORD = "powerSIS123"

BIN
requirements.txt

Binary file not shown.
Loading…
Cancel
Save