finish the cassandra setup
This commit is contained in:
parent
992ced99dd
commit
1dc4bfeb0f
|
@ -1,62 +0,0 @@
|
||||||
"""
|
|
||||||
Python by Techfossguru
|
|
||||||
Copyright (C) 2017 Satish Prasad
|
|
||||||
|
|
||||||
"""
|
|
||||||
import logging
|
|
||||||
from cassandra.cluster import Cluster, BatchStatement
|
|
||||||
from cassandra import ConsistencyLevel
|
|
||||||
from cassandra.query import SimpleStatement
|
|
||||||
|
|
||||||
|
|
||||||
class PythonCassandraExample:
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.cluster = None
|
|
||||||
self.session = None
|
|
||||||
self.keyspace = None
|
|
||||||
self.log = None
|
|
||||||
|
|
||||||
def __del__(self):
|
|
||||||
self.cluster.shutdown()
|
|
||||||
|
|
||||||
def createsession(self):
|
|
||||||
self.cluster = Cluster(['localhost'])
|
|
||||||
self.session = self.cluster.connect(self.keyspace)
|
|
||||||
|
|
||||||
def getsession(self):
|
|
||||||
return self.session
|
|
||||||
|
|
||||||
# How about Adding some log info to see what went wrong
|
|
||||||
def setlogger(self):
|
|
||||||
log = logging.getLogger()
|
|
||||||
log.setLevel('INFO')
|
|
||||||
handler = logging.StreamHandler()
|
|
||||||
handler.setFormatter(logging.Formatter(
|
|
||||||
"%(asctime)s [%(levelname)s] %(name)s: %(message)s"))
|
|
||||||
log.addHandler(handler)
|
|
||||||
self.log = log
|
|
||||||
|
|
||||||
def insert_data(self):
|
|
||||||
insert_sql = self.session.prepare(
|
|
||||||
"INSERT INTO employee (emp_id, ename , sal,city) VALUES (?,?,?,?)")
|
|
||||||
batch = BatchStatement()
|
|
||||||
batch.add(insert_sql, (1, 'LyubovK', 2555, 'Dubai'))
|
|
||||||
batch.add(insert_sql, (2, 'JiriK', 5660, 'Toronto'))
|
|
||||||
batch.add(insert_sql, (3, 'IvanH', 2547, 'Mumbai'))
|
|
||||||
batch.add(insert_sql, (4, 'YuliaT', 2547, 'Seattle'))
|
|
||||||
self.session.execute(batch)
|
|
||||||
self.log.info('Batch Insert Completed')
|
|
||||||
|
|
||||||
def select_data(self):
|
|
||||||
rows = self.session.execute('select * from employee limit 5;')
|
|
||||||
for row in rows:
|
|
||||||
print(row.ename, row.sal)
|
|
||||||
|
|
||||||
def update_data(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def delete_data(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,8 @@ Copyright (C) 2017 Satish Prasad
|
||||||
|
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
from cassandra.cluster import Cluster, BatchStatement
|
from cassandra.cluster import Cluster
|
||||||
from cassandra import ConsistencyLevel
|
import time
|
||||||
from cassandra.query import SimpleStatement
|
|
||||||
|
|
||||||
|
|
||||||
class PythonCassandraExample:
|
class PythonCassandraExample:
|
||||||
|
@ -14,7 +13,7 @@ class PythonCassandraExample:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.cluster = None
|
self.cluster = None
|
||||||
self.session = None
|
self.session = None
|
||||||
self.keyspace = None
|
self.keyspace = 'userdb'
|
||||||
self.log = None
|
self.log = None
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
|
@ -37,55 +36,31 @@ class PythonCassandraExample:
|
||||||
log.addHandler(handler)
|
log.addHandler(handler)
|
||||||
self.log = log
|
self.log = log
|
||||||
|
|
||||||
# Create Keyspace based on Given Name
|
|
||||||
def createkeyspace(self, keyspace):
|
|
||||||
"""
|
|
||||||
:param keyspace: The Name of Keyspace to be created
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
# Before we create new lets check if exiting keyspace; we will drop
|
|
||||||
# that and create new
|
|
||||||
rows = self.session.execute(
|
|
||||||
"SELECT keyspace_name FROM system_schema.keyspaces")
|
|
||||||
if keyspace in [row[0] for row in rows]:
|
|
||||||
self.log.info("dropping existing keyspace...")
|
|
||||||
self.session.execute("DROP KEYSPACE " + keyspace)
|
|
||||||
|
|
||||||
self.log.info("creating keyspace...")
|
|
||||||
self.session.execute("""
|
|
||||||
CREATE KEYSPACE %s
|
|
||||||
WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '2' }
|
|
||||||
""" % keyspace)
|
|
||||||
|
|
||||||
self.log.info("setting keyspace...")
|
|
||||||
self.session.set_keyspace(keyspace)
|
|
||||||
|
|
||||||
def create_table(self):
|
|
||||||
c_sql = """
|
|
||||||
CREATE TABLE IF NOT EXISTS employee (emp_id int PRIMARY KEY,
|
|
||||||
ename varchar,
|
|
||||||
sal double,
|
|
||||||
city varchar);
|
|
||||||
"""
|
|
||||||
self.session.execute(c_sql)
|
|
||||||
self.log.info("Employee Table Created !!!")
|
|
||||||
|
|
||||||
# lets do some batch insert
|
|
||||||
def insert_data(self):
|
|
||||||
insert_sql = self.session.prepare(
|
|
||||||
"INSERT INTO employee (emp_id, ename , sal,city) VALUES (?,?,?,?)")
|
|
||||||
batch = BatchStatement()
|
|
||||||
batch.add(insert_sql, (1, 'LyubovK', 2555, 'Dubai'))
|
|
||||||
batch.add(insert_sql, (2, 'JiriK', 5660, 'Toronto'))
|
|
||||||
batch.add(insert_sql, (3, 'IvanH', 2547, 'Mumbai'))
|
|
||||||
batch.add(insert_sql, (4, 'YuliaT', 2547, 'Seattle'))
|
|
||||||
self.session.execute(batch)
|
|
||||||
self.log.info('Batch Insert Completed')
|
|
||||||
|
|
||||||
def select_data(self):
|
def select_data(self):
|
||||||
rows = self.session.execute('select * from employee limit 5;')
|
evil_query = (
|
||||||
|
"select username, hobby from user where hobby='Datenbanken';")
|
||||||
|
allowed_query = ("select username, hobby from user;")
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
start_time = time.time()
|
||||||
|
rows = self.session.execute(allowed_query)
|
||||||
|
print("--- %s seconds ---" % (time.time() - start_time))
|
||||||
|
counter = 1
|
||||||
for row in rows:
|
for row in rows:
|
||||||
print(row.ename, row.sal)
|
counter += 1
|
||||||
|
print(counter)
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
try:
|
||||||
|
rows = self.session.execute(evil_query)
|
||||||
|
except Exception as e:
|
||||||
|
print(e.args)
|
||||||
|
|
||||||
def update_data(self):
|
def update_data(self):
|
||||||
pass
|
pass
|
||||||
|
@ -98,7 +73,4 @@ if __name__ == '__main__':
|
||||||
example1 = PythonCassandraExample()
|
example1 = PythonCassandraExample()
|
||||||
example1.createsession()
|
example1.createsession()
|
||||||
example1.setlogger()
|
example1.setlogger()
|
||||||
example1.createkeyspace('techfossguru')
|
|
||||||
example1.create_table()
|
|
||||||
example1.insert_data()
|
|
||||||
example1.select_data()
|
example1.select_data()
|
||||||
|
|
|
@ -5,6 +5,41 @@ Copyright (C) 2017 Satish Prasad
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
from cassandra.cluster import Cluster, BatchStatement
|
from cassandra.cluster import Cluster, BatchStatement
|
||||||
|
import string
|
||||||
|
import random
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
primary_key = 1
|
||||||
|
hobbies = []
|
||||||
|
hobbies.append('Golf')
|
||||||
|
hobbies.append('Schwimmen')
|
||||||
|
hobbies.append('Datenbanken')
|
||||||
|
|
||||||
|
|
||||||
|
def randomword(length):
|
||||||
|
return ''.join(random.choice(
|
||||||
|
string.ascii_lowercase) for i in range(length))
|
||||||
|
|
||||||
|
|
||||||
|
def create_batch(insert_sql):
|
||||||
|
global primary_key
|
||||||
|
counter = 1
|
||||||
|
batch = BatchStatement()
|
||||||
|
while 15 > counter:
|
||||||
|
param_counter = 0
|
||||||
|
params = []
|
||||||
|
while 13 > param_counter:
|
||||||
|
name = randomword(6)
|
||||||
|
params.append(name)
|
||||||
|
param_counter += 1
|
||||||
|
|
||||||
|
batch.add(insert_sql, (primary_key, params[0], params[1], params[2],
|
||||||
|
params[3], params[4], params[5], params[6],
|
||||||
|
params[7], hobbies[randint(0, 2)], params[9],
|
||||||
|
params[10], params[11], params[12]))
|
||||||
|
counter += 1
|
||||||
|
primary_key += 1
|
||||||
|
return batch
|
||||||
|
|
||||||
|
|
||||||
class PythonCassandraExample:
|
class PythonCassandraExample:
|
||||||
|
@ -60,20 +95,57 @@ class PythonCassandraExample:
|
||||||
|
|
||||||
def create_table(self):
|
def create_table(self):
|
||||||
c_sql = """
|
c_sql = """
|
||||||
CREATE TABLE IF NOT EXISTS employee (emp_id int PRIMARY KEY,
|
CREATE TABLE IF NOT EXISTS user (id int PRIMARY KEY,
|
||||||
ename varchar,
|
username varchar,
|
||||||
sal double,
|
email varchar,
|
||||||
city varchar);
|
first_name varchar,
|
||||||
|
last_name varchar,
|
||||||
|
middle_name varchar,
|
||||||
|
street_name varchar,
|
||||||
|
telephonenumber varchar,
|
||||||
|
mobile_number varchar,
|
||||||
|
hobby varchar,
|
||||||
|
salutation varchar,
|
||||||
|
gender varchar,
|
||||||
|
city varchar,
|
||||||
|
country varchar);
|
||||||
"""
|
"""
|
||||||
self.session.execute(c_sql)
|
self.session.execute(c_sql)
|
||||||
self.log.info("Employee Table Created !!!")
|
self.log.info("User Table Created !!!")
|
||||||
|
|
||||||
# lets do some batch insert
|
def insert_data(self):
|
||||||
|
insert_sql = self.session.prepare(
|
||||||
|
"""
|
||||||
|
INSERT INTO user (id,
|
||||||
|
username,
|
||||||
|
email,
|
||||||
|
first_name,
|
||||||
|
last_name,
|
||||||
|
middle_name,
|
||||||
|
street_name,
|
||||||
|
telephonenumber,
|
||||||
|
mobile_number,
|
||||||
|
hobby,
|
||||||
|
salutation,
|
||||||
|
gender,
|
||||||
|
city,
|
||||||
|
country) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
counter = 1
|
||||||
|
while 10000 > counter:
|
||||||
|
batch = create_batch(insert_sql)
|
||||||
|
self.session.execute(batch)
|
||||||
|
counter += 1
|
||||||
|
self.log.info('Batch Insert Completed')
|
||||||
|
|
||||||
|
|
||||||
|
# lets do some batch insert
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
example1 = PythonCassandraExample()
|
example1 = PythonCassandraExample()
|
||||||
example1.createsession()
|
example1.createsession()
|
||||||
example1.setlogger()
|
example1.setlogger()
|
||||||
example1.createkeyspace('techfossguru')
|
example1.createkeyspace('userdb')
|
||||||
example1.create_table()
|
example1.create_table()
|
||||||
example1.insert_data()
|
example1.insert_data()
|
||||||
example1.select_data()
|
#example1.select_data()
|
||||||
|
|
|
@ -6,6 +6,7 @@ mariadb_connection = mariadb.connect(user='vagrant',
|
||||||
cursor = mariadb_connection.cursor()
|
cursor = mariadb_connection.cursor()
|
||||||
cursor.execute("""create table if not exists test (
|
cursor.execute("""create table if not exists test (
|
||||||
id bigint auto_increment primary key,
|
id bigint auto_increment primary key,
|
||||||
|
username varchar(128),
|
||||||
first_name varchar(128),
|
first_name varchar(128),
|
||||||
middle_name varchar(128)),
|
middle_name varchar(128)),
|
||||||
last_name varchar(128)),
|
last_name varchar(128)),
|
||||||
|
@ -19,16 +20,6 @@ cursor.execute("""create table if not exists test (
|
||||||
hobby varchar(128)),
|
hobby varchar(128)),
|
||||||
gender varchar(128)),
|
gender varchar(128)),
|
||||||
salutation varchar(128)),
|
salutation varchar(128)),
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
last_name varchar(128)),
|
|
||||||
""")
|
""")
|
||||||
|
|
||||||
cursor.execute("""INSERT INTO test (first_name,last_name) VALUES (%s,%s)""",
|
cursor.execute("""INSERT INTO test (first_name,last_name) VALUES (%s,%s)""",
|
||||||
|
|
Loading…
Reference in New Issue