diff --git a/ts_anomaly_td/detection.py b/ts_anomaly_td/detection.py index 4275677..aafa55a 100644 --- a/ts_anomaly_td/detection.py +++ b/ts_anomaly_td/detection.py @@ -28,8 +28,8 @@ def run_anomaly_window(conn, stable: str, algo: str) -> list[tuple[int, int]]: sql = ( f"SELECT _WSTART, _WEND " - f"FROM (ANOMALY_WINDOW(value, \"algo={algo}\") " - f"FROM ds_{stable})" + f"FROM (SELECT ts, `value` AS v FROM ds_{stable}) " + f"ANOMALY_WINDOW(v, 'algo={algo}')" ) rows = conn.execute(sql) diff --git a/ts_anomaly_td/forecast.py b/ts_anomaly_td/forecast.py index 4ad9de3..a33cc36 100644 --- a/ts_anomaly_td/forecast.py +++ b/ts_anomaly_td/forecast.py @@ -38,8 +38,8 @@ def run_forecast( """ sql = ( f"SELECT _FROWTS, _FLOW, _FHIGH " - f"FROM (FORECAST(value, \"algo={algo},rows={rows},conf={conf}\") " - f"FROM ds_{stable})" + f"FROM (SELECT ts, `value` AS v FROM ds_{stable}) " + f"FORECAST(v, 'algo={algo},rows={rows},conf={conf}')" ) try: raw = conn.execute(sql) @@ -83,7 +83,7 @@ def forecast_anomaly( start_ts = min(frowtses) end_ts = max(frowtses) - sql = f"SELECT ts, value FROM s_{stable} WHERE ts >= {start_ts} AND ts <= {end_ts}" + sql = f"SELECT ts, `value` FROM s_{stable} WHERE ts >= {start_ts} AND ts <= {end_ts}" raw = conn.execute(sql) fmap = {f[0]: (f[1], f[2]) for f in forecasts} diff --git a/ts_anomaly_td/schema.py b/ts_anomaly_td/schema.py index 2e1ffd5..5dce142 100644 --- a/ts_anomaly_td/schema.py +++ b/ts_anomaly_td/schema.py @@ -24,7 +24,7 @@ def create_supertable(conn, stable: str) -> None: """ sql = ( f"CREATE STABLE IF NOT EXISTS ds_{stable} " - f"(ts TIMESTAMP, value DOUBLE, label INT) " + f"(ts TIMESTAMP, `value` DOUBLE, is_anomaly INT) " f"TAGS (series_id INT)" ) conn.execute_no_result(sql)