{"id":18481515,"url":"https://github.com/joker1007/embulk-output-cassandra","last_synced_at":"2025-10-04T14:56:18.936Z","repository":{"id":62557936,"uuid":"139337825","full_name":"joker1007/embulk-output-cassandra","owner":"joker1007","description":"Apache Cassandra output plugin for Embulk.","archived":false,"fork":false,"pushed_at":"2024-05-13T14:34:35.000Z","size":221,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-21T22:22:01.978Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joker1007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-01T14:55:21.000Z","updated_at":"2024-05-13T14:34:38.000Z","dependencies_parsed_at":"2024-11-06T12:37:44.164Z","dependency_job_id":null,"html_url":"https://github.com/joker1007/embulk-output-cassandra","commit_stats":{"total_commits":34,"total_committers":2,"mean_commits":17.0,"dds":0.02941176470588236,"last_synced_commit":"1c77ae6792077e36c6cd6fce003af0e3ed6b1407"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/joker1007/embulk-output-cassandra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joker1007%2Fembulk-output-cassandra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joker1007%2Fembulk-output-cassandra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joker1007%2Fembulk-output-cassandra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joker1007%2Fembulk-output-cassandra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joker1007","download_url":"https://codeload.github.com/joker1007/embulk-output-cassandra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joker1007%2Fembulk-output-cassandra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278328167,"owners_count":25968900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T12:24:05.912Z","updated_at":"2025-10-04T14:56:18.920Z","avatar_url":"https://github.com/joker1007.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cassandra output plugin for Embulk\n\n![Java CI](https://github.com/joker1007/embulk-output-cassandra/workflows/Java%20CI/badge.svg)\n\nApache Cassandra output plugin for Embulk.\n\n## Compatibility\n\n| embulk-output-kafka   | embulk                                  | datastax-driver-core  |\n| --------------------- | --------------------------------------- | --------------------- |\n| 0.6.x                 | 0.11.x or later                         | 4.x                   |\n| 0.5.x                 | 0.9.x or later (may not work on 0.11.x) | 3.11.x                |\n\n## Breaking Changes\n\n### 0.6.0\n- `timestamp` column accepts string as Java's ISO_INSTANT format.\n- `timestamp` column accepts long and double as epoch millis. (before: as epoch seconds)\n- `date` column accepts long as days from epoch. (before: not supported)\n\n## Overview\n\n* **Plugin type**: output\n* **Load all or nothing**: no\n* **Resume supported**: yes\n* **Cleanup supported**: no\n\n## Caution\nIn current, version of netty components conflicts to one that is used by embulk-core.\n\nThis probrem is very severe.\n\nI tested this plugin on embulk-0.9.7.\nBut future embulk version may break this plugin.\n\n## Support Data types\n\n| CQL Type                    | Embulk Type                                    | Descritpion                                                           |\n| --------                    | -----------                                    | --------------                                                        |\n| ascii                       | string, boolean, long, double, timestamp, json | use `toString` or `toJson`                                            |\n| bigint                      | string, boolean(as 0 or 1), long, double       |                                                                       |\n| blob                        | unsupported                                    |                                                                       |\n| boolean                     | boolean, long, double                          | 0 == false, 1 == true                                                 |\n| counter                     | unsupported                                    |                                                                       |\n| date                        | string, long, timestamp                        | long as days from epoch, timestamp as UTC timestamp                   |\n| decimal                     | string, boolean(as 0 or 1), long, double       |                                                                       |\n| double                      | string, boolean(as 0 or 1), long, double       |                                                                       |\n| float                       | string, boolean(as 0 or 1), long, double       |                                                                       |\n| inet                        | string                                         |                                                                       |\n| int                         | string, boolean(as 0 or 1), long, double       | overflowed value is reset to 0                                        |\n| list                        | json                                           |                                                                       |\n| map (support only text key) | json                                           |                                                                       |\n| set                         | json                                           |                                                                       |\n| smallint                    | string, boolean(as 0 or 1), long, double       | overflowed value is reset to 0                                        |\n| text                        | string, boolean, long, double, timestamp, json | use `toString` or `toJson`                                            |\n| time                        | string, long, double, timestamp                | long and double as nano seconds of day,\u003cbr\u003etimestamp as UTC timestamp |\n| timestamp                   | string, long, double, timestamp                | string as Java's ISO_INSTANT format, long and double as epoch millis  |\n| timeuuid                    | null                                           |                                                                       |\n| uuid                        | null                                           |                                                                       |\n| varchar                     | string, boolean, long, double, timestamp, json | use `toString` or `toJson`                                            |\n| varint                      | string, boolean(as 0 or 1), long, double       |                                                                       |\n| UDT                         | unsupported                                    |                                                                       |\n\n## Insert Behavior\nIf embulk record does not have a column, it is treated as `unset`.\nIf same key record already exists, the column is not touched.\n\n### Counter table\nThis plugin supports counter table.\n\nBut counter table supports only increment/decrement update.\n\nBecause of it, This plugin uses input value as increment value;\n\nFor example, If input data = {id: 1, count: 5}, Executed Statement is `UPDATE tablename SET count = count + 5 WHERE id = 1`\n\n## Configuration\n\n- **hosts**: list of seed hosts (list\u003cstring\u003e, required)\n- **port**: port number for cassandra cluster (integer, default: `9042`)\n- **username**: cluster username (string, default: `null`)\n- **password**: cluster password (string, default: `null`)\n- **cluster_name**: cluster name (string, default: `null`)\n- **keyspace**: target keyspace name (string, required)\n- **table**: target table name (string, required)\n- **mode**: insert or update or delete (string, default: `\"insert\"`)\n- **if_not_exists**: Add \"IF NOT EXISTS\" to INSERT query (boolean, default: `false`)\n- **if_exists**: Add \"IF EXISTS\" to UPDATE query (boolean, default: `false`)\n- **ttl**: Add \"TTL\" to INSERT query (integer, default: `null`)\n- **idempotent**: Treat INSERT query as idempotent (boolean, default: `false`)\n- **connect_timeout**: Set connect timeout millisecond (integer, default: `5000`)\n- **request_timeout**: Set each request timeout millisecond (integer, default: `12000`)\n\n## Example\n\n```yaml\nout:\n  type: cassandra\n  hosts:\n    - 127.0.0.1\n  port: 9042\n  keyspace: sample_keyspace\n  table: sample_table\n  idempotent: true\n```\n\n\n## Build\n\n```\n$ ./gradlew gem  # -t to watch change of files and rebuild continuously\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoker1007%2Fembulk-output-cassandra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoker1007%2Fembulk-output-cassandra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoker1007%2Fembulk-output-cassandra/lists"}