You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by Sreenivasulu Nallapati <sr...@gmail.com> on 2019/02/11 11:48:09 UTC

How to identify inserts/deletes/updates from CDC data

Hi,
I am parsing the commit log files and I could not able to segregate the
inserts/deletes/updates from the mutations. Is there any way that we can
identify the event that is executed from commit logs?

Here is the partial code:

public class CustomCommitLogReadHandler implements CommitLogReadHandler {

    private static final Logger LOGGER =
LoggerFactory.getLogger(CustomCommitLogReadHandler.class);

    private final String keyspace;
    private final String table;

    public CustomCommitLogReadHandler(Map<String, Object> configuration) {
        keyspace = (String) YamlUtils.select(configuration,
"cassandra.keyspace");
        table = (String) YamlUtils.select(configuration, "cassandra.table");
    }

    @Override
    public void handleMutation(Mutation mutation, int size, int
entryLocation, CommitLogDescriptor descriptor) {
        LOGGER.debug("Handle mutation started...");
        for (PartitionUpdate partitionUpdate :
mutation.getPartitionUpdates()) {
            process(partitionUpdate);
        }
        LOGGER.debug("Handle mutation finished...");
    }

    @SuppressWarnings("unchecked")
    private void process(Partition partition) {
        LOGGER.debug("Process method started...");
        if (!partition.metadata().ksName.equals(keyspace)) {
            LOGGER.debug("Keyspace should be '{}' but is '{}'.", keyspace,
partition.metadata().ksName);
            return;
        }
        if (!partition.metadata().cfName.equals(table)) {
            LOGGER.debug("Table should be '{} but is '{}'.", table,
partition.metadata().cfName);
            return;
        }
        String key = getKey(partition);
        JSONObject obj = new JSONObject();


Thanks
Sreeni

Re: How to identify inserts/deletes/updates from CDC data

Posted by Rahul Singh <ra...@gmail.com>.
Your questions seem more appropriate  for the user list because you are trying to solve for use cases.
On Feb 11, 2019, 6:48 AM -0500, Sreenivasulu Nallapati <sr...@gmail.com>, wrote:
> Hi,
> I am parsing the commit log files and I could not able to segregate the
> inserts/deletes/updates from the mutations. Is there any way that we can
> identify the event that is executed from commit logs?
>
> Here is the partial code:
>
> public class CustomCommitLogReadHandler implements CommitLogReadHandler {
>
> private static final Logger LOGGER =
> LoggerFactory.getLogger(CustomCommitLogReadHandler.class);
>
> private final String keyspace;
> private final String table;
>
> public CustomCommitLogReadHandler(Map<String, Object> configuration) {
> keyspace = (String) YamlUtils.select(configuration,
> "cassandra.keyspace");
> table = (String) YamlUtils.select(configuration, "cassandra.table");
> }
>
> @Override
> public void handleMutation(Mutation mutation, int size, int
> entryLocation, CommitLogDescriptor descriptor) {
> LOGGER.debug("Handle mutation started...");
> for (PartitionUpdate partitionUpdate :
> mutation.getPartitionUpdates()) {
> process(partitionUpdate);
> }
> LOGGER.debug("Handle mutation finished...");
> }
>
> @SuppressWarnings("unchecked")
> private void process(Partition partition) {
> LOGGER.debug("Process method started...");
> if (!partition.metadata().ksName.equals(keyspace)) {
> LOGGER.debug("Keyspace should be '{}' but is '{}'.", keyspace,
> partition.metadata().ksName);
> return;
> }
> if (!partition.metadata().cfName.equals(table)) {
> LOGGER.debug("Table should be '{} but is '{}'.", table,
> partition.metadata().cfName);
> return;
> }
> String key = getKey(partition);
> JSONObject obj = new JSONObject();
>
>
> Thanks
> Sreeni