When you create your Point to be written, you can specify the precision.
Builder dataEvBldr = Point.measurement(evtGroupMeasurement
.getMeasurementName())
.time(time, TimeUnit.MILLISECONDS)
.tag("groupname", group)
.addField("F1", f1)
.addField("F2", f2)
.addField("F3", f3);
On Tuesday, October 18, 2016 at 1:38:26 PM UTC-4, [email protected] wrote:
>
> On Tuesday, October 18, 2016 at 1:17:22 PM UTC-4, [email protected]
> wrote:
> > The precision as specified in the query string[1] is treated as truth.
> If you provide a timestamp at millisecond resolution, but don't specify the
> precision or specify it as nanoseconds, the timestamp will be interpreted
> as nanoseconds. (The current unix time in milliseconds, interpreted as
> nanoseconds, will be about 24 minutes into Jan 1 1970.)
> >
> > A couple relevant places in the code are setting the precision of a
> point [2] and handling precision and writing points in the HTTP handler [3].
> >
> > [1]
> https://docs.influxdata.com/influxdb/v1.0/tools/api/#query-string-parameters-1
> > [2]
> https://github.com/influxdata/influxdb/blob/cea7690b728a23a7a196020ea411707d2807d176/models/points.go#L1364-L1378
> > [3]
> https://github.com/influxdata/influxdb/blob/cea7690b728a23a7a196020ea411707d2807d176/services/httpd/handler.go#L645-L692
> >
> > On Tuesday, October 18, 2016 at 10:02:15 AM UTC-7, [email protected]
> wrote:
> > > I'm looking to fix the influxdb-java client library as it forces all
> point timestamps to nanosecond precision, which is a waste of space and hit
> in performance when only captured in millisecond precision. One of the
> questions however is understanding what InfluxDB does whenever the
> measurement timestamp precision doesn't match what was specified in the
> /write.
> > >
> > > Any clarity and links to code base would be very welcome!
>
> Thanks for the links and clarification; makes sense.
>
> Since one of the best practices I've heard regarding InfluxDB is having
> lower precision as needed. The two issues I was alluding to were:
>
> 1) influxdb-java library org.influxdb.dto.Point.formatedTime() converts
> all timestamps to nanoseconds
>
> Source:
> https://github.com/influxdata/influxdb-java/blob/master/src/main/java/org/influxdb/dto/Point.java
>
> private StringBuilder formatedTime() {
> final StringBuilder sb = new StringBuilder();
> if (null == this.time) {
> this.time =
> this.precision.convert(System.currentTimeMillis(),TimeUnit.MILLISECONDS);
> }
> sb.append(" ").append(TimeUnit.NANOSECONDS.convert(this.time,
> this.precision));
> return sb;
> }
>
>
> 2) influxdb-java library org.influxdb.impl.InfluxDBImpl.write() methods
> forces nanosecond precision
>
> Source:
> https://github.com/influxdata/influxdb-java/blob/master/src/main/java/org/influxdb/impl/InfluxDBImpl.java
>
> execute(this.influxDBService.writePoints(
> this.username,
> this.password,
> batchPoints.getDatabase(),
> batchPoints.getRetentionPolicy(),
> TimeUtil.toTimePrecision(TimeUnit.NANOSECONDS),
> batchPoints.getConsistency().value(),
> lineProtocol));
>
>
> Thanks again Sean / Mark!
>
>
--
Remember to include the version number!
---
You received this message because you are subscribed to the Google Groups
"InfluxData" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/influxdb.
To view this discussion on the web visit
https://groups.google.com/d/msgid/influxdb/579430d6-df68-42ff-9780-13f72a421beb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.