Author: Paolo Lulli <paolo@lulli.net>
Store away history to Parquet files
server/db/metric.go | 12 ++++++++++++ server/maintenance.go | 5 +----
diff --git a/server/db/metric.go b/server/db/metric.go index 0e9de5c209d7b024d7f2735fc602ae3348c08452..cd6660f773070235d839f0232d159e7362af0c04 100644 --- a/server/db/metric.go +++ b/server/db/metric.go @@ -48,6 +48,18 @@ } return metrics } +func DeleteMetrics(session *gocql.Session, idClient string, daysRange dates.DaysRange) { + metricInfos := GetClientMetrics(session, idClient) + + for mx := range metricInfos { + metricName := metricInfos[mx].Name + fmt.Printf("Querying from: %s to: %s\n", daysRange.From, daysRange.To) + q := fmt.Sprintf("DELETE FROM metric where id_client='%s' and name ='%s' and mtime > '%s' and mtime < '%s'", idClient, metricName, daysRange.From, daysRange.To) + fmt.Println(q) + session.Query(q).Exec() + } +} + func SaveMetric(idClient string, metricName string, metricValue string) { q := fmt.Sprintf("insert into metric ( id_client, mtime, name, value) values ('%s',toTimestamp(now()),'%s','%s');", idClient, metricName, metricValue) Session.Query(q).Exec() diff --git a/server/maintenance.go b/server/maintenance.go index caa308ba8b378835cbf5c4f561d790d5be03c7f7..4967f900a1bae9d750032561b4e581bf97bbeee2 100644 --- a/server/maintenance.go +++ b/server/maintenance.go @@ -11,13 +11,9 @@ "yats-server/model" ) func calculateParquetDirName(cfg config.Configuration, t time.Time, id_client string, item string) string { - fmt.Println("called calculateParquetDirName()") baseParquetDir := cfg.ARCHIVE_DIRECTORY - fmt.Printf("calculateParquetDirName: %s", baseParquetDir) previousMonth := dates.CalculatePreviousMonth(t) - fmt.Printf("previousMonth: %s", previousMonth) parquetDirName := fmt.Sprintf("%s/%s/%s/%s", baseParquetDir, id_client, item, previousMonth) - fmt.Printf("parquetDirName: %s", parquetDirName) return parquetDirName } @@ -74,5 +70,6 @@ metrics := db.LoadMetrics(db.Session, clients[i].ID, daysRange) fmt.Printf("Loaded: [%d] results", len(metrics)) db.MetricToParquet(metrics, metricFileName) + db.DeleteMetrics(db.Session, clients[i].ID, daysRange) } }