2016-03-29 4 views
0

Ein Cron-Job wird verwendet, um dieses Skript einmal am Tag abzufeuern. Wenn das Skript ausgeführt wird, scheint es wie erwartet zu funktionieren. Der Code erstellt eine Map, iteriert über diese Map, erstellt Punkte, die einem Batch hinzugefügt werden, und schreibt diese gecharterten Punkte schließlich in influxDB. Ich kann mich mit der influxDB verbinden und ich kann meine Datenbank abfragen und sehen, dass die Punkte hinzugefügt wurden. Ich benutze influxdb-java 2.2.Alle meine Datenpunkte gehen verloren, wenn InfluxDB neu startet

Das Problem, das ich habe ist, dass wenn influxDB neu gestartet wird alle meine Daten entfernt werden. Die Datenbank existiert noch und die Reihe existiert noch, alle Punkte/Reihen sind jedoch verschwunden (jede Tabelle ist leer). Meine Datenbank ist nicht die einzige Datenbank, es gibt mehrere andere, diese Datenbanken werden korrekt wiederhergestellt. Meine Vermutung ist, dass die Transaktion nicht abgeschlossen ist. Ich bin mir nicht bewusst, wie ich einen Flush machen und sicherstellen kann, dass meine Punkte bestehen bleiben. Ich habe versucht, hinzuzufügen:

Dies war ein Versuch, einen Flush erzwingen, aber das hat nicht wie erwartet funktioniert. Ich bin mit influxDB 0.13.X

InfluxDB influxDB = InfluxDBFactory.connect(host, user, pass); 

    String dbName = "dataName"; 
    influxDB.createDatabase(dbName); 

    BatchPoints batchPoints = BatchPoints 
      .database(dbName) 
      .tag("async", "true") 
      .retentionPolicy("default") 
      .consistency(ConsistencyLevel.ALL) 
      .build(); 

    for (Tags type: Tags.values()) { 
     List<LinkedHashMap<String, Object>> myList = this.trendsMap.get(type.getDisplay()); 

     if (myList != null) { 
      for (LinkedHashMap<String, Object> data : myList) { 
       Point point = null; 
       long time = (long) data.get("time"); 
       if (data.get("date").equals(this.sdf.format(new Date()))) { 
        time = System.currentTimeMillis(); 
       } 

       point = Point.measurement(type.getDisplay()) 
       .time(time, TimeUnit.MILLISECONDS) 
       .field("count", data.get("count")) 
       .field("date", data.get("date")) 
       .field("day_of_week", data.get("day_of_week")) 
       .field("day_of_month", data.get("day_of_month")) 
       .build(); 

       batchPoints.point(point); 
      } 
     } 
    } 

    influxDB.write(batchPoints); 

Antwort

0

Können Sie InfluxDB auf 0.11.0 aktualisieren? Seitdem hat es viele wichtige Änderungen gegeben und es wäre am besten, das zu testen.

+0

Dies wurde auf einen Back-Brenner gesetzt, ist aber jetzt wieder im Rampenlicht. Ich benutze derzeit InfluxDB Version 0.13.0 und jetzt mit Influxdb-Java 2.2. – dspano