embulk-output-cassandra 0.1.0

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.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +45 -0
  5. data/build.gradle +97 -0
  6. data/config/checkstyle/checkstyle.xml +128 -0
  7. data/config/checkstyle/default.xml +108 -0
  8. data/embulk-output-cassandra.iml +13 -0
  9. data/gradle/wrapper/gradle-wrapper.jar +0 -0
  10. data/gradle/wrapper/gradle-wrapper.properties +5 -0
  11. data/gradlew +172 -0
  12. data/gradlew.bat +84 -0
  13. data/lib/embulk/output/cassandra.rb +3 -0
  14. data/src/main/java/org/embulk/output/cassandra/CassandraOutputPlugin.java +283 -0
  15. data/src/main/java/org/embulk/output/cassandra/setter/BigintColumnSetter.java +41 -0
  16. data/src/main/java/org/embulk/output/cassandra/setter/BooleanColumnSetter.java +30 -0
  17. data/src/main/java/org/embulk/output/cassandra/setter/CassandraColumnSetter.java +51 -0
  18. data/src/main/java/org/embulk/output/cassandra/setter/CassandraColumnSetterFactory.java +60 -0
  19. data/src/main/java/org/embulk/output/cassandra/setter/ColumnSetterVisitor.java +96 -0
  20. data/src/main/java/org/embulk/output/cassandra/setter/DateColumnSetter.java +29 -0
  21. data/src/main/java/org/embulk/output/cassandra/setter/DecimalColumnSetter.java +43 -0
  22. data/src/main/java/org/embulk/output/cassandra/setter/DoubleColumnSetter.java +41 -0
  23. data/src/main/java/org/embulk/output/cassandra/setter/FloatColumnSetter.java +41 -0
  24. data/src/main/java/org/embulk/output/cassandra/setter/InetColumnSetter.java +26 -0
  25. data/src/main/java/org/embulk/output/cassandra/setter/IntColumnSetter.java +41 -0
  26. data/src/main/java/org/embulk/output/cassandra/setter/ListColumnSetter.java +22 -0
  27. data/src/main/java/org/embulk/output/cassandra/setter/MapColumnSetter.java +22 -0
  28. data/src/main/java/org/embulk/output/cassandra/setter/SetColumnSetter.java +24 -0
  29. data/src/main/java/org/embulk/output/cassandra/setter/SmallintColumnSetter.java +41 -0
  30. data/src/main/java/org/embulk/output/cassandra/setter/TextColumnSetter.java +50 -0
  31. data/src/main/java/org/embulk/output/cassandra/setter/TimeColumnSetter.java +46 -0
  32. data/src/main/java/org/embulk/output/cassandra/setter/TimestampColumnSetter.java +42 -0
  33. data/src/main/java/org/embulk/output/cassandra/setter/TimeuuidColumnSetter.java +18 -0
  34. data/src/main/java/org/embulk/output/cassandra/setter/TinyintColumnSetter.java +41 -0
  35. data/src/main/java/org/embulk/output/cassandra/setter/TupleColumnSetter.java +34 -0
  36. data/src/main/java/org/embulk/output/cassandra/setter/UuidColumnSetter.java +18 -0
  37. data/src/main/java/org/embulk/output/cassandra/setter/ValueConverter.java +63 -0
  38. data/src/main/java/org/embulk/output/cassandra/setter/VarintColumnSetter.java +43 -0
  39. data/src/test/java/org/embulk/output/cassandra/TestCassandraOutputPlugin.java +250 -0
  40. data/src/test/resources/org/embulk/output/cassandra/create_keyspace.cql +5 -0
  41. data/src/test/resources/org/embulk/output/cassandra/create_table_test_basic.cql +11 -0
  42. data/src/test/resources/org/embulk/output/cassandra/create_table_test_complex.cql +12 -0
  43. data/src/test/resources/org/embulk/output/cassandra/create_table_test_uuid.cql +8 -0
  44. data/src/test/resources/org/embulk/output/cassandra/test1.csv +4 -0
  45. data/src/test/resources/org/embulk/output/cassandra/test2.csv +2 -0
  46. data/src/test/resources/org/embulk/output/cassandra/test3.csv +2 -0
  47. data/src/test/resources/org/embulk/output/cassandra/test_basic.yaml +3 -0
  48. data/src/test/resources/org/embulk/output/cassandra/test_complex.yaml +3 -0
  49. data/src/test/resources/org/embulk/output/cassandra/test_uuid.yaml +3 -0
  50. metadata +141 -0
@@ -0,0 +1,43 @@
1
+ package org.embulk.output.cassandra.setter;
2
+
3
+ import com.datastax.driver.core.BoundStatement;
4
+ import com.datastax.driver.core.ColumnMetadata;
5
+
6
+ import java.math.BigInteger;
7
+
8
+ public class VarintColumnSetter extends CassandraColumnSetter
9
+ {
10
+ public VarintColumnSetter(ColumnMetadata cassandraColumn)
11
+ {
12
+ super(cassandraColumn);
13
+ }
14
+
15
+ @Override
16
+ public void setBooleanValue(Boolean value, BoundStatement statement)
17
+ {
18
+ if (value) {
19
+ statement.setVarint(cassandraColumn.getName(), BigInteger.ONE);
20
+ }
21
+ else {
22
+ statement.setVarint(cassandraColumn.getName(), BigInteger.ZERO);
23
+ }
24
+ }
25
+
26
+ @Override
27
+ public void setLongValue(Long value, BoundStatement statement)
28
+ {
29
+ statement.setVarint(cassandraColumn.getName(), BigInteger.valueOf(value));
30
+ }
31
+
32
+ @Override
33
+ public void setDoubleValue(Double value, BoundStatement statement)
34
+ {
35
+ statement.setVarint(cassandraColumn.getName(), BigInteger.valueOf(value.longValue()));
36
+ }
37
+
38
+ @Override
39
+ public void setStringValue(String value, BoundStatement statement)
40
+ {
41
+ statement.setVarint(cassandraColumn.getName(), new BigInteger(value));
42
+ }
43
+ }
@@ -0,0 +1,250 @@
1
+ package org.embulk.output.cassandra;
2
+
3
+ import com.datastax.driver.core.Cluster;
4
+ import com.datastax.driver.core.DataType;
5
+ import com.datastax.driver.core.LocalDate;
6
+ import com.datastax.driver.core.Row;
7
+ import com.datastax.driver.core.Session;
8
+ import com.datastax.driver.core.TupleType;
9
+ import com.datastax.driver.core.TupleValue;
10
+ import com.datastax.driver.core.utils.UUIDs;
11
+ import com.google.common.io.Resources;
12
+ import org.embulk.config.ConfigSource;
13
+ import org.embulk.spi.OutputPlugin;
14
+ import org.embulk.test.EmbulkTests;
15
+ import org.embulk.test.TestingEmbulk;
16
+ import org.junit.After;
17
+ import org.junit.Before;
18
+ import org.junit.Rule;
19
+ import org.junit.Test;
20
+
21
+ import java.io.File;
22
+ import java.io.IOException;
23
+ import java.math.BigDecimal;
24
+ import java.net.InetAddress;
25
+ import java.nio.file.Path;
26
+ import java.time.ZoneId;
27
+ import java.time.ZonedDateTime;
28
+ import java.util.Arrays;
29
+ import java.util.Date;
30
+ import java.util.List;
31
+ import java.util.Map;
32
+ import java.util.Set;
33
+
34
+ import static org.junit.Assert.*;
35
+
36
+ public class TestCassandraOutputPlugin
37
+ {
38
+ private static final String RESOURCE_PATH = "org/embulk/output/cassandra/";
39
+
40
+ @Rule
41
+ public TestingEmbulk embulk = TestingEmbulk.builder()
42
+ .registerPlugin(OutputPlugin.class, "cassandra", CassandraOutputPlugin.class)
43
+ .build();
44
+
45
+ private Cluster cluster;
46
+ private Session session;
47
+
48
+ private static String getCassandraHost()
49
+ {
50
+ String host = System.getenv("CASSANDRA_HOST");
51
+ if (host == null) {
52
+ host = "localhost";
53
+ }
54
+ return host;
55
+ }
56
+
57
+ private static List<String> getCassandraHostAsList()
58
+ {
59
+ return Arrays.asList(getCassandraHost());
60
+ }
61
+
62
+ private static String getCassandraPort()
63
+ {
64
+ String port = System.getenv("CASSANDRA_PORT");
65
+ if (port == null) {
66
+ port = "9042";
67
+ }
68
+ return port;
69
+ }
70
+
71
+ private static Cluster getCluster()
72
+ {
73
+ return Cluster.builder().addContactPoint(getCassandraHost())
74
+ .withPort(Integer.parseInt(getCassandraPort())).build();
75
+ }
76
+
77
+ @Before
78
+ public void setup()
79
+ {
80
+ cluster = getCluster();
81
+ session = cluster.connect();
82
+ String createKeyspace = EmbulkTests.readResource(RESOURCE_PATH + "create_keyspace.cql");
83
+ String createTableBasic = EmbulkTests.readResource(RESOURCE_PATH + "create_table_test_basic.cql");
84
+ String createTableUuid = EmbulkTests.readResource(RESOURCE_PATH + "create_table_test_uuid.cql");
85
+ String createTableComplex = EmbulkTests.readResource(RESOURCE_PATH + "create_table_test_complex.cql");
86
+ session.execute(createKeyspace);
87
+ session.execute(createTableBasic);
88
+ session.execute(createTableUuid);
89
+ session.execute(createTableComplex);
90
+ session.execute("TRUNCATE embulk_test.test_basic");
91
+ session.execute("TRUNCATE embulk_test.test_uuid");
92
+ session.execute("TRUNCATE embulk_test.test_complex");
93
+ }
94
+
95
+ @After
96
+ public void teardown()
97
+ {
98
+ session.close();
99
+ cluster.close();
100
+ }
101
+
102
+ private ConfigSource loadYamlResource(String filename)
103
+ {
104
+ return embulk.loadYamlResource(RESOURCE_PATH + filename);
105
+ }
106
+
107
+ @Test
108
+ public void testBasic() throws IOException
109
+ {
110
+ Path input = getInputPath("test1.csv");
111
+ ConfigSource config = loadYamlResource("test_basic.yaml");
112
+ config.set("hosts", getCassandraHostAsList());
113
+
114
+ assertEquals(0, session.execute("SELECT * FROM embulk_test.test_basic").all().size());
115
+
116
+ TestingEmbulk.RunResult result = embulk.runOutput(config, input);
117
+ assertEquals(3, result.getOutputTaskReports().get(0).get(Long.class, "inserted_record_count").longValue());
118
+
119
+ Row row1 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A001'").one();
120
+ Row row2 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A002'").one();
121
+ Row row3 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A003'").one();
122
+ assertEquals("A001", row1.getString("id"));
123
+ assertEquals(9, row1.getLong("int_item"));
124
+ assertEquals(1, row1.getInt("int32_item"));
125
+ assertEquals(2, row1.getShort("smallint_item"));
126
+ assertTrue(row1.getBool("boolean_item"));
127
+ assertEquals(createDate(2018, 7, 1, 10, 0, 0, 0), row1.getTimestamp("timestamp_item"));
128
+ assertEquals("A002", row2.getString("id"));
129
+ assertEquals(0, row2.getLong("int_item"));
130
+ assertEquals(0, row2.getInt("int32_item"));
131
+ assertEquals(4, row2.getShort("smallint_item"));
132
+ assertTrue(row2.getBool("boolean_item"));
133
+ assertEquals(createDate(2018, 7, 1, 10, 0, 1, 0), row2.getTimestamp("timestamp_item"));
134
+ assertEquals("A003", row3.getString("id"));
135
+ assertEquals(9, row3.getLong("int_item"));
136
+ assertEquals(0, row3.getInt("int32_item"));
137
+ assertEquals(8, row3.getShort("smallint_item"));
138
+ assertFalse(row3.getBool("boolean_item"));
139
+ assertEquals(createDate(2018, 7, 1, 10, 0, 2, 0), row3.getTimestamp("timestamp_item"));
140
+ }
141
+
142
+ @Test
143
+ public void testBasicWithTtl() throws IOException
144
+ {
145
+ Path input = getInputPath("test1.csv");
146
+ ConfigSource config = loadYamlResource("test_basic.yaml");
147
+ config.set("hosts", getCassandraHostAsList());
148
+ config.set("ttl", 30);
149
+
150
+ assertEquals(0, session.execute("SELECT * FROM embulk_test.test_basic").all().size());
151
+
152
+ embulk.runOutput(config, input);
153
+
154
+ Row row1 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A001'").one();
155
+ Row row2 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A002'").one();
156
+ Row row3 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A003'").one();
157
+ assertEquals("A001", row1.getString("id"));
158
+ assertEquals(9, row1.getLong("int_item"));
159
+ assertEquals(createDate(2018, 7, 1, 10, 0, 0, 0), row1.getTimestamp("timestamp_item"));
160
+ assertEquals("A002", row2.getString("id"));
161
+ assertEquals(0, row2.getLong("int_item"));
162
+ assertEquals(createDate(2018, 7, 1, 10, 0, 1, 0), row2.getTimestamp("timestamp_item"));
163
+ assertEquals("A003", row3.getString("id"));
164
+ assertEquals(9, row3.getLong("int_item"));
165
+ assertEquals(createDate(2018, 7, 1, 10, 0, 2, 0), row3.getTimestamp("timestamp_item"));
166
+ }
167
+
168
+ @Test
169
+ public void testBasicWithIfNotExists() throws IOException
170
+ {
171
+ Path input = getInputPath("test1.csv");
172
+ ConfigSource config = loadYamlResource("test_basic.yaml");
173
+ config.set("hosts", getCassandraHostAsList());
174
+ config.set("if_not_exists", true);
175
+
176
+ assertEquals(0, session.execute("SELECT * FROM embulk_test.test_basic").all().size());
177
+
178
+ embulk.runOutput(config, input);
179
+
180
+ Row row1 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A001'").one();
181
+ Row row2 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A002'").one();
182
+ Row row3 = session.execute("SELECT * FROM embulk_test.test_basic WHERE id = 'A003'").one();
183
+ assertEquals("A001", row1.getString("id"));
184
+ assertEquals(9, row1.getLong("int_item"));
185
+ assertEquals(createDate(2018, 7, 1, 10, 0, 0, 0), row1.getTimestamp("timestamp_item"));
186
+ assertEquals("A002", row2.getString("id"));
187
+ assertEquals(0, row2.getLong("int_item"));
188
+ assertEquals(createDate(2018, 7, 1, 10, 0, 1, 0), row2.getTimestamp("timestamp_item"));
189
+ assertEquals("A003", row3.getString("id"));
190
+ assertEquals(9, row3.getLong("int_item"));
191
+ assertEquals(createDate(2018, 7, 1, 10, 0, 2, 0), row3.getTimestamp("timestamp_item"));
192
+ }
193
+
194
+ @Test
195
+ public void testUuid() throws IOException
196
+ {
197
+ Path input = getInputPath("test2.csv");
198
+ ConfigSource config = loadYamlResource("test_uuid.yaml");
199
+ config.set("hosts", getCassandraHostAsList());
200
+ embulk.runOutput(config, input);
201
+
202
+ Row row1 = session.execute("SELECT * FROM embulk_test.test_uuid").one();
203
+ assertNotNull(row1.getUUID("id"));
204
+ assertEquals(9, row1.getLong("int_item"));
205
+ assertEquals(createDate(2018, 7, 1, 10, 0, 0, 0), row1.getTimestamp("timestamp_item"));
206
+ assertNotNull(row1.getUUID("timeuuid_item"));
207
+ assertTrue(UUIDs.unixTimestamp(row1.getUUID("timeuuid_item")) < ZonedDateTime.now().toInstant().toEpochMilli());
208
+ }
209
+
210
+ @Test
211
+ public void testComplex() throws IOException
212
+ {
213
+ Path input = getInputPath("test3.csv");
214
+ ConfigSource config = loadYamlResource("test_complex.yaml");
215
+ config.set("hosts", getCassandraHostAsList());
216
+ embulk.runOutput(config, input);
217
+
218
+ Row row1 = session.execute("SELECT * FROM embulk_test.test_complex").one();
219
+ assertNotNull(row1.getUUID("id"));
220
+ assertEquals(BigDecimal.valueOf(10), row1.getDecimal("decimal_item"));
221
+ assertEquals(LocalDate.fromYearMonthDay(2018, 7, 1), row1.getDate("date_item"));
222
+ assertEquals(3600L * 10 * 1000 * 1000 * 1000, row1.getTime("time_item"));
223
+
224
+ List<String> list = row1.getList("list_item", String.class);
225
+ assertArrayEquals(new String[] {"foo", "bar"}, list.toArray());
226
+
227
+ Map<String, Long> map = row1.getMap("map_item", String.class, Long.class);
228
+ assertEquals(1L, map.get("key1").longValue());
229
+
230
+ Set<Long> set = row1.getSet("set_item", Long.class);
231
+ assertArrayEquals(new Long[] {1L, 2L, 3L}, set.toArray());
232
+
233
+ InetAddress inet = row1.getInet("inet_item");
234
+ assertEquals(InetAddress.getByName("127.0.0.1"), inet);
235
+
236
+ TupleValue tuple = row1.getTupleValue("tuple_item");
237
+ TupleType tupleType = cluster.getMetadata().newTupleType(DataType.text(), DataType.cdouble());
238
+ assertEquals(tupleType.newValue("foo", 1.1), tuple);
239
+ }
240
+
241
+ private Path getInputPath(String filename)
242
+ {
243
+ return new File(Resources.getResource(RESOURCE_PATH + filename).getFile()).toPath();
244
+ }
245
+
246
+ private Date createDate(int year, int month, int day, int hour, int min, int sec, int nsec)
247
+ {
248
+ return Date.from(ZonedDateTime.of(year, month, day, hour, min, sec, nsec, ZoneId.of("UTC")).toInstant());
249
+ }
250
+ }
@@ -0,0 +1,5 @@
1
+ CREATE KEYSPACE IF NOT EXISTS embulk_test
2
+ WITH REPLICATION = {
3
+ 'class' : 'SimpleStrategy',
4
+ 'replication_factor' : 1
5
+ };
@@ -0,0 +1,11 @@
1
+ CREATE TABLE IF NOT EXISTS embulk_test.test_basic (
2
+ id text,
3
+ int_item bigint,
4
+ int32_item int,
5
+ smallint_item smallint,
6
+ tinyint_item tinyint,
7
+ boolean_item boolean,
8
+ double_item double,
9
+ timestamp_item timestamp,
10
+ primary key (id)
11
+ ) WITH compaction = { 'class' : 'SizeTieredCompactionStrategy' };
@@ -0,0 +1,12 @@
1
+ CREATE TABLE IF NOT EXISTS embulk_test.test_complex (
2
+ id uuid,
3
+ decimal_item decimal,
4
+ date_item date,
5
+ time_item time,
6
+ list_item list<text>,
7
+ map_item map<text, bigint>,
8
+ set_item set<bigint>,
9
+ inet_item inet,
10
+ tuple_item tuple<text, double>,
11
+ primary key (id)
12
+ ) WITH compaction = { 'class' : 'SizeTieredCompactionStrategy' };
@@ -0,0 +1,8 @@
1
+ CREATE TABLE IF NOT EXISTS embulk_test.test_uuid (
2
+ id uuid,
3
+ int_item bigint,
4
+ double_item double,
5
+ timestamp_item timestamp,
6
+ timeuuid_item timeuuid,
7
+ primary key (id)
8
+ ) WITH compaction = { 'class' : 'SizeTieredCompactionStrategy' };
@@ -0,0 +1,4 @@
1
+ id:string,int_item:long,int32_item:long,smallint_item:long,tinyint_item:long,boolean_item:boolean,varchar_item:string,timestamp_item:timestamp
2
+ A001,9,4294967297,2,0,true,a,2018-07-01 10:00:00.000 UTC
3
+ A002,0,0,4,0,true,b,2018-07-01 10:00:01.000 UTC
4
+ A003,9,0,8,1,false,c,2018-07-01 10:00:02.000 UTC
@@ -0,0 +1,2 @@
1
+ int_item:long,varchar_item:string,timestamp_item:timestamp
2
+ 9,a,2018-07-01 10:00:00.000 UTC
@@ -0,0 +1,2 @@
1
+ decimal_item:long,date_item:string,time_item:string,list_item:json,map_item:json,set_item:json,inet_item:string,tuple_item:json
2
+ 10,2018-07-01,10:00:00,"[""foo"", ""bar""]","{""key1"": 1, ""key2"": 2}","[1,2,3,3]",127.0.0.1,"[""foo"", 1.1]"
@@ -0,0 +1,3 @@
1
+ type: cassandra
2
+ keyspace: embulk_test
3
+ table: "test_basic"
@@ -0,0 +1,3 @@
1
+ type: cassandra
2
+ keyspace: embulk_test
3
+ table: "test_complex"
@@ -0,0 +1,3 @@
1
+ type: cassandra
2
+ keyspace: embulk_test
3
+ table: "test_uuid"
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: embulk-output-cassandra
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - joker1007
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-07-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ~>
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ name: bundler
20
+ prerelease: false
21
+ type: :development
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '10.0'
33
+ name: rake
34
+ prerelease: false
35
+ type: :development
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: Dumps records to Apache Cassandra.
42
+ email:
43
+ - kakyoin.hierophant@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - LICENSE.txt
50
+ - README.md
51
+ - build.gradle
52
+ - config/checkstyle/checkstyle.xml
53
+ - config/checkstyle/default.xml
54
+ - embulk-output-cassandra.iml
55
+ - gradle/wrapper/gradle-wrapper.jar
56
+ - gradle/wrapper/gradle-wrapper.properties
57
+ - gradlew
58
+ - gradlew.bat
59
+ - lib/embulk/output/cassandra.rb
60
+ - src/main/java/org/embulk/output/cassandra/CassandraOutputPlugin.java
61
+ - src/main/java/org/embulk/output/cassandra/setter/BigintColumnSetter.java
62
+ - src/main/java/org/embulk/output/cassandra/setter/BooleanColumnSetter.java
63
+ - src/main/java/org/embulk/output/cassandra/setter/CassandraColumnSetter.java
64
+ - src/main/java/org/embulk/output/cassandra/setter/CassandraColumnSetterFactory.java
65
+ - src/main/java/org/embulk/output/cassandra/setter/ColumnSetterVisitor.java
66
+ - src/main/java/org/embulk/output/cassandra/setter/DateColumnSetter.java
67
+ - src/main/java/org/embulk/output/cassandra/setter/DecimalColumnSetter.java
68
+ - src/main/java/org/embulk/output/cassandra/setter/DoubleColumnSetter.java
69
+ - src/main/java/org/embulk/output/cassandra/setter/FloatColumnSetter.java
70
+ - src/main/java/org/embulk/output/cassandra/setter/InetColumnSetter.java
71
+ - src/main/java/org/embulk/output/cassandra/setter/IntColumnSetter.java
72
+ - src/main/java/org/embulk/output/cassandra/setter/ListColumnSetter.java
73
+ - src/main/java/org/embulk/output/cassandra/setter/MapColumnSetter.java
74
+ - src/main/java/org/embulk/output/cassandra/setter/SetColumnSetter.java
75
+ - src/main/java/org/embulk/output/cassandra/setter/SmallintColumnSetter.java
76
+ - src/main/java/org/embulk/output/cassandra/setter/TextColumnSetter.java
77
+ - src/main/java/org/embulk/output/cassandra/setter/TimeColumnSetter.java
78
+ - src/main/java/org/embulk/output/cassandra/setter/TimestampColumnSetter.java
79
+ - src/main/java/org/embulk/output/cassandra/setter/TimeuuidColumnSetter.java
80
+ - src/main/java/org/embulk/output/cassandra/setter/TinyintColumnSetter.java
81
+ - src/main/java/org/embulk/output/cassandra/setter/TupleColumnSetter.java
82
+ - src/main/java/org/embulk/output/cassandra/setter/UuidColumnSetter.java
83
+ - src/main/java/org/embulk/output/cassandra/setter/ValueConverter.java
84
+ - src/main/java/org/embulk/output/cassandra/setter/VarintColumnSetter.java
85
+ - src/test/java/org/embulk/output/cassandra/TestCassandraOutputPlugin.java
86
+ - src/test/resources/org/embulk/output/cassandra/create_keyspace.cql
87
+ - src/test/resources/org/embulk/output/cassandra/create_table_test_basic.cql
88
+ - src/test/resources/org/embulk/output/cassandra/create_table_test_complex.cql
89
+ - src/test/resources/org/embulk/output/cassandra/create_table_test_uuid.cql
90
+ - src/test/resources/org/embulk/output/cassandra/test1.csv
91
+ - src/test/resources/org/embulk/output/cassandra/test2.csv
92
+ - src/test/resources/org/embulk/output/cassandra/test3.csv
93
+ - src/test/resources/org/embulk/output/cassandra/test_basic.yaml
94
+ - src/test/resources/org/embulk/output/cassandra/test_complex.yaml
95
+ - src/test/resources/org/embulk/output/cassandra/test_uuid.yaml
96
+ - classpath/asm-util-5.0.3.jar
97
+ - classpath/asm-analysis-5.0.3.jar
98
+ - classpath/asm-tree-5.0.3.jar
99
+ - classpath/guava-19.0.jar
100
+ - classpath/jnr-constants-0.9.9.jar
101
+ - classpath/jnr-posix-3.0.44.jar
102
+ - classpath/cassandra-driver-core-3.5.0.jar
103
+ - classpath/jnr-ffi-2.1.7.jar
104
+ - classpath/netty-codec-4.0.56.Final.jar
105
+ - classpath/asm-commons-5.0.3.jar
106
+ - classpath/netty-buffer-4.0.56.Final.jar
107
+ - classpath/metrics-core-3.2.2.jar
108
+ - classpath/netty-common-4.0.56.Final.jar
109
+ - classpath/jnr-x86asm-1.0.2.jar
110
+ - classpath/asm-5.0.3.jar
111
+ - classpath/netty-transport-4.0.56.Final.jar
112
+ - classpath/embulk-output-cassandra-0.1.0.jar
113
+ - classpath/jffi-1.2.16.jar
114
+ - classpath/jffi-1.2.16-native.jar
115
+ - classpath/slf4j-api-1.7.25.jar
116
+ - classpath/netty-handler-4.0.56.Final.jar
117
+ homepage: https://github.com/joker1007/embulk-output-cassandra
118
+ licenses:
119
+ - MIT
120
+ metadata: {}
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - '>='
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ requirements: []
136
+ rubyforge_project:
137
+ rubygems_version: 2.1.9
138
+ signing_key:
139
+ specification_version: 4
140
+ summary: Cassandra output plugin for Embulk
141
+ test_files: []