簡體   English   中英

如何在Cassandra中安排數據以最后輸出格式獲取數據

[英]How to arrange data in Cassandra to get data in last in first out format

由於我們無法對Cassandra中的數據進行排序,我想以這樣的格式存儲數據:當我檢索數據時,我需要以“先進先出格式”獲取數據,即如果用戶在檢索數據時輸入注釋,我應該先得到最新的評論首先,然后是較早的評論。 我認為這與比較器有關。

我在配置Cassandra時設置了以下內容:

assume posts comparator as utf8;
assume posts validator as utf8;
assume posts keys as utf8;

請幫助 - 我應該如何創建列以按時間格式排列數據,以便先存儲最新數據?

連續的列始終排序,您可以按相反順序迭代行中的列。 鑒於這兩個fac,我們可以通過將注釋存儲在名為“comments”的列族中來模擬您所描述的情況,其中行鍵是帖子ID,列表示對應帖子的注釋。 列是時間戳(ISO格式的日期,UNIX時間戳或時間UUID),值是注釋文本正文。

如果您現在獲取一行的列並指定您希望它們以相反的順序,您將得到您想要的。 如何指定反向順序取決於您的驅動程序,但它通常只是檢索行或列切片的命令的選項。

另一種更為hackish的方法是獲取帖子的UNIX時間戳,並從大整數中減去它,如2 ^ 31,並將其用作列鍵。 這樣,默認情況下,列將按相反的順序排序。 它不漂亮,上面的方法更優雅。

如果您擔心使用時間戳,因為可能存在兩個注釋在同一時間發布的沖突,請使用Cassandra的時間UUID類型。

您需要組織數據,以便比較器是時間戳。 您可以按自然順序存儲數據,並在切片查詢中指定相反的順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM