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 +4 -4
- data/README.md +10 -3
- data/build.gradle +1 -1
- data/src/main/java/org/embulk/output/analytics_cloud/AnalyticsCloudOutputPlugin.java +74 -16
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f00ff3f2aad0af7593bf97525548b2dff9fab7e1
|
4
|
+
data.tar.gz: c4df8f7a6aaca06ddc21752e407ed72a2ce3d1a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
- **
|
21
|
-
- **
|
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
|
|
data/build.gradle
CHANGED
@@ -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("
|
88
|
-
@ConfigDefault("
|
89
|
-
public Optional<
|
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
|
-
|
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
|
-
|
221
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
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",
|
429
|
+
put("format", task.getAutoMetadataTask().get().getFormat().get());
|
373
430
|
}
|
374
431
|
if (column.getType().getJavaType().equals(long.class)) {
|
375
|
-
put("scale",
|
376
|
-
put("precision",
|
377
|
-
put("defaultValue",
|
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",
|
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.
|
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
|
+
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.
|
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
|