-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathddl.cql
66 lines (58 loc) · 1.47 KB
/
ddl.cql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
-- KEYSPACE
CREATE KEYSPACE bank WITH REPLICATION = {'class' : 'SingleRegionStrategy', 'replication_factor' : 3};
-- ORDINARY TABLES
CREATE TABLE bank.cards (
card_id TEXT,
credit_limit INT,
PRIMARY KEY (card_id)
);
CREATE TABLE bank.unique_users_daily (
card_id TEXT,
date DATE,
PRIMARY KEY ((date), card_id)
);
CREATE TABLE bank.transactions (
transaction_id TEXT,
card_id TEXT,
receiver_card_id TEXT,
amount INT,
status TEXT,
date DATE,
PRIMARY KEY ((transaction_id), card_id, date)
) WITH CLUSTERING ORDER BY (card_id ASC, date DESC);
CREATE TABLE bank.reserved_transactions (
transaction_id TEXT,
card_id TEXT,
receiver_card_id TEXT,
amount INT,
date DATE,
PRIMARY KEY ((card_id), transaction_id, date)
) WITH CLUSTERING ORDER BY (transaction_id ASC, date ASC);
CREATE TABLE bank.successful_transactions_daily (
transaction_id TEXT,
card_id TEXT,
receiver_card_id TEXT,
amount INT,
date DATE,
PRIMARY KEY ((date), transaction_id)
);
-- PREAGGREGATION TABLES
CREATE TABLE bank.transactions_preaggregated_daily (
card_id TEXT,
total_amount DOUBLE,
date DATE,
PRIMARY KEY ((card_id), date)
) WITH CLUSTERING ORDER BY (date DESC);
CREATE TABLE bank.transactions_preaggregated_monthly (
card_id TEXT,
total_amount DOUBLE,
date DATE,
PRIMARY KEY ((card_id), date)
) WITH CLUSTERING ORDER BY (date DESC);
CREATE TABLE bank.bank_statistics_daily (
number_transactions BIGINT,
number_unique_users BIGINT,
capital_turnover BIGINT,
date DATE,
PRIMARY KEY (date)
);