This is an automated email from the ASF dual-hosted git repository.
fjy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new 47a6cca Add TimestampSpec format for microsecond (#6395)
47a6cca is described below
commit 47a6cca01343e4a671e588afbfbbb6901cd46a50
Author: QiuMM <[email protected]>
AuthorDate: Fri Sep 28 00:38:44 2018 +0800
Add TimestampSpec format for microsecond (#6395)
---
docs/content/ingestion/ingestion-spec.md | 2 +-
.../org/apache/druid/java/util/common/parsers/TimestampParser.java | 7 +++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/docs/content/ingestion/ingestion-spec.md
b/docs/content/ingestion/ingestion-spec.md
index 7978f6f..590ea30 100644
--- a/docs/content/ingestion/ingestion-spec.md
+++ b/docs/content/ingestion/ingestion-spec.md
@@ -187,7 +187,7 @@ handle all formatting decisions on their own, without using
the ParseSpec.
| Field | Type | Description | Required |
|-------|------|-------------|----------|
| column | String | The column of the timestamp. | yes |
-| format | String | iso, millis, posix, auto or any [Joda
time](http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)
format. | no (default == 'auto' |
+| format | String | iso, posix, millis, micro, nano, auto or any [Joda
time](http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)
format. | no (default == 'auto' |
### DimensionsSpec
diff --git
a/java-util/src/main/java/org/apache/druid/java/util/common/parsers/TimestampParser.java
b/java-util/src/main/java/org/apache/druid/java/util/common/parsers/TimestampParser.java
index 38f1206..ecd06f8 100644
---
a/java-util/src/main/java/org/apache/druid/java/util/common/parsers/TimestampParser.java
+++
b/java-util/src/main/java/org/apache/druid/java/util/common/parsers/TimestampParser.java
@@ -71,8 +71,9 @@ public class TimestampParser
return DateTimes.of(ParserUtils.stripQuotes(input));
};
} else if ("posix".equalsIgnoreCase(format)
- || "millis".equalsIgnoreCase(format)
- || "nano".equalsIgnoreCase(format)) {
+ || "millis".equalsIgnoreCase(format)
+ || "micro".equalsIgnoreCase(format)
+ || "nano".equalsIgnoreCase(format)) {
final Function<Number, DateTime> numericFun =
createNumericTimestampParser(format);
return input -> {
Preconditions.checkArgument(!Strings.isNullOrEmpty(input), "null
timestamp");
@@ -104,6 +105,8 @@ public class TimestampParser
{
if ("posix".equalsIgnoreCase(format)) {
return input ->
DateTimes.utc(TimeUnit.SECONDS.toMillis(input.longValue()));
+ } else if ("micro".equalsIgnoreCase(format)) {
+ return input ->
DateTimes.utc(TimeUnit.MICROSECONDS.toMillis(input.longValue()));
} else if ("nano".equalsIgnoreCase(format)) {
return input ->
DateTimes.utc(TimeUnit.NANOSECONDS.toMillis(input.longValue()));
} else if ("ruby".equalsIgnoreCase(format)) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]