Я новичок в Ruby. Но из-за некоторой проблемы я должен обрабатывать код, так как наш рубиновый разработчик недоступен. Мы используем базу данных cassandra для получения значений из веб-службы Ruby (Sinatra) и помещаем ее в пространство ключей Cassandra. Но из-за какой-то проблемы данные не вставляются.Понимание скрипта Ruby для базы данных cassandra
В следующем коде partners_daily, partner_monthly и т. Д. Являются семейством столбцов (таблицы) в пространстве ключей статистики (базы данных).
if params and !partner_id.nil? and !activity_type.nil?
{
:partners_daily => "#{partner_id}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}_#{time.year}_#{time.month}_#{time.day}",
:partners_monthly => "#{partner_id}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}_#{time.year}_#{time.month}",
:partners_alltime => "#{partner_id}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}",
:channels_daily => "#{channel_id}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}_#{time.year}_#{time.month}_#{time.day}",
:channels_monthly => "#{channel_id}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}_#{time.year}_#{time.month}",
:channels_alltime => "#{channel_id}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}",
:countries_daily => "#{country}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}_#{time.year}_#{time.month}_#{time.day}",
:countries_monthly => "#{country}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}_#{time.year}_#{time.month}",
:countries_alltime => "#{country}_#{activity_type}_#{success == 1 ? 'sucess' : "failure:#{failure_code}"}"
}.each do |k,v|
stats.add(k, v, 1, 'count')
end
return "Activity stored in stats"
end
else
return "Error: client headers missing"
end
end
def count(table, key)
require 'cassandra-cql' # requiring this at the top was leading to error: unconfigured columnfamily
cqldb = CassandraCQL::Database.new('127.0.0.1:9160', {:keyspace => 'plystats'})
query = "update partners_daily set count = ? where key = ?"#"update #{table} set count = count+1 where key = ?;"
#return cqldb.execute(query, 0, 'sonia').inspect
return query
end
Я хочу знать, как выполняется логика ввода данных в нем, и где? Это в stats.add(k, v, 1, 'count')
?
и есть ли какие-либо ошибки во вставке, потому что это ошибка.
не приходит без ошибки в сценарии, его только, что значения не будут вставлены в базу данных. Но когда я щелкнул правой кнопкой мыши по семейству столбцов и выделил 1000 строк, появится сообщение об ошибке: Null. –
Да, я думаю .. но раскомментировать это не имеет значения. –