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