metric_by_sql_general.py 657 B

12345678910111213141516171819202122232425262728
  1. # -*- coding: utf-8 -*-
  2. """
  3. @author: yq
  4. @time: 2024/10/31
  5. @desc: sql直接统计指标直出
  6. """
  7. import pandas as pd
  8. from data import DataLoaderBase
  9. from entitys import MetricFucEntity
  10. from .metric_base import MetricBase
  11. class MetricBySqlGeneral(MetricBase):
  12. def __init__(self, data_loader: DataLoaderBase = None, sql: str = None, **kwargs):
  13. self._data_loader = data_loader
  14. self._sql = sql
  15. def validate_data(self):
  16. pass
  17. def load_data(self, ) -> pd.DataFrame:
  18. return self._data_loader.get_data(self._sql)
  19. def calculate(self, ) -> MetricFucEntity:
  20. return MetricFucEntity(table=self.load_data())