embulk-output-analytics_cloud 0.1.0 → 0.1.1

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: e56deed75f747698154a00fd6c09d78e10308d53
4
- data.tar.gz: b9e83121ce91a01e7e4cf0d17fc31e104e5aa058
3
+ metadata.gz: f00ff3f2aad0af7593bf97525548b2dff9fab7e1
4
+ data.tar.gz: c4df8f7a6aaca06ddc21752e407ed72a2ce3d1a5
5
5
  SHA512:
6
- metadata.gz: 535210cd11f90c91510855c49b2118b28dacada5e9a01a2d341f53d54e95236e8508d46541862ee8d3342e1c1d80a0d0f372b6dd0830c9d8d39dd2edae9958af
7
- data.tar.gz: a54652f0de1cd6f433f9664f73eed1c02cbc966864f98306c81b3ff62b0efb49574e529df0cc7cc6858e020b126861d3cdb9453f0ed0cd34abc8542a525dad0d
6
+ metadata.gz: 0968200ce4dc1c48efb3d2ee8c0dccb71d39f60f138664f888d4d61ab75b7754a4b5260aeceb0c29937309f66d7a19cebd67402e301273822015d780f8065e8b
7
+ data.tar.gz: 85d08495056b061741f57d689a73199a9c02b61a54fc35f34c876802ba48bcc32421351933c63588446d73e3aa30fad2005b92ec506ef0a190c80ea7bbfff8f9
data/README.md CHANGED
@@ -13,12 +13,18 @@ Embulk output plugin to load into Analytics Cloud.
13
13
 
14
14
  - **username**: analytics cloud username (string, required)
15
15
  - **password**: analytics cloud password (string, required)
16
- - **login_endpoint**: endpoint (string, default: `https://login.salesforce.com`)
16
+ - **login_endpoint**: endpoint (string, default: `"https://login.salesforce.com"`)
17
17
  - **edgemart_alias**: edgemart alias (string, required)
18
18
  - **operation**: operation (string, default: `"Append"`)
19
19
  - **metadata_json**: MetadataJson (string, default: `null`)
20
- - **auto_metadata**: auto creation for MetadataJson (integer, required)
21
- - **batch_size**: data size for a InsightsExternalDataPart record (integer, default: `"3000"`)
20
+ - **auto_metadata_settings**: auto creation for MetadataJson (object, default: `null`)
21
+ - **connector**: connector name (string, default: `"EmbulkOutputPluginConnector"`)
22
+ - **description**: description (string, default: `""`)
23
+ - **precision**: precision for Numeric columns (integer, default: `18`)
24
+ - **scale**: scale for Numeric columns (integer, default: `4`)
25
+ - **default_value**: default value for Numeric columns (integer)
26
+ - **format**: format for Timestamp columns (string, default: `"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"`)
27
+ - **batch_size**: data size for a InsightsExternalDataPart record (integer, default: `3000`)
22
28
  - **version**: API version (string, default: `"34.0"`)
23
29
 
24
30
  ## Example
@@ -29,6 +35,7 @@ out:
29
35
  username: hoge
30
36
  password: fuga
31
37
  edgemart_alias: foobar
