embulk-output-elasticsearch 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b72c4cd366c2fa4f119b7c7c51d181363680bbca
4
- data.tar.gz: 1261ff1b930b18629e625434c2952a1d63c1a1db
3
+ metadata.gz: 77e76440b56eee33e80dfce250dce8209c3a9831
4
+ data.tar.gz: 6ac309248b002ce2cd34d27078ed9f7fbde854ff
5
5
  SHA512:
6
- metadata.gz: d2acb45304e3a79c05c6a68e83816cb157154ad587bc3032775fb67c876fba120b5a22d39b5314ff80bcd4e4ba33627a2e3586c6e56e9c1a74ff7072dd6efb4a
7
- data.tar.gz: 592397a3ca552668f0fb7b31cbed40dcf6600817cd526f17731b6c3e744202e271064086900ac6808dbc750b34a79437e47d9f56cabb2b8dc0fe31c726756860
6
+ metadata.gz: 55339564362bc859925dd0e8f79c0d4b5cec268f901b3145c0920b865eab8abc804af39c2e5ddbf37ca07f9370e74d350beeb6f4fb4e82f484bd8498ee1a1f9d
7
+ data.tar.gz: ee5114f6ead0fd0d89353f5cc9717b83c383758bed77f739b361800371fb5d31f6f952295481ea083b80080c2db7c69deb05f02474b8618b957a17f3420e58c6
@@ -13,7 +13,7 @@ configurations {
13
13
  provided
14
14
  }
15
15
 
16
- version = "0.1.2"
16
+ version = "0.1.3"
17
17
 
18
18
  dependencies {
19
19
  compile "org.embulk:embulk-core:0.4.0"
@@ -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("index_name")
66
+ @Config("index")
64
67
  public String getIndex();
65
68
 
66
69
  @Config("index_type")
67
- public String getIndexType();
70
+ public String getType();
68
71
 
69
- @Config("doc_id_column")
72
+ @Config("id")
70
73
  @ConfigDefault("null")
71
- public Optional<String> getIdColumn();
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 indexType;
203
- private final String docIdColumn;
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.indexType = task.getIndexType();
214
- this.docIdColumn = task.getIdColumn().orNull();
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
- // TODO
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(indexType).id(docIdColumn);
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.2
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-24 00:00:00.000000000 Z
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.2.jar
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
- }