Data reference and updation in cassandra tables

自作多情 提交于 2019-12-25 04:36:22

问题


I have a table Called 'usertab' to store user details such as:

userid uuid,
firstname text,
lastname text
email text
gender int
image text

Most of the other tables contains userid as a field for referencing 'usertab', but when I retrieve data from other table, I need to execute another select query to get user details.

So if 10,000 or more data retrieved, same number of select query executed for getting user details. This makes our system slow.

So we add usertab fields such as firstname,lastname, gender, image in other tables in addition to userid field.

So on data retrieval, the system become fast, but we faced another problem. If any changes in usertab table such as change in firstname, lastname, gender or image, we need to update other tables that contains user details. If we consider huge amount of data in other tables, how can I handle this?

We are using lucene index and C#.


回答1:


Cassandra writes significantly faster and more efficient than reads.
That's why cassandra prefer Denationalization over normalization

Denormalization is the concept that a data model should be designed so that a given query can be served from the results from one row and query. Instead of doing multiple reads from multiple tables and rows to gather all the required data for a response, instead modify your application logic to insert the required data multiple times into every row that might need it in the future This way, all required data can be available in just one read which prevents multiple lookups.

When executing multiple update you can use executeAsync.

Session allows asynchronous execution of statements (for any type of statement: simple, bound or batch) by exposing the ExecuteAsync method.

//Execute a statement asynchronously using await
var rs = await session.ExecuteAsync(statement);

Source : https://www.hakkalabs.co/articles/cassandra-data-modeling-guide



来源:https://stackoverflow.com/questions/40837826/data-reference-and-updation-in-cassandra-tables

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!