38
+ auto_metadata_settings: {}
32
39
  ```
33
40
 
34
41
 
@@ -12,7 +12,7 @@ configurations {
12
12
  provided
13
13
  }
14
14
 
15
- version = "0.1.0"
15
+ version = "0.1.1"
16
16
 
17
17
  dependencies {
18
18
  compile "org.embulk:embulk-core:0.7.4"
@@ -60,6 +60,34 @@ public class AnalyticsCloudOutputPlugin
60
60
  }
61
61
  };
62
62
 
63
+ public interface AutoMetadataTask extends Task
64
+ {
65
+ @Config("connector")
66
+ @ConfigDefault("\"EmbulkOutputPluginConnector\"")
67
+ public Optional<String> getConnectorName();
68
+
69
+ @Config("description")
70
+ @ConfigDefault("\"\"")
71
+ public Optional<String> getDescription();
72
+
73
+ @Config("scale")
74
+ @ConfigDefault("4")
75
+ public Optional<Integer> getScale();
76
+
77
+ @Config("precision")
78
+ @ConfigDefault("18")
79
+ public Optional<Integer> getPrecision();
80
+
81
+ @Config("default_value")
82
+ @ConfigDefault("0")
83
+ public Optional<Double> getDefaultValue();
84
+
85
+ @Config("format")
86
+ @ConfigDefault("\"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\"")
87
+ public Optional<String> getFormat();
88
+
89
+ }
90
+
63
91
  public interface PluginTask
64
92
  extends Task
65
93
  {
@@ -84,9 +112,9 @@ public class AnalyticsCloudOutputPlugin
84
112
  @ConfigDefault("null")
85
113
  public Optional<String> getMetadataJson();
86
114
 
87
- @Config("auto_metadata")
88
- @ConfigDefault("true")
89
- public Optional<String> getAutoMetadata();
115
+ @Config("auto_metadata_settings")
116
+ @ConfigDefault("null")
117
+ public Optional<AutoMetadataTask> getAutoMetadataTask();
90
118
 
91
119
  @Config("batch_size")
92
120
  @ConfigDefault("3000")
@@ -213,24 +241,44 @@ public class AnalyticsCloudOutputPlugin
213
241
  pageReader.getSchema().visitColumns(new ColumnVisitor() {
214
242
  @Override
215
243
  public void doubleColumn(Column column) {
216
- record.add(String.valueOf(pageReader.getDouble(column)));
244
+ if (pageReader.isNull(column)) {
245
+ record.add("");
246
+ } else {
247
+ record.add(String.valueOf(pageReader.getDouble(column)));
248
+ }
217
249
  }
218
250
  @Override
219
251
  public void timestampColumn(Column column) {
220
- DateTime dt = new DateTime(pageReader.getTimestamp(column).getEpochSecond()*1000);
221
- record.add(dt.toString("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
252
+ if (pageReader.isNull(column)) {
253
+ record.add("");
254
+ } else {
255
+ DateTime dt = new DateTime(pageReader.getTimestamp(column).getEpochSecond() * 1000);
256
+ record.add(dt.toString("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
257
+ }
222
258
  }
223
259
  @Override
224
260
  public void stringColumn(Column column) {
225
- record.add(pageReader.getString(column));
261
+ if (pageReader.isNull(column)) {
262
+ record.add("");
263
+ } else {
264
+ record.add(pageReader.getString(column));
265
+ }
226
266
  }
227
267
  @Override
228
268
  public void longColumn(Column column) {
229
- record.add(String.valueOf(pageReader.getLong(column)));
269
+ if (pageReader.isNull(column)) {
270
+ record.add("");
271
+ } else {
272
+ record.add(String.valueOf(pageReader.getLong(column)));
273
+ }
230
274
  }
231
275
  @Override
232
276
  public void booleanColumn(Column column) {
233
- record.add(String.valueOf(pageReader.getBoolean(column)));
277
+ if (pageReader.isNull(column)) {
278
+ record.add("");
279
+ } else {
280
+ record.add(String.valueOf(pageReader.getBoolean(column)));
281
+ }
234
282
  }
235
283
 
236
284
  });
@@ -328,7 +376,7 @@ public class AnalyticsCloudOutputPlugin
328
376
  insightsExdata.addField("Operation", task.getOperation().get());
329
377
  if (task.getMetadataJson().isPresent()) {
330
378
  insightsExdata.addField("MetadataJson", task.getMetadataJson().get().getBytes());
331
- } else if (task.getAutoMetadata().get().toLowerCase().equals("true")){
379
+ } else if (task.getAutoMetadataTask().isPresent()){
332
380
  insightsExdata.addField("MetadataJson", this.createMetadataJSON(task, schema).getBytes());
333
381
  }
334
382
 
@@ -347,6 +395,15 @@ public class AnalyticsCloudOutputPlugin
347
395
  }
348
396
 
349
397
  private String createMetadataJSON(PluginTask task, Schema schema) {
398
+ if (task.getAutoMetadataTask().isPresent()) {
399
+ logger.info("***Is Present***");
400
+ logger.info("{}", task.getAutoMetadataTask().get().getConnectorName().get());
401
+ logger.info("{}", task.getAutoMetadataTask().get().getDefaultValue().get());
402
+ logger.info("{}", task.getAutoMetadataTask().get().getDescription().get());
403
+ logger.info("{}", task.getAutoMetadataTask().get().getFormat().get());
404
+ logger.info("{}", task.getAutoMetadataTask().get().getPrecision().get());
405
+ logger.info("{}", task.getAutoMetadataTask().get().getScale().get());
406
+ }
350
407
  HashMap<String, Object> metadata = new HashMap<>();
351
408
  metadata.put("fileFormat", new HashMap<String, Object>(){
352
409
  {
@@ -369,12 +426,12 @@ public class AnalyticsCloudOutputPlugin
369
426
  put("type", DATATYPE_MAP.get(column.getType().toString()));
370
427
 
371
428
  if (column.getType().getJavaType().equals(Timestamp.class)) {
372
- put("format", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
429
+ put("format", task.getAutoMetadataTask().get().getFormat().get());
373
430
  }
374
431
  if (column.getType().getJavaType().equals(long.class)) {
375
- put("scale", 6);
376
- put("precision", 18);
377
- put("defaultValue", 0);
432
+ put("scale", task.getAutoMetadataTask().get().getScale().get());
433
+ put("precision", task.getAutoMetadataTask().get().getPrecision().get());
434
+ put("defaultValue", task.getAutoMetadataTask().get().getDefaultValue().get());
378
435
  }
379
436
  }
380
437
  });
@@ -383,8 +440,8 @@ public class AnalyticsCloudOutputPlugin
383
440
  ArrayList<HashMap<String, Object>> objects = new ArrayList<>();
384
441
  objects.add(new HashMap<String, Object>() {
385
442
  {
386
- put("connector", "EmbulkOutputPluginConnector");
387
- put("description", "");
443
+ put("connector", task.getAutoMetadataTask().get().getConnectorName().get());
444
+ put("description", task.getAutoMetadataTask().get().getDescription().get());
388
445
  put("fullyQualifiedName", task.getEdgemartAlias());
389
446
  put("label", task.getEdgemartAlias());
390
447
  put("name", task.getEdgemartAlias());
@@ -395,6 +452,7 @@ public class AnalyticsCloudOutputPlugin
395
452
 
396
453
  ObjectMapper mapper = new ObjectMapper();
397
454
  try {
455
+ logger.info(mapper.writeValueAsString(metadata));
398
456
  return mapper.writeValueAsString(metadata);
399
457
  } catch (JsonProcessingException ex) {
400
458
  logger.error(ex.getMessage());
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-output-analytics_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Makoto Tajitsu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-11 00:00:00.000000000 Z
11
+ date: 2016-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ files:
58
58
  - lib/partner.jar
59
59
  - src/main/java/org/embulk/output/analytics_cloud/AnalyticsCloudOutputPlugin.java
60
60
  - src/test/java/org/embulk/output/analytics_cloud/TestAnalyticsCloudOutputPlugin.java
61
- - classpath/embulk-output-analytics_cloud-0.1.0.jar
61
+ - classpath/embulk-output-analytics_cloud-0.1.1.jar
62
62
  - classpath/force-wsc-34.0.jar
63
63
  - classpath/partner.jar
64
64
  - classpath/super-csv-2.4.0.jar