2015-09-04 101 views
0

創建Cassandra的數據模型的設計,我有一個Job_Status表3列:含有統計需要幫助,在我的要求

Job_ID (numeric) 
Job_Time (datetime) 
Machine_ID (numeric) 

其他一些領域(如內存,CPU利用率)

在有規律間隔(例如1分鐘),條目將插入上表中,以便在每臺機器上運行作業。

我想在Cassandra中設計數據模型。

我的要求是獲得在兩臺或兩臺以上機器上同時運行的作業列表(一對)。

我已經創建表Job_IdJob_Time作爲行主鍵但爲了達到預期的結果我有記錄檢索後做大量數據的解析。 當記錄數量達到50萬左右時,需要很多時間。 這個需求期望像SQL內部連接這樣的操作,但由於某些業務原因,我不能使用SQL,而且SQL數據集這樣龐大的SQL查詢也花費了很多時間,因爲我試圖用SQL Server中的空白數據來嘗試。

所以我需要在下面點你的幫助:

  1. 請表明,在卡桑德拉一些高效的數據模型這一要求。
  2. 如何在Cassandra數據庫中實現/實現SQL的連接操作?

請提出一些替代設計/算法。我被困在這個問題很長一段時間。

回答

0

這是一個相當廣泛的問題。作爲一個普通的方法,你可能想看看Cassandra和Spark的搭配,這樣你就可以並行執行大連接。

你會在他們開始時將作業插入到你的表中,並在他們完成時刪除它們(可能在插入時設置一個TTL,以便未被刪除的作業將在一段時間後自動刪除)。

當你想更新你的作業配對時,你需要運行一個spark批處理作業,將表格數據加載到一個RDD中,然後對這些數據進行map/reduce操作,或者使用spark SQL來完成一個SQL風格的加入。您可能會將生成的RDD寫回Cassandra表。

+0

感謝Jim的迴應。工作刪除時間爲1年。你給我的方向看起來很有說服力,我會探索它。 – user2676044