2017-04-10 30 views
0

我是cassandra的新手,希望使用Materialized視圖來改變我公開數據的方式,但它有時可以正常工作,而且在某些情況下不會發生。 所以我想知道爲什麼會有這樣的事情發生?Cassandra - MATERIALIZED VIEW正在工作1中的3次

這裏是我運行的確切腳本(在泊塢窗容器)

CREATE KEYSPACE IF NOT EXISTS demo3 WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1 }; 

/* 
** Drop view to allow droping table 
*/ 

DROP MATERIALIZED VIEW IF EXISTS demo3.tabletest_view; 

/* 
** TABLE demo3.tabletest (
** cardKey text, fidelity card key 
** dateKey Date, date of the transaction 
** kind text, 
** power text, 
** sid text, //avro schema id 
** data blob, 
** PRIMARY KEY ((cardKey), dateKey, kind, power) 
**) WITH CLUSTERING ORDER BY (cardKey, trxDate DESC); 
*/ 

DROP TABLE IF EXISTS demo3.tabletest; 
CREATE TABLE IF NOT EXISTS demo3.tabletest (
    cardkey text, 
    datekey date, 
    kind text, 
    power text, 
    sid text, 
    data blob, 
    PRIMARY KEY ((cardkey), datekey, kind, power) 
) WITH CLUSTERING ORDER BY (datekey DESC); 

/* 
** FIXTURES 
*/ 

INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-05-01', 'kind1', 'power1', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-05-08', 'kind1', 'power2', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-05-09', 'kind2', 'power1', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-05-15', 'kind1', 'power3', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-05-22', 'kind1', 'power4', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-05-25', 'kind2', 'power2', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-05-30', 'kind1', 'power5', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-06-06', 'kind2', 'power3', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-06-14', 'kind2', 'power4', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2016-06-17', 'kind2', 'power5', 'Id', bigintAsBlob(99)); 

INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-05-01', 'kind1', 'power1', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-05-08', 'kind1', 'power2', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-05-09', 'kind2', 'power1', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-05-15', 'kind1', 'power3', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-05-22', 'kind1', 'power4', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-05-25', 'kind2', 'power2', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-05-30', 'kind1', 'power5', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-06-06', 'kind2', 'power3', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-06-14', 'kind2', 'power4', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2016-06-17', 'kind2', 'power5', 'Id', bigintAsBlob(99)); 

INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-05-01', 'kind1', 'power6', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-05-08', 'kind1', 'power7', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-05-09', 'kind2', 'power6', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-05-15', 'kind1', 'power8', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-05-22', 'kind1', 'power9', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-05-25', 'kind2', 'power7', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-05-30', 'kind1', 'power10', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-06-06', 'kind2', 'power8', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-06-14', 'kind2', 'power9', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card1', '2017-06-17', 'kind2', 'power10', 'Id', bigintAsBlob(99)); 

INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-05-01', 'kind1', 'power6', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-05-08', 'kind1', 'power7', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-05-09', 'kind2', 'power6', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-05-15', 'kind1', 'power8', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-05-22', 'kind1', 'power9', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-05-25', 'kind2', 'power7', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-05-30', 'kind1', 'power10', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-06-06', 'kind2', 'power8', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-06-14', 'kind2', 'power9', 'Id', bigintAsBlob(99)); 
INSERT INTO demo3.tabletest (cardkey, datekey, kind, power, sid, data) VALUES ('card2', '2017-06-17', 'kind2', 'power10', 'Id', bigintAsBlob(99)); 


/* 
** DISPLAY RESULT: 
*/ 

SELECT * FROM demo3.tabletest; 

/* 
** Creating view 
*/ 

CREATE MATERIALIZED VIEW demo3.tabletest_view 
AS SELECT cardkey, datekey, kind, power, sid, data 
FROM demo3.tabletest 
WHERE cardkey IS NOT NULL AND datekey IS NOT NULL AND kind IS NOT NULL AND power IS NOT NULL 
PRIMARY KEY ((cardkey), datekey, kind, power); 

SELECT * FROM demo3.tabletest_view; 
+0

什麼不工作? – OrangeDog

+0

你的表格和視圖有相同的主鍵......不是錯誤的原因,而只是一個fyi。它沒有任何用處。無論您在物化視圖上運行什麼查詢,都可以在基表 –

回答

1

你是不是從獲取數據物化視圖tabletest_view吧?
這是因爲tabletest_view正在建立中。當您在包含現有數據的表的頂部創建MATERIALIZED VIEW時,需要一些時間來構建和傳播數據。

同時你可以通過執行

SELECT * FROM system.built_views ; 

通過

SELECT * FROM system.views_builds_in_progress ; 

和所有內置視圖列表來獲取所有視圖的當前狀態,當你的觀點是建立你將得到的數據。

+0

Thx上運行,我們得出了相同的結論 – MrBouh

相關問題