ref: e0ca0badc0fb9294211c1f8dd8df34d8e06c31a9
server/db/parquet.go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
/** * Yats - yats * * This file is licensed under the Affero General Public License version 3 or * later. See the COPYING file. * * @author Paolo Lulli <kevwe.com> * @copyright Paolo Lulli 2024 */ package db import ( "log" "os" "yats-server/model" "github.com/xitongsys/parquet-go/writer" ) func EventToParquet(events []model.EventModel, parquetFile string) { var err error w, err := os.Create(parquetFile) if err != nil { log.Println("Can't create local file", err) return } pw, err := writer.NewParquetWriterFromWriter(w, new(model.EventModel), 4) if err != nil { log.Println("Can't create parquet writer", err) return } for i := range events { if err = pw.Write(events[i]); err != nil { log.Println("Write error", err) } } if err = pw.WriteStop(); err != nil { log.Println("WriteStop error", err) return } log.Println("Write Finished") w.Close() } func MetricToParquet(metrics []model.MetricModel, parquetFile string) { var err error w, err := os.Create(parquetFile) if err != nil { log.Println("Can't create local file", err) return } pw, err := writer.NewParquetWriterFromWriter(w, new(model.MetricModel), 4) if err != nil { log.Println("Can't create parquet writer", err) return } for i := range metrics { if err = pw.Write(metrics[i]); err != nil { log.Println("Write error", err) } } if err = pw.WriteStop(); err != nil { log.Println("WriteStop error", err) return } log.Println("Write Finished") w.Close() } |