# -*- coding: utf-8 -*- """ @author: yq @time: 2024/10/31 @desc: sql直接统计指标直出 """ import pandas as pd from data_loader.data_loader_base import DataLoaderBase from metric.metric_base import MetricBase class MetricBySqlGeneral(MetricBase): def __init__(self, metric_name: str, metric_code: str): super().__init__(metric_name, metric_code) def validate_data(self): pass def load_data(self, data_loader: DataLoaderBase, sql: str) -> pd.DataFrame: data = data_loader.get_data(sql) return data def calculate(self, data_loader: DataLoaderBase, sql: str) -> pd.DataFrame: return self.load_data(data_loader, sql) if __name__ == "__main__": from data_loader.data_loader_mysql import DataLoaderMysql data_loader = DataLoaderMysql(host="101.126.81.2", port=18001, user="root", passwd="Cqrcb2024", db="test") metric_clzz = MetricBySqlGeneral(metric_name="auc", metric_code="auc") metric = metric_clzz.calculate(data_loader, "select * from test.t1") print(metric.head(5))