embulk-output-redshift 0.8.2 → 0.8.3
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 +2 -1
- data/build.gradle +2 -2
- data/classpath/{aws-java-sdk-core-1.11.253.jar → aws-java-sdk-core-1.11.523.jar} +0 -0
- data/classpath/aws-java-sdk-kms-1.11.523.jar +0 -0
- data/classpath/aws-java-sdk-s3-1.11.523.jar +0 -0
- data/classpath/aws-java-sdk-sts-1.11.523.jar +0 -0
- data/classpath/{commons-codec-1.9.jar → commons-codec-1.10.jar} +0 -0
- data/classpath/embulk-output-jdbc-0.8.3.jar +0 -0
- data/classpath/embulk-output-postgresql-0.8.3.jar +0 -0
- data/classpath/embulk-output-redshift-0.8.3.jar +0 -0
- data/classpath/httpclient-4.5.5.jar +0 -0
- data/classpath/httpcore-4.4.9.jar +0 -0
- data/classpath/jackson-databind-2.6.7.2.jar +0 -0
- data/classpath/{jmespath-java-1.11.253.jar → jmespath-java-1.11.523.jar} +0 -0
- data/src/main/java/org/embulk/output/RedshiftOutputPlugin.java +3 -2
- data/src/main/java/org/embulk/output/redshift/RedshiftCopyBatchInsert.java +5 -6
- data/src/main/java/org/embulk/output/redshift/RedshiftOutputConnection.java +1 -2
- data/src/main/java/org/embulk/output/redshift/RedshiftOutputConnector.java +11 -5
- metadata +14 -14
- data/classpath/aws-java-sdk-kms-1.11.253.jar +0 -0
- data/classpath/aws-java-sdk-s3-1.11.253.jar +0 -0
- data/classpath/aws-java-sdk-sts-1.10.77.jar +0 -0
- data/classpath/embulk-output-jdbc-0.8.2.jar +0 -0
- data/classpath/embulk-output-postgresql-0.8.2.jar +0 -0
- data/classpath/embulk-output-redshift-0.8.2.jar +0 -0
- data/classpath/httpclient-4.5.2.jar +0 -0
- data/classpath/httpcore-4.4.4.jar +0 -0
- data/classpath/jackson-databind-2.6.7.1.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59e6e32d3500ebab6da91b63717a6a9ea2e1eba9
|
4
|
+
data.tar.gz: 04a60823379e8b9c0995de2319382a5dae1b00fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80a118548222cfba3055f45c5851a227cb37aff9d6d073db172d3d3b7a1fff707584f9ab8da3102cd433b641711d6b9729a05b125670969a767248af737c05d7
|
7
|
+
data.tar.gz: 20905dbeb9830dc7e1bc33fbdcff0245be4abe8282a296ccb6e144d284d6c3f0dcf262bcbe20ccb008c74cb28cb6128642ea48729cbb6a85d3fcf13442d3ce43
|
data/README.md
CHANGED
@@ -21,6 +21,7 @@ Redshift output plugin for Embulk loads records to Redshift.
|
|
21
21
|
- **table**: destination table name (string, required)
|
22
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
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>`.
|
24
|
+
- **transaction_isolation**: transaction isolation level for each connection ("read_uncommitted", "read_committed", "repeatable_read" or "serializable"). if not specified, database default value will be used.
|
24
25
|
- **access_key_id**: deprecated. `aws_access_key_id` should be used (see "basic" in `aws_auth_method`).
|
25
26
|
- **secret_access_key**: deprecated. `aws_secret_access_key` should be used (see "basic" in `aws_auth_method`).
|
26
27
|
- **aws_auth_method**: name of mechanism to authenticate requests ("basic", "env", "instance", "profile", "properties", "anonymous", "session" or "default". default: "basic")
|
@@ -74,7 +75,7 @@ Redshift output plugin for Embulk loads records to Redshift.
|
|
74
75
|
- **s3_key_prefix**: S3 key prefix for temporary files (string, default: "")
|
75
76
|
- **delete_s3_temp_file**: whether to delete temporary files uploaded on S3 (boolean, default: true)
|
76
77
|
- **options**: extra connection properties (hash, default: {})
|
77
|
-
- **retry_limit**: max retry count for database operations (integer, default: 12)
|
78
|
+
- **retry_limit**: max retry count for database operations (integer, default: 12). When intermediate table to create already created by another process, this plugin will retry with another table name to avoid collision.
|
78
79
|
- **retry_wait**: initial retry wait time in milliseconds (integer, default: 1000 (1 second))
|
79
80
|
- **max_retry_wait**: upper limit of retry wait, which will be doubled at every retry (integer, default: 1800000 (30 minutes))
|
80
81
|
- **mode**: "insert", "insert_direct", "truncate_insert", "replace" or "merge". See below. (string, required)
|
data/build.gradle
CHANGED
@@ -2,8 +2,8 @@ dependencies {
|
|
2
2
|
compile project(':embulk-output-jdbc')
|
3
3
|
compile project(':embulk-output-postgresql')
|
4
4
|
|
5
|
-
compile "com.amazonaws:aws-java-sdk-s3:1.
|
6
|
-
compile "com.amazonaws:aws-java-sdk-sts:1.
|
5
|
+
compile "com.amazonaws:aws-java-sdk-s3:1.11.523"
|
6
|
+
compile "com.amazonaws:aws-java-sdk-sts:1.11.523"
|
7
7
|
compile 'org.embulk.input.s3:embulk-util-aws-credentials:0.2.21'
|
8
8
|
|
9
9
|
testCompile project(':embulk-output-jdbc').sourceSets.test.output
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -16,6 +16,7 @@ import org.embulk.config.ConfigDefault;
|
|
16
16
|
import org.embulk.output.jdbc.AbstractJdbcOutputPlugin;
|
17
17
|
import org.embulk.output.jdbc.BatchInsert;
|
18
18
|
import org.embulk.output.jdbc.JdbcOutputConnection;
|
19
|
+
import org.embulk.output.jdbc.JdbcOutputConnector;
|
19
20
|
import org.embulk.output.jdbc.MergeConfig;
|
20
21
|
import org.embulk.output.jdbc.TableIdentifier;
|
21
22
|
import org.embulk.output.jdbc.Ssl;
|
@@ -100,7 +101,7 @@ public class RedshiftOutputPlugin
|
|
100
101
|
}
|
101
102
|
|
102
103
|
@Override
|
103
|
-
protected
|
104
|
+
protected JdbcOutputConnector getConnector(PluginTask task, boolean retryableMetadataOperation)
|
104
105
|
{
|
105
106
|
RedshiftPluginTask t = (RedshiftPluginTask) task;
|
106
107
|
|
@@ -140,7 +141,7 @@ public class RedshiftOutputPlugin
|
|
140
141
|
props.setProperty("password", t.getPassword());
|
141
142
|
logConnectionProperties(url, props);
|
142
143
|
|
143
|
-
return new RedshiftOutputConnector(url, props, t.getSchema());
|
144
|
+
return new RedshiftOutputConnector(url, props, t.getSchema(), t.getTransactionIsolation());
|
144
145
|
}
|
145
146
|
|
146
147
|
private static AWSCredentialsProvider getAWSCredentialsProvider(RedshiftPluginTask task)
|
@@ -17,6 +17,7 @@ import java.util.concurrent.Future;
|
|
17
17
|
import java.util.concurrent.TimeUnit;
|
18
18
|
import java.util.zip.GZIPOutputStream;
|
19
19
|
|
20
|
+
import org.embulk.output.jdbc.JdbcOutputConnector;
|
20
21
|
import org.embulk.output.jdbc.JdbcSchema;
|
21
22
|
import org.embulk.output.jdbc.TableIdentifier;
|
22
23
|
import org.embulk.output.postgresql.AbstractPostgreSQLCopyBatchInsert;
|
@@ -42,7 +43,7 @@ public class RedshiftCopyBatchInsert
|
|
42
43
|
extends AbstractPostgreSQLCopyBatchInsert
|
43
44
|
{
|
44
45
|
private final Logger logger = Exec.getLogger(RedshiftCopyBatchInsert.class);
|
45
|
-
private final
|
46
|
+
private final JdbcOutputConnector connector;
|
46
47
|
private final String s3BucketName;
|
47
48
|
private final String s3KeyPrefix;
|
48
49
|
private final String iamReaderUserName;
|
@@ -61,7 +62,7 @@ public class RedshiftCopyBatchInsert
|
|
61
62
|
|
62
63
|
public static final String COPY_AFTER_FROM = "GZIP DELIMITER '\\t' NULL '\\\\N' ESCAPE TRUNCATECOLUMNS ACCEPTINVCHARS STATUPDATE OFF COMPUPDATE OFF";
|
63
64
|
|
64
|
-
public RedshiftCopyBatchInsert(
|
65
|
+
public RedshiftCopyBatchInsert(JdbcOutputConnector connector,
|
65
66
|
AWSCredentialsProvider credentialsProvider, String s3BucketName, String s3KeyPrefix,
|
66
67
|
String iamReaderUserName, boolean deleteS3TempFile) throws IOException, SQLException
|
67
68
|
{
|
@@ -98,7 +99,7 @@ public class RedshiftCopyBatchInsert
|
|
98
99
|
@Override
|
99
100
|
public void prepare(TableIdentifier loadTable, JdbcSchema insertSchema) throws SQLException
|
100
101
|
{
|
101
|
-
this.connection = connector.connect(true);
|
102
|
+
this.connection = (RedshiftOutputConnection)connector.connect(true);
|
102
103
|
this.copySqlBeforeFrom = connection.buildCopySQLBeforeFrom(loadTable, insertSchema);
|
103
104
|
logger.info("Copy SQL: "+copySqlBeforeFrom+" ? "+COPY_AFTER_FROM);
|
104
105
|
}
|
@@ -137,8 +138,6 @@ public class RedshiftCopyBatchInsert
|
|
137
138
|
@Override
|
138
139
|
public void finish() throws IOException, SQLException
|
139
140
|
{
|
140
|
-
super.finish();
|
141
|
-
|
142
141
|
for (Future<Void> uploadAndCopyFuture : uploadAndCopyFutures) {
|
143
142
|
try {
|
144
143
|
uploadAndCopyFuture.get();
|
@@ -269,7 +268,7 @@ public class RedshiftCopyBatchInsert
|
|
269
268
|
try {
|
270
269
|
uploadFuture.get();
|
271
270
|
|
272
|
-
RedshiftOutputConnection con = connector.connect(true);
|
271
|
+
RedshiftOutputConnection con = (RedshiftOutputConnection)connector.connect(true);
|
273
272
|
try {
|
274
273
|
logger.info("Running COPY from file {}", s3KeyName);
|
275
274
|
|
@@ -19,11 +19,10 @@ public class RedshiftOutputConnection
|
|
19
19
|
{
|
20
20
|
private final Logger logger = Exec.getLogger(RedshiftOutputConnection.class);
|
21
21
|
|
22
|
-
public RedshiftOutputConnection(Connection connection, String schemaName
|
22
|
+
public RedshiftOutputConnection(Connection connection, String schemaName)
|
23
23
|
throws SQLException
|
24
24
|
{
|
25
25
|
super(connection, schemaName);
|
26
|
-
connection.setAutoCommit(autoCommit);
|
27
26
|
}
|
28
27
|
|
29
28
|
// ALTER TABLE cannot change the schema of a table
|
@@ -4,11 +4,15 @@ import java.util.Properties;
|
|
4
4
|
import java.sql.Driver;
|
5
5
|
import java.sql.Connection;
|
6
6
|
import java.sql.SQLException;
|
7
|
-
|
7
|
+
|
8
|
+
import org.embulk.output.jdbc.AbstractJdbcOutputConnector;
|
8
9
|
import org.embulk.output.jdbc.JdbcOutputConnection;
|
10
|
+
import org.embulk.output.jdbc.TransactionIsolation;
|
11
|
+
|
12
|
+
import com.google.common.base.Optional;
|
9
13
|
|
10
14
|
public class RedshiftOutputConnector
|
11
|
-
|
15
|
+
extends AbstractJdbcOutputConnector
|
12
16
|
{
|
13
17
|
private static final Driver driver = new org.postgresql.Driver();
|
14
18
|
|
@@ -16,19 +20,21 @@ public class RedshiftOutputConnector
|
|
16
20
|
private final Properties properties;
|
17
21
|
private final String schemaName;
|
18
22
|
|
19
|
-
public RedshiftOutputConnector(String url, Properties properties, String schemaName
|
23
|
+
public RedshiftOutputConnector(String url, Properties properties, String schemaName,
|
24
|
+
Optional<TransactionIsolation> transactionIsolation)
|
20
25
|
{
|
26
|
+
super(transactionIsolation);
|
21
27
|
this.url = url;
|
22
28
|
this.properties = properties;
|
23
29
|
this.schemaName = schemaName;
|
24
30
|
}
|
25
31
|
|
26
32
|
@Override
|
27
|
-
|
33
|
+
protected JdbcOutputConnection connect() throws SQLException
|
28
34
|
{
|
29
35
|
Connection c = driver.connect(url, properties);
|
30
36
|
try {
|
31
|
-
RedshiftOutputConnection con = new RedshiftOutputConnection(c, schemaName
|
37
|
+
RedshiftOutputConnection con = new RedshiftOutputConnection(c, schemaName);
|
32
38
|
c = null;
|
33
39
|
return con;
|
34
40
|
} finally {
|
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.8.
|
4
|
+
version: 0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Inserts or updates records to a table.
|
14
14
|
email:
|
@@ -19,23 +19,23 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- README.md
|
21
21
|
- build.gradle
|
22
|
-
- classpath/aws-java-sdk-core-1.11.
|
23
|
-
- classpath/aws-java-sdk-kms-1.11.
|
24
|
-
- classpath/aws-java-sdk-s3-1.11.
|
25
|
-
- classpath/aws-java-sdk-sts-1.
|
26
|
-
- classpath/commons-codec-1.
|
22
|
+
- classpath/aws-java-sdk-core-1.11.523.jar
|
23
|
+
- classpath/aws-java-sdk-kms-1.11.523.jar
|
24
|
+
- classpath/aws-java-sdk-s3-1.11.523.jar
|
25
|
+
- classpath/aws-java-sdk-sts-1.11.523.jar
|
26
|
+
- classpath/commons-codec-1.10.jar
|
27
27
|
- classpath/commons-logging-1.2.jar
|
28
|
-
- classpath/embulk-output-jdbc-0.8.
|
29
|
-
- classpath/embulk-output-postgresql-0.8.
|
30
|
-
- classpath/embulk-output-redshift-0.8.
|
28
|
+
- classpath/embulk-output-jdbc-0.8.3.jar
|
29
|
+
- classpath/embulk-output-postgresql-0.8.3.jar
|
30
|
+
- classpath/embulk-output-redshift-0.8.3.jar
|
31
31
|
- classpath/embulk-util-aws-credentials-0.2.21.jar
|
32
|
-
- classpath/httpclient-4.5.
|
33
|
-
- classpath/httpcore-4.4.
|
32
|
+
- classpath/httpclient-4.5.5.jar
|
33
|
+
- classpath/httpcore-4.4.9.jar
|
34
34
|
- classpath/ion-java-1.0.2.jar
|
35
|
-
- classpath/jackson-databind-2.6.7.
|
35
|
+
- classpath/jackson-databind-2.6.7.2.jar
|
36
36
|
- classpath/jackson-dataformat-cbor-2.6.7.jar
|
37
37
|
- classpath/jcl-over-slf4j-1.7.12.jar
|
38
|
-
- classpath/jmespath-java-1.11.
|
38
|
+
- classpath/jmespath-java-1.11.523.jar
|
39
39
|
- classpath/postgresql-9.4-1205-jdbc41.jar
|
40
40
|
- lib/embulk/output/redshift.rb
|
41
41
|
- src/main/java/org/embulk/output/RedshiftOutputPlugin.java
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|