Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-12820

Support ignoring null fields when writing to Cassandra

    XMLWordPrintableJSON

Details

    Description

      Currently, records which have null fields are written to their corresponding columns in Cassandra as null. Writing null is basically a 'delete' for Cassandra, it's useful if nulls should correspond to deletes in the data model, but nulls can also indicate a missing data or partial column update. In that case, we end up overwriting columns of existing record on Cassandra with nulls. 

       

      I believe it's already possible to ignore null values for POJO's with mapper options, as documented here:

      https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/cassandra.html#cassandra-sink-example-for-streaming-pojo-data-type

       

      But this is not possible when using scala tuples or case classes. Perhaps with a Cassandra sink configuration flag, null values can be unset using below option for tuples and case classes.

      https://docs.datastax.com/en/drivers/java/3.0/com/datastax/driver/core/BoundStatement.html#unset-int-

       

      Here is the equivalent configuration in spark-cassandra-connector;

      https://github.com/datastax/spark-cassandra-connector/blob/master/doc/5_saving.md#globally-treating-all-nulls-as-unset

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ozancicek Ozan Cicekci
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m