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.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/LICENSE.txt +21 -0
- data/README.md +45 -0
- data/build.gradle +97 -0
- data/config/checkstyle/checkstyle.xml +128 -0
- data/config/checkstyle/default.xml +108 -0
- data/embulk-output-cassandra.iml +13 -0
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +5 -0
- data/gradlew +172 -0
- data/gradlew.bat +84 -0
- data/lib/embulk/output/cassandra.rb +3 -0
- data/src/main/java/org/embulk/output/cassandra/CassandraOutputPlugin.java +283 -0
- data/src/main/java/org/embulk/output/cassandra/setter/BigintColumnSetter.java +41 -0
- data/src/main/java/org/embulk/output/cassandra/setter/BooleanColumnSetter.java +30 -0
- data/src/main/java/org/embulk/output/cassandra/setter/CassandraColumnSetter.java +51 -0
- data/src/main/java/org/embulk/output/cassandra/setter/CassandraColumnSetterFactory.java +60 -0
- data/src/main/java/org/embulk/output/cassandra/setter/ColumnSetterVisitor.java +96 -0
- data/src/main/java/org/embulk/output/cassandra/setter/DateColumnSetter.java +29 -0
- data/src/main/java/org/embulk/output/cassandra/setter/DecimalColumnSetter.java +43 -0
- data/src/main/java/org/embulk/output/cassandra/setter/DoubleColumnSetter.java +41 -0
- data/src/main/java/org/embulk/output/cassandra/setter/FloatColumnSetter.java +41 -0
- data/src/main/java/org/embulk/output/cassandra/setter/InetColumnSetter.java +26 -0
- data/src/main/java/org/embulk/output/cassandra/setter/IntColumnSetter.java +41 -0
- data/src/main/java/org/embulk/output/cassandra/setter/ListColumnSetter.java +22 -0
- data/src/main/java/org/embulk/output/cassandra/setter/MapColumnSetter.java +22 -0
- data/src/main/java/org/embulk/output/cassandra/setter/SetColumnSetter.java +24 -0
- data/src/main/java/org/embulk/output/cassandra/setter/SmallintColumnSetter.java +41 -0
- data/src/main/java/org/embulk/output/cassandra/setter/TextColumnSetter.java +50 -0
- data/src/main/java/org/embulk/output/cassandra/setter/TimeColumnSetter.java +46 -0
- data/src/main/java/org/embulk/output/cassandra/setter/TimestampColumnSetter.java +42 -0
- data/src/main/java/org/embulk/output/cassandra/setter/TimeuuidColumnSetter.java +18 -0
- data/src/main/java/org/embulk/output/cassandra/setter/TinyintColumnSetter.java +41 -0
- data/src/main/java/org/embulk/output/cassandra/setter/TupleColumnSetter.java +34 -0
- data/src/main/java/org/embulk/output/cassandra/setter/UuidColumnSetter.java +18 -0
- data/src/main/java/org/embulk/output/cassandra/setter/ValueConverter.java +63 -0
- data/src/main/java/org/embulk/output/cassandra/setter/VarintColumnSetter.java +43 -0
- data/src/test/java/org/embulk/output/cassandra/TestCassandraOutputPlugin.java +250 -0
- data/src/test/resources/org/embulk/output/cassandra/create_keyspace.cql +5 -0
- data/src/test/resources/org/embulk/output/cassandra/create_table_test_basic.cql +11 -0
- data/src/test/resources/org/embulk/output/cassandra/create_table_test_complex.cql +12 -0
- data/src/test/resources/org/embulk/output/cassandra/create_table_test_uuid.cql +8 -0
- data/src/test/resources/org/embulk/output/cassandra/test1.csv +4 -0
- data/src/test/resources/org/embulk/output/cassandra/test2.csv +2 -0
- data/src/test/resources/org/embulk/output/cassandra/test3.csv +2 -0
- data/src/test/resources/org/embulk/output/cassandra/test_basic.yaml +3 -0
- data/src/test/resources/org/embulk/output/cassandra/test_complex.yaml +3 -0
- data/src/test/resources/org/embulk/output/cassandra/test_uuid.yaml +3 -0
- 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,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,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
|
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: []
|