embulk-output-redshift 0.7.12 → 0.7.13

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: 0f49d2ce2f0a28ab1a34ad8e0a1a5b3df3dac5e8
4
- data.tar.gz: da8446b33c11ac4f1736d37ad60c9e3dd9faf2f8
3
+ metadata.gz: 306629e8d5f5a0a452aa9e341d0e564f4d7599f7
4
+ data.tar.gz: dc5fef08ee347b5e72065a051d6769b16bbab7cf
5
5
  SHA512:
6
- metadata.gz: f6f4a3167321def1c531d9e94f1988441309a9127949f508b660eae5a6dad5763e52c434681bf670f06026bf6aed8babfccb10f3193115468d06f639cb203d91
7
- data.tar.gz: 8f7681e29c631b46570f87d43920f64f3b6e5c8440becdaf48aa5d71440acd9031a8cb227b78ab442fe1c18c33cea061fe580d8f15fd386874a930e150193b4e
6
+ metadata.gz: 36ed60b43124aae3ab0352c627e4fb54ddf103c943d39bc1db619112a9f0e5054489fbb390cc4ee67c3f5a234059ebba41be27311cb9ea9ce5bce11d69f1ec8b
7
+ data.tar.gz: baf054ea4d486e697f93b70f2304f5b59ff46c18ed97d34200922de099434e85a86a29f17884c5a64646a9e5c9a9e3441c450fc72b0943c2129e3c20989ad8d9
data/README.md CHANGED
@@ -19,6 +19,8 @@ Redshift output plugin for Embulk loads records to Redshift.
19
19
  - **schema**: destination schema name (string, default: "public")
20
20
  - **temp_schema**: schema name for intermediate tables. by default, intermediate tables will be created in the schema specified by `schema`. replace mode doesn't support temp_schema. (string, optional)
21
21
  - **table**: destination table name (string, required)
22
+ - **create_table_constraint** table constraint added to `CREATE TABLE` statement, like `CREATE TABLE <table_name> (<column1> <type1>, <column2> <type2>, ..., <create_table_constraint>) <create_table_option>`.
23
+ - **create_table_option** table option added to `CREATE TABLE` statement, like `CREATE TABLE <table_name> (<column1> <type1>, <column2> <type2>, ..., <create_table_constraint>) <create_table_option>`.
22
24
  - **access_key_id**: deprecated. `aws_access_key_id` should be used (see "basic" in `aws_auth_method`).
23
25
  - **secret_access_key**: deprecated. `aws_secret_access_key` should be used (see "basic" in `aws_auth_method`).
24
26
  - **aws_auth_method**: name of mechanism to authenticate requests ("basic", "env", "instance", "profile", "properties", "anonymous", or "session". default: "basic")
@@ -62,7 +64,8 @@ Redshift output plugin for Embulk loads records to Redshift.
62
64
 
63
65
  - **iam_user_name**: IAM user name for uploading temporary files to S3. The user should have permissions of `s3:GetObject`, `s3:PutObject`, `s3:DeleteObject`, `s3:ListBucket` and `sts:GetFederationToken`. And furthermore, the user should have permission of `s3:GetBucketLocation` if Redshift region and S3 bucket region are different. (string, default: "", but we strongly recommend that you use IAM user for security reasons. see below.)
64
66
  - **s3_bucket**: S3 bucket name for temporary files
65
- - **s3_key_prefix**: S3 key prefix for temporary files (string, default:"")
67
+ - **s3_key_prefix**: S3 key prefix for temporary files (string, default: "")
68
+ - **delete_s3_temp_file**: whether to delete temporary files uploaded on S3 (boolean, default: true)
66
69
  - **options**: extra connection properties (hash, default: {})
67
70
  - **retry_limit** max retry count for database operations (integer, default: 12)
68
71
  - **retry_wait** initial retry wait time in milliseconds (integer, default: 1000 (1 second))
@@ -75,6 +75,10 @@ public class RedshiftOutputPlugin
75
75
  @ConfigDefault("\"\"")
76
76
  public String getS3KeyPrefix();
77
77
 
78
+ @Config("delete_s3_temp_file")
79
+ @ConfigDefault("true")
80
+ public boolean getDeleteS3TempFile();
81
+
78
82
  @Config("ssl")
79
83
  @ConfigDefault("\"disable\"")
80
84
  public Ssl getSsl();
@@ -90,7 +94,7 @@ public class RedshiftOutputPlugin
90
94
  protected Features getFeatures(PluginTask task)
91
95
  {
92
96
  return new Features()
93
- .setMaxTableNameLength(30)
97
+ .setMaxTableNameLength(127)
94
98
  .setSupportedModes(ImmutableSet.of(Mode.INSERT, Mode.INSERT_DIRECT, Mode.TRUNCATE_INSERT, Mode.REPLACE, Mode.MERGE))
95
99
  .setIgnoreMergeKeys(false);
96
100
  }
@@ -188,6 +192,6 @@ public class RedshiftOutputPlugin
188
192
  RedshiftPluginTask t = (RedshiftPluginTask) task;
189
193
  setAWSCredentialsBackwardCompatibility(t);
190
194
  return new RedshiftCopyBatchInsert(getConnector(task, true),
191
- getAWSCredentialsProvider(t), t.getS3Bucket(), t.getS3KeyPrefix(), t.getIamUserName());
195
+ getAWSCredentialsProvider(t), t.getS3Bucket(), t.getS3KeyPrefix(), t.getIamUserName(), t.getDeleteS3TempFile());
192
196
  }
193
197
  }
@@ -46,6 +46,7 @@ public class RedshiftCopyBatchInsert
46
46
  private final String s3BucketName;
47
47
  private final String s3KeyPrefix;
48
48
  private final String iamReaderUserName;
49
+ private final boolean deleteS3TempFile;
49
50
  private final AWSCredentialsProvider credentialsProvider;
50
51
  private final AmazonS3Client s3;
51
52
  private final String s3RegionName;
@@ -62,7 +63,7 @@ public class RedshiftCopyBatchInsert
62
63
 
63
64
  public RedshiftCopyBatchInsert(RedshiftOutputConnector connector,
64
65
  AWSCredentialsProvider credentialsProvider, String s3BucketName, String s3KeyPrefix,
65
- String iamReaderUserName) throws IOException, SQLException
66
+ String iamReaderUserName, boolean deleteS3TempFile) throws IOException, SQLException
66
67
  {
67
68
  super();
68
69
  this.connector = connector;
@@ -73,6 +74,7 @@ public class RedshiftCopyBatchInsert
73
74
  this.s3KeyPrefix = s3KeyPrefix + "/";
74
75
  }
75
76
  this.iamReaderUserName = iamReaderUserName;
77
+ this.deleteS3TempFile = deleteS3TempFile;
76
78
  this.credentialsProvider = credentialsProvider;
77
79
  this.s3 = new AmazonS3Client(credentialsProvider); // TODO options
78
80
  this.sts = new AWSSecurityTokenServiceClient(credentialsProvider); // options
@@ -268,7 +270,9 @@ public class RedshiftCopyBatchInsert
268
270
  con.close();
269
271
  }
270
272
  } finally {
271
- s3.deleteObject(s3BucketName, s3KeyName);
273
+ if (deleteS3TempFile) {
274
+ s3.deleteObject(s3BucketName, s3KeyName);
275
+ }
272
276
  }
273
277
 
274
278
  return null;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-output-redshift
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.12
4
+ version: 0.7.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-24 00:00:00.000000000 Z
11
+ date: 2017-12-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Inserts or updates records to a table.
14
14
  email:
@@ -25,9 +25,9 @@ files:
25
25
  - classpath/aws-java-sdk-sts-1.10.77.jar
26
26
  - classpath/commons-codec-1.6.jar
27
27
  - classpath/commons-logging-1.1.3.jar
28
- - classpath/embulk-output-jdbc-0.7.12.jar
29
- - classpath/embulk-output-postgresql-0.7.12.jar
30
- - classpath/embulk-output-redshift-0.7.12.jar
28
+ - classpath/embulk-output-jdbc-0.7.13.jar
29
+ - classpath/embulk-output-postgresql-0.7.13.jar
30
+ - classpath/embulk-output-redshift-0.7.13.jar
31
31
  - classpath/embulk-util-aws-credentials-0.2.8.jar
32
32
  - classpath/httpclient-4.3.6.jar
33
33
  - classpath/httpcore-4.3.3.jar