Триггеры Cassandra для обновления таблицы при обновлении другой

Я проходил реализацию триггеров в cassandra. Я хотел реализовать триггеры, чтобы обновить таблицу со старыми значениями таблиц, которые были изменены. предположим, у меня есть таблица, скажем, test_table в пространстве ключей keyspace1. у меня также есть таблица, скажем, table_track в том же ключевом пространстве со столбцами имя столбца и значение столбца. теперь, когда строка обновляется в test_table, я хотел бы заполнить track_table данными строки (в test_table до выполнения запроса на обновление) в столбцах имя столбца и значение столбца соответственно.

я нигде не мог найти подходящей документации относительно триггеров cassandra. мне удалось как-то реализовать InvertedIndex и несколько мелких примеров

public Collection<Mutation> augment(ByteBuffer key, ColumnFamily update)
{
    List<Mutation> mutations = new ArrayList<Mutation>(update.getColumnCount());

    for (Cell cell : update)
    {
        // Skip the row marker and other empty values, since they lead to an empty key.
        if (cell.value().remaining() > 0)
        {
            Mutation mutation = new Mutation(properties.getProperty("keyspace"), cell.value());
            mutation.add(properties.getProperty("columnfamily"), cell.name(), key, System.currentTimeMillis());
            mutations.add(mutation);
        }
    }

    return mutations;
}

как я могу изменить метод расширения для реализации функциональности. Tnx


person Rohith S Pal    schedule 30.09.2015    source источник


Ответы (1)


Вы используете неправильный ключ для создания экземпляра Mutation
Вот рабочий код

public Collection<Mutation> augment(ByteBuffer key, ColumnFamily update) 
{    
    List<Mutation> mutations = new ArrayList<Mutation>(update.getColumnCount());

    for (Cell cell : update)
    {
        if (cell.value().remaining() > 0)
        {
            Mutation mutation = new Mutation(properties.getProperty("keyspace"), key);
            mutation.add(properties.getProperty("columnfamily"), cell.name(), cell.value(), System.currentTimeMillis());
            mutations.add(mutation);
        }
   }
   return mutations;
}
person Ashraful Islam    schedule 27.10.2015