Tsurugi DB output plugin for Embulk loads records to Tsurugi using Tsubakuro.
- Plugin type: output
- Embulk 0.10 or later
- Java11 or later
out:
type: tsurugidb
endpoint: tcp://localhost:12345
table: test
mode: insert_direct
method: insert
- endpoint: endpoint for Tsurugi (string, required)
- connection_label: connection label (string, default:
embulk-output-tsurugidb
) - tx_type: transaction type (
OCC
,LTX
) (string, default:LTX
) - tx_label: transaction label (string, default:
embulk-output-tsurugidb
) - tx_write_preserve: (LTX only) write preserve (list of string, defualt: empty list)
- tx_inclusive_read_area: (LTX only) inclusive read area (list of string, defualt: empty list)
- tx_exclusive_read_area: (LTX only) exclusive read area (list of string, defualt: empty list)
- tx_priority: (LTX only) transaction priority (string, default:
null
) - commit_type: commit type (string, default:
default
) - session_keep_alive: session shutdown type (boolean, default:
null
) - session_shutdown_type: session shutdown type (string, default:
nothing
) - table: destination table name (string, required)
- mode: "insert_direct" (string, default:
insert_direct
) - method: insert method. see below. (string, default:
insert
) - method_option: method option. see below. (string, default:
insert
for SQL,put_overwrite
for KVS) - 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.
- retry_wait: initial retry wait time in milliseconds (integer, default: 1000 (1 second))
- max_retry_wait: upper limit of retry wait, which will be doubled at every retry (integer, default: 1800000 (30 minutes))
- batch_size: size of a single batch insert (integer, default: 16777216)
- default_timezone:
- column_options: advanced: key-value pairs where key is a column name and value is options for the column.
- type: type of a column when this plugin creates new tables (string, default:
null
) - value_type: This plugin converts input column type (embulk type) into a database type to build a INSERT statement. (string, default:
coerce
) - timestamp_format:
- timezone:
- type: type of a column when this plugin creates new tables (string, default:
- connect_timeout: timeout for establishment of a database connection (integer (seconds), default: 300)
- begin_timeout: timeout for begin transaction (integer (seconds), default: 300)
- insert_timeout: timeout for insert (integer (seconds), default: 300)
- commit_timeout: timeout for commit (integer (seconds), default: 300)
- session_shutdown_timeout: timeout for session shutdown (integer (seconds), default: 300)
- validate_nul_char: (ver 0.1.3) validate nul-char (boolean, default: true)
- log_level_on_invalid_record: (ver 0.1.3) log level for invalid data (string, default: DEBUG)
- stop_on_invalid_record: (ver 0.1.3) Stop bulk load transaction if a file includes invalid record (such as invalid char) (boolean, default: false)
method | API | description |
---|---|---|
insert |
SQL | Insert and wait for insert completion all at once. |
insert_wait |
SQL | Insert and wait for each insert to complete. |
insert_batch |
SQL | Insert using batch API. |
put |
KVS | Put and wait for put completion all at once. |
put_wait |
KVS | Put and wait for each put to complete. |
put_batch |
KVS | Put using batch API. |
method_option | API | description |
---|---|---|
insert |
SQL | insert (if record exists, unique constraint will be violated) |
insert_or_replace |
SQL | insert or replace (insert if record does not exist, update if it exists) |
insert_if_not_exists |
SQL | insert if not exists (insert if record does not exist, do nothing if it exists) |
put_overwrite |
KVS | put (similar to insert_or_replace ) |
put_if_absent |
KVS | put only when record does not exist (similar to insert_if_not_exists ) |
put_if_present |
KVS | put only when record exists |
-
install plugin
$ java -jar embulk-0.11.3.jar install io.github.hishidama.embulk:embulk-output-tsurugidb:1.0.0
-
add setting to $HOME/.embulk/embulk.properties
plugins.output.tsurugidb=maven:io.github.hishidama.embulk:tsurugidb:1.0.0
version | Tsurugi | Tsubakuro |
---|---|---|
1.0.0 | 1.0.0 | 1.6.0 |
0.1.7 | 1.0.0-BETA6 | 1.5.0 |
0.1.6 | 1.0.0-BETA5 | 1.4.0 |
0.1.5 | 1.0.0-BETA4 | 1.3.0 |
0.1.4 | 1.0.0-BETA3 | 1.2.0 |
0.1.2 - 0.1.3 | 1.0.0-BETA2 | 1.1.0 |
0.1.0 - 0.1.1 | 1.0.0-BETA1 | 1.0.1 |
./gradlew test -Pendpoint=tcp://localhost:12345
ls build/reports/tests/test/
./gradlew generatePomFileForMavenJavaPublication
mvn install -f build/publications/mavenJava/pom-default.xml
./gradlew publishToMavenLocal