embulk-output-analytics_cloud 0.1.0 → 0.1.1

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: 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