Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Forever310
druid
提交
0c5a906a
D
druid
项目概览
Forever310
/
druid
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
druid
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0c5a906a
编写于
8月 14, 2013
作者:
C
cheddar
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:metamx/druid
上级
ba5ed4c9
a0fcd02b
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
122 addition
and
48 deletion
+122
-48
client/pom.xml
client/pom.xml
+1
-1
common/pom.xml
common/pom.xml
+1
-1
examples/pom.xml
examples/pom.xml
+1
-1
indexing-common/pom.xml
indexing-common/pom.xml
+1
-1
indexing-common/src/main/java/com/metamx/druid/indexer/data/InputRowParser.java
...in/java/com/metamx/druid/indexer/data/InputRowParser.java
+0
-7
indexing-common/src/main/java/com/metamx/druid/indexer/data/StringInputRowParser.java
...a/com/metamx/druid/indexer/data/StringInputRowParser.java
+28
-14
indexing-common/src/test/java/com/metamx/druid/indexer/data/InputRowParserSerdeTest.java
...om/metamx/druid/indexer/data/InputRowParserSerdeTest.java
+70
-0
indexing-hadoop/pom.xml
indexing-hadoop/pom.xml
+1
-1
indexing-service/pom.xml
indexing-service/pom.xml
+1
-1
pom.xml
pom.xml
+1
-1
realtime/pom.xml
realtime/pom.xml
+1
-1
realtime/src/main/java/com/metamx/druid/realtime/firehose/KafkaFirehoseFactory.java
.../metamx/druid/realtime/firehose/KafkaFirehoseFactory.java
+13
-16
server/pom.xml
server/pom.xml
+1
-1
services/pom.xml
services/pom.xml
+2
-2
未找到文件。
client/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -28,7 +28,7 @@
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
common/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -28,7 +28,7 @@
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
examples/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -9,7 +9,7 @@
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
indexing-common/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -28,7 +28,7 @@
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
indexing-common/src/main/java/com/metamx/druid/indexer/data/InputRowParser.java
浏览文件 @
0c5a906a
package
com.metamx.druid.indexer.data
;
import
com.fasterxml.jackson.annotation.JsonSubTypes
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.metamx.common.exception.FormattedException
;
import
com.metamx.druid.input.InputRow
;
@JsonTypeInfo
(
use
=
JsonTypeInfo
.
Id
.
NAME
,
property
=
"type"
,
defaultImpl
=
StringInputRowParser
.
class
)
@JsonSubTypes
({
@JsonSubTypes
.
Type
(
name
=
"string"
,
value
=
StringInputRowParser
.
class
),
@JsonSubTypes
.
Type
(
name
=
"protobuf"
,
value
=
ProtoBufInputRowParser
.
class
)
})
public
interface
InputRowParser
<
T
>
{
public
InputRow
parse
(
T
input
)
throws
FormattedException
;
...
...
indexing-common/src/main/java/com/metamx/druid/indexer/data/StringInputRowParser.java
浏览文件 @
0c5a906a
...
...
@@ -19,28 +19,29 @@
package
com.metamx.druid.indexer.data
;
import
java.nio.ByteBuffer
;
import
java.nio.CharBuffer
;
import
java.nio.charset.CoderResult
;
import
java.nio.charset.CodingErrorAction
;
import
java.util.List
;
import
java.util.Map
;
import
com.fasterxml.jackson.annotation.JsonCreator
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.fasterxml.jackson.annotation.JsonValue
;
import
com.google.common.base.Charsets
;
import
com.google.common.collect.ImmutableList
;
import
com.metamx.common.exception.FormattedException
;
import
com.metamx.common.parsers.Parser
;
import
com.metamx.common.parsers.ToLowerCaseParser
;
import
com.metamx.druid.input.InputRow
;
import
java.nio.ByteBuffer
;
import
java.nio.CharBuffer
;
import
java.nio.charset.CoderResult
;
import
java.nio.charset.CodingErrorAction
;
import
java.util.List
;
import
java.util.Map
;
/**
*/
public
class
StringInputRowParser
implements
ByteBufferInputRowParser
{
private
final
InputRowParser
<
Map
<
String
,
Object
>>
inputRowCreator
;
private
final
MapInputRowParser
inputRowCreator
;
private
final
Parser
<
String
,
Object
>
parser
;
private
final
DataSpec
dataSpec
;
private
CharBuffer
chars
=
null
;
...
...
@@ -50,6 +51,7 @@ public class StringInputRowParser implements ByteBufferInputRowParser
@JsonProperty
(
"data"
)
DataSpec
dataSpec
,
@JsonProperty
(
"dimensionExclusions"
)
List
<
String
>
dimensionExclusions
)
{
this
.
dataSpec
=
dataSpec
;
this
.
inputRowCreator
=
new
MapInputRowParser
(
timestampSpec
,
dataSpec
.
getDimensions
(),
dimensionExclusions
);
this
.
parser
=
new
ToLowerCaseParser
(
dataSpec
.
getParser
());
}
...
...
@@ -116,9 +118,21 @@ public class StringInputRowParser implements ByteBufferInputRowParser
return
inputRowCreator
.
parse
(
theMap
);
}
@JsonValue
public
InputRowParser
<
Map
<
String
,
Object
>>
getInputRowCreator
()
{
return
inputRowCreator
;
}
@JsonProperty
public
TimestampSpec
getTimestampSpec
()
{
return
inputRowCreator
.
getTimestampSpec
();
}
@JsonProperty
(
"data"
)
public
DataSpec
getDataSpec
()
{
return
dataSpec
;
}
@JsonProperty
public
List
<
String
>
getDimensionExclusions
()
{
return
ImmutableList
.
copyOf
(
inputRowCreator
.
getDimensionExclusions
());
}
}
indexing-common/src/test/java/com/metamx/druid/indexer/data/InputRowParserSerdeTest.java
0 → 100644
浏览文件 @
0c5a906a
package
com.metamx.druid.indexer.data
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.google.common.base.Charsets
;
import
com.google.common.collect.ImmutableList
;
import
com.google.common.collect.ImmutableMap
;
import
com.metamx.druid.index.v1.SpatialDimensionSchema
;
import
com.metamx.druid.input.InputRow
;
import
com.metamx.druid.jackson.DefaultObjectMapper
;
import
junit.framework.Assert
;
import
org.joda.time.DateTime
;
import
org.junit.Test
;
import
java.nio.ByteBuffer
;
public
class
InputRowParserSerdeTest
{
private
final
ObjectMapper
jsonMapper
=
new
DefaultObjectMapper
();
@Test
public
void
testStringInputRowParserSerde
()
throws
Exception
{
final
StringInputRowParser
parser
=
new
StringInputRowParser
(
new
TimestampSpec
(
"timestamp"
,
"iso"
),
new
JSONDataSpec
(
ImmutableList
.
of
(
"foo"
,
"bar"
),
ImmutableList
.<
SpatialDimensionSchema
>
of
()
),
ImmutableList
.
of
(
"baz"
)
);
final
ByteBufferInputRowParser
parser2
=
jsonMapper
.
readValue
(
jsonMapper
.
writeValueAsBytes
(
parser
),
ByteBufferInputRowParser
.
class
);
final
InputRow
parsed
=
parser2
.
parse
(
ByteBuffer
.
wrap
(
"{\"foo\":\"x\",\"bar\":\"y\",\"qux\":\"z\",\"timestamp\":\"2000\"}"
.
getBytes
(
Charsets
.
UTF_8
)
)
);
Assert
.
assertEquals
(
ImmutableList
.
of
(
"foo"
,
"bar"
),
parsed
.
getDimensions
());
Assert
.
assertEquals
(
ImmutableList
.
of
(
"x"
),
parsed
.
getDimension
(
"foo"
));
Assert
.
assertEquals
(
ImmutableList
.
of
(
"y"
),
parsed
.
getDimension
(
"bar"
));
Assert
.
assertEquals
(
new
DateTime
(
"2000"
).
getMillis
(),
parsed
.
getTimestampFromEpoch
());
}
@Test
public
void
testMapInputRowParserSerde
()
throws
Exception
{
final
MapInputRowParser
parser
=
new
MapInputRowParser
(
new
TimestampSpec
(
"timestamp"
,
"iso"
),
ImmutableList
.
of
(
"foo"
,
"bar"
),
ImmutableList
.
of
(
"baz"
)
);
final
MapInputRowParser
parser2
=
jsonMapper
.
readValue
(
jsonMapper
.
writeValueAsBytes
(
parser
),
MapInputRowParser
.
class
);
final
InputRow
parsed
=
parser2
.
parse
(
ImmutableMap
.<
String
,
Object
>
of
(
"foo"
,
"x"
,
"bar"
,
"y"
,
"qux"
,
"z"
,
"timestamp"
,
"2000"
)
);
Assert
.
assertEquals
(
ImmutableList
.
of
(
"foo"
,
"bar"
),
parsed
.
getDimensions
());
Assert
.
assertEquals
(
ImmutableList
.
of
(
"x"
),
parsed
.
getDimension
(
"foo"
));
Assert
.
assertEquals
(
ImmutableList
.
of
(
"y"
),
parsed
.
getDimension
(
"bar"
));
Assert
.
assertEquals
(
new
DateTime
(
"2000"
).
getMillis
(),
parsed
.
getTimestampFromEpoch
());
}
}
indexing-hadoop/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -28,7 +28,7 @@
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
indexing-service/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -28,7 +28,7 @@
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
pom.xml
浏览文件 @
0c5a906a
...
...
@@ -23,7 +23,7 @@
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<packaging>
pom
</packaging>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
<name>
druid
</name>
<description>
druid
</description>
<scm>
...
...
realtime/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -28,7 +28,7 @@
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
realtime/src/main/java/com/metamx/druid/realtime/firehose/KafkaFirehoseFactory.java
浏览文件 @
0c5a906a
...
...
@@ -19,14 +19,13 @@
package
com.metamx.druid.realtime.firehose
;
import
java.io.IOException
;
import
java.nio.ByteBuffer
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Properties
;
import
com.fasterxml.jackson.annotation.JsonCreator
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.google.common.collect.ImmutableMap
;
import
com.metamx.common.exception.FormattedException
;
import
com.metamx.common.logger.Logger
;
import
com.metamx.druid.indexer.data.ByteBufferInputRowParser
;
import
com.metamx.druid.input.InputRow
;
import
kafka.consumer.Consumer
;
import
kafka.consumer.ConsumerConfig
;
import
kafka.consumer.KafkaStream
;
...
...
@@ -34,13 +33,11 @@ import kafka.javaapi.consumer.ConsumerConnector;
import
kafka.message.Message
;
import
kafka.message.MessageAndMetadata
;
import
com.fasterxml.jackson.annotation.JsonCreator
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.google.common.collect.ImmutableMap
;
import
com.metamx.common.exception.FormattedException
;
import
com.metamx.common.logger.Logger
;
import
com.metamx.druid.indexer.data.InputRowParser
;
import
com.metamx.druid.input.InputRow
;
import
java.io.IOException
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Properties
;
/**
*/
...
...
@@ -92,9 +89,9 @@ public class KafkaFirehoseFactory implements FirehoseFactory
{
private
final
ConsumerConnector
connector
;
private
final
Iterator
<
MessageAndMetadata
<
Message
>>
iter
;
private
final
InputRowParser
<
ByteBuffer
>
parser
;
private
final
ByteBufferInputRowParser
parser
;
public
DefaultFirehose
(
ConsumerConnector
connector
,
KafkaStream
<
Message
>
stream
,
InputRowParser
<
ByteBuffer
>
parser
)
public
DefaultFirehose
(
ConsumerConnector
connector
,
KafkaStream
<
Message
>
stream
,
ByteBufferInputRowParser
parser
)
{
iter
=
stream
.
iterator
();
this
.
connector
=
connector
;
...
...
server/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -28,7 +28,7 @@
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
services/pom.xml
浏览文件 @
0c5a906a
...
...
@@ -24,11 +24,11 @@
<artifactId>
druid-services
</artifactId>
<name>
druid-services
</name>
<description>
druid-services
</description>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
<parent>
<groupId>
com.metamx
</groupId>
<artifactId>
druid
</artifactId>
<version>
0.5.4
0
-SNAPSHOT
</version>
<version>
0.5.4
1
-SNAPSHOT
</version>
</parent>
<dependencies>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录