1
我有一個卡桑德拉日誌表,現在我想搜索表的行數。有沒有更好的方法來計算卡桑德拉鍵?
首先,我使用select count(*) from log
,但它非常非常慢。 然後我想使用counter
類型,然後問題即將到來。我的表是TTL表,所有行都保持一個小時,使用counter
類型變得非常困難。
我有一個卡桑德拉日誌表,現在我想搜索表的行數。有沒有更好的方法來計算卡桑德拉鍵?
首先,我使用select count(*) from log
,但它非常非常慢。 然後我想使用counter
類型,然後問題即將到來。我的表是TTL表,所有行都保持一個小時,使用counter
類型變得非常困難。
Cassandra對於執行表掃描操作效率不高。它擅長攝取大量數據,然後訪問數據的小片而不是整個表。
因此,如果您想要在不使用計數器的情況下對鍵進行計數,則需要將表分爲足夠小以便快速處理的數據塊。例如,如果要使用count(*),則應該只在單個分區上使用它,並將分區大小保持在大約100,000行以下。
對於您的情況,您可能希望按小時對數據進行分區(或者如果您每秒插入大量日誌行,則可能需要5分鐘的間隔)。
如果您要連續插入大量數據,請小心使用一小時的TTL,因爲這可能會導致很多墓碑。爲避免構建墓碑,您應該在小時過後刪除每個小時的分區。
你可以嘗試從限制條款的日誌計數(*),它會很快。 –