2016-09-04 83 views
1

這是我的場景,我有表業務,它具有以下列,代碼,名稱,描述,日期時間。現在我需要顯示日期時間大於當前系統日期時間的業務記錄的代碼和名稱。 我應該採取什麼策略,以便cassandra能夠爲上述情況提供最佳就緒表現。卡桑德拉根據日期範圍選擇行

感謝 阿尼

+0

你是什麼意思的戰略? – bkowalczyyk

回答

0

我不知道你的數據的大小,但既然你想通過日期時間查詢和你想的範圍,這個特殊的列應該是你最後的聚類列。這將確保您可以通過它進行查詢,並確保您可以執行範圍搜索。請記住,在cassandra中,如果您在某個列中執行範圍搜索,則您的查詢將立即結束。

實施例:

有效查詢 SELECT * FROM表column1在= something1和列2 = something2和日期時間>現在;

無效查詢 SELECT * FROM表column1在= something1和列2 < something2和日期時間>現在;

如果您需要更多詳細信息或幫助您向我們提供您的數據大小和有關您的用例的更多信息。 在任何情況下,這course from datastax幫助我很多與建模過程。我推薦它100%。這是免費的。你只需要註冊。

+0

感謝Reveka的回覆。在我的要求中,我不能使用您建議的任何其他列(column1,column2),爲什麼因爲只有datetime列被允許用於過濾數據。 您是否使用過「SSTable Attached Secondary Index(SASI)」,它允許使用out指定主列來執行範圍查詢。 – Ani

+0

是的,但我不會推薦它。它有一個很不可預知的行爲(至少在我的用例中)。所以爲了使事情順利,你唯一的搜索選項是日期時間? – Reveka

+0

嗨Reveka, 是的,我的搜索選項只有日期時間,因爲用例說,在網頁的下拉菜單中,我只能顯示那些日期時間大於當前日期時間的業務代碼(因爲其他業務代碼過去具有日期時間是過期的業務代碼) – Ani