· 6 years ago · Jun 08, 2019, 01:14 PM
1from cassandra.cluster import Cluster
2from cassandra.query import dict_factory
3
4def create_keyspace(session, keyspace):
5 session.execute("""
6 CREATE KEYSPACE IF NOT EXISTS """+keyspace+"""
7 WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '1' }
8 """)
9
10def create_table(session, keyspace, table):
11 session.execute("""
12 CREATE TABLE IF NOT EXISTS """+ keyspace+"""."""+table+""" (
13 user_id int ,
14 avg_movie_rating float,
15 PRIMARY KEY(user_id)
16 )
17 """)
18
19def push_data_table(session, keyspace, table, userId, avgMovieRating):
20 session.execute(
21 """
22 INSERT INTO """+keyspace+"""."""+table+""" (user_id, avg_movie_rating)
23 VALUES (%(user_id)s, %(avg_movie_rating)s)
24 """,
25 {
26 'user_id': userId,
27 'avg_movie_rating': avgMovieRating
28 }
29 )
30
31def get_data_table(session, keyspace, table):
32 rows = session.execute("SELECT * FROM "+keyspace+"."+table+";")
33 print("he"*8)
34 print(type(rows))
35 for row in rows:
36 print(row)
37
38def clear_table(session, keyspace, table):
39 session.execute("TRUNCATE "+keyspace+"."+table+";")
40
41def delete_table(session, keyspace, table):
42 session.execute("DROP TABLE "+keyspace+"."+table+";")
43
44if __name__ == "__main__":
45 keyspace = "user_ratings"
46 table = "user_avg_rating"
47 # utworzenia połączenia z klastrem
48 cluster = Cluster(['127.0.0.1'], port=9042)
49 session = cluster.connect()
50 # utworzenie nowego keyspace
51 create_keyspace(session, keyspace)
52 # ustawienie używanego keyspace w sesji
53 session.set_keyspace(keyspace)
54 # użycie dict_factory pozwala na zwracanie słowników
55 # znanych z języka Python przy zapytaniach do bazy danych
56 session.row_factory = dict_factory
57 # tworzenie tabeli
58 create_table(session, keyspace, table)
59 # umieszczanie danych w tabeli
60 push_data_table(session, keyspace, table, userId=1337, avgMovieRating=4.2)
61 # pobieranie zawartości tabeli i wyświetlanie danych
62 get_data_table(session, keyspace, table)
63 # czyszczenie zawartości tabeli
64 clear_table(session, keyspace, table)
65 get_data_table(session, keyspace, table)
66 # usuwanie tabeli
67 delete_table(session, keyspace, table)