embulk-output-elasticsearch 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77e76440b56eee33e80dfce250dce8209c3a9831
|
4
|
+
data.tar.gz: 6ac309248b002ce2cd34d27078ed9f7fbde854ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55339564362bc859925dd0e8f79c0d4b5cec268f901b3145c0920b865eab8abc804af39c2e5ddbf37ca07f9370e74d350beeb6f4fb4e82f484bd8498ee1a1f9d
|
7
|
+
data.tar.gz: ee5114f6ead0fd0d89353f5cc9717b83c383758bed77f739b361800371fb5d31f6f952295481ea083b80080c2db7c69deb05f02474b8618b957a17f3420e58c6
|
data/build.gradle
CHANGED
@@ -37,9 +37,12 @@ import org.embulk.spi.TransactionalPageOutput;
|
|
37
37
|
import org.slf4j.Logger;
|
38
38
|
|
39
39
|
import java.io.IOException;
|
40
|
+
import java.util.Date;
|
40
41
|
import java.util.List;
|
41
42
|
import java.util.concurrent.TimeUnit;
|
42
43
|
|
44
|
+
import static com.google.common.base.Preconditions.checkState;
|
45
|
+
|
43
46
|
public class ElasticsearchOutputPlugin
|
44
47
|
implements OutputPlugin
|
45
48
|
{
|
@@ -60,15 +63,15 @@ public class ElasticsearchOutputPlugin
|
|
60
63
|
@Config("nodes")
|
61
64
|
public List<NodeAddressTask> getNodes();
|
62
65
|
|
63
|
-
@Config("
|
66
|
+
@Config("index")
|
64
67
|
public String getIndex();
|
65
68
|
|
66
69
|
@Config("index_type")
|
67
|
-
public String
|
70
|
+
public String getType();
|
68
71
|
|
69
|
-
@Config("
|
72
|
+
@Config("id")
|
70
73
|
@ConfigDefault("null")
|
71
|
-
public Optional<String>
|
74
|
+
public Optional<String> getId();
|
72
75
|
|
73
76
|
@Config("bulk_actions")
|
74
77
|
@ConfigDefault("1000")
|
@@ -94,9 +97,22 @@ public class ElasticsearchOutputPlugin
|
|
94
97
|
{
|
95
98
|
final RunnerTask task = config.loadConfig(RunnerTask.class);
|
96
99
|
|
100
|
+
// confirm that a client can be initialized
|
97
101
|
try (Client client = createClient(task)) {
|
98
102
|
}
|
99
103
|
|
104
|
+
// check that id is included in the schema or not if the id is not null.
|
105
|
+
if (task.getId().isPresent()) {
|
106
|
+
String id = task.getId().get();
|
107
|
+
boolean found = false;
|
108
|
+
for (Column column : schema.getColumns()) {
|
109
|
+
if (column.equals(id)) {
|
110
|
+
found = true;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
checkState(found, "id is not included in column names of the Schema.");
|
114
|
+
}
|
115
|
+
|
100
116
|
try {
|
101
117
|
control.run(task.dump());
|
102
118
|
} catch (Exception e) {
|
@@ -199,8 +215,8 @@ public class ElasticsearchOutputPlugin
|
|
199
215
|
private PageReader pageReader;
|
200
216
|
|
201
217
|
private final String index;
|
202
|
-
private final String
|
203
|
-
private final String
|
218
|
+
private final String type;
|
219
|
+
private final String id;
|
204
220
|
|
205
221
|
ElasticsearchPageOutput(RunnerTask task, Client client, BulkProcessor bulkProcessor)
|
206
222
|
{
|
@@ -210,8 +226,8 @@ public class ElasticsearchOutputPlugin
|
|
210
226
|
this.bulkProcessor = bulkProcessor;
|
211
227
|
|
212
228
|
this.index = task.getIndex();
|
213
|
-
this.
|
214
|
-
this.
|
229
|
+
this.type = task.getType();
|
230
|
+
this.id = task.getId().orNull();
|
215
231
|
}
|
216
232
|
|
217
233
|
void open(final Schema schema)
|
@@ -282,7 +298,15 @@ public class ElasticsearchOutputPlugin
|
|
282
298
|
|
283
299
|
@Override
|
284
300
|
public void timestampColumn(Column column) {
|
285
|
-
|
301
|
+
try {
|
302
|
+
contextBuilder.field(column.getName(), new Date(pageReader.getTimestamp(column).toEpochMilli()));
|
303
|
+
} catch (IOException e) {
|
304
|
+
try {
|
305
|
+
contextBuilder.nullField(column.getName());
|
306
|
+
} catch (IOException ex) {
|
307
|
+
throw Throwables.propagate(ex);
|
308
|
+
}
|
309
|
+
}
|
286
310
|
}
|
287
311
|
});
|
288
312
|
|
@@ -297,7 +321,7 @@ public class ElasticsearchOutputPlugin
|
|
297
321
|
|
298
322
|
private IndexRequest newIndexRequest()
|
299
323
|
{
|
300
|
-
return Requests.indexRequest(index).type(
|
324
|
+
return Requests.indexRequest(index).type(type).id(id);
|
301
325
|
}
|
302
326
|
|
303
327
|
@Override
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-output-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Muga Nishizawa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -69,11 +69,10 @@ files:
|
|
69
69
|
- lib/embulk/output/elasticsearch.rb
|
70
70
|
- settings.gradle
|
71
71
|
- src/main/java/org/embulk/output/ElasticsearchOutputPlugin.java
|
72
|
-
- src/main/java/org/embulk/output/ElasticsearchOutputPluginModule.java
|
73
72
|
- src/main/resources/META-INF/services/org.embulk.spi.Extension
|
74
73
|
- src/test/java/org/embulk/output/TestElasticsearchOutputPlugin.java
|
75
74
|
- classpath/elasticsearch-1.4.2.jar
|
76
|
-
- classpath/embulk-output-elasticsearch-0.1.
|
75
|
+
- classpath/embulk-output-elasticsearch-0.1.3.jar
|
77
76
|
- classpath/lucene-analyzers-common-4.10.2.jar
|
78
77
|
- classpath/lucene-core-4.10.2.jar
|
79
78
|
- classpath/lucene-grouping-4.10.2.jar
|
@@ -1,31 +0,0 @@
|
|
1
|
-
package org.embulk.output;
|
2
|
-
|
3
|
-
import com.google.common.base.Preconditions;
|
4
|
-
import com.google.common.collect.ImmutableList;
|
5
|
-
import com.google.inject.Binder;
|
6
|
-
import com.google.inject.Module;
|
7
|
-
import org.embulk.config.ConfigSource;
|
8
|
-
import org.embulk.spi.Extension;
|
9
|
-
import org.embulk.spi.OutputPlugin;
|
10
|
-
|
11
|
-
import java.util.List;
|
12
|
-
|
13
|
-
import static org.embulk.plugin.InjectedPluginSource.registerPluginTo;
|
14
|
-
|
15
|
-
public class ElasticsearchOutputPluginModule
|
16
|
-
implements Extension, Module
|
17
|
-
{
|
18
|
-
|
19
|
-
@Override
|
20
|
-
public void configure(Binder binder)
|
21
|
-
{
|
22
|
-
Preconditions.checkNotNull(binder, "binder is null.");
|
23
|
-
registerPluginTo(binder, OutputPlugin.class, "elasticsearch", ElasticsearchOutputPlugin.class);
|
24
|
-
}
|
25
|
-
|
26
|
-
@Override
|
27
|
-
public List<Module> getModules(ConfigSource systemConfig)
|
28
|
-
{
|
29
|
-
return ImmutableList.<Module>of(this);
|
30
|
-
}
|
31
|
-
}
|