我是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;
什麼不工作? – OrangeDog
你的表格和視圖有相同的主鍵......不是錯誤的原因,而只是一個fyi。它沒有任何用處。無論您在物化視圖上運行什麼查詢,都可以在基表 –