Skip to content

Instantly share code, notes, and snippets.

@kmuthukk
Created May 29, 2021 15:07
Show Gist options
  • Save kmuthukk/720d0b44f40065c0d6c56d2019d5f3b7 to your computer and use it in GitHub Desktop.
Save kmuthukk/720d0b44f40065c0d6c56d2019d5f3b7 to your computer and use it in GitHub Desktop.
sample script to load test creations of tables across many schemas
# Dependencies:
# On CentOS you can install psycopg2 thus:
#
# sudo yum install postgresql-libs
# sudo yum install python-psycopg2
import psycopg2;
from multiprocessing.dummy import Pool as ThreadPool
connect_string = "host={} dbname=yugabyte user=yugabyte port=5433".format("172.151.44.47");
def drop_schemas(num_schemas):
conn = psycopg2.connect(connect_string)
conn.set_session(autocommit=True)
cur = conn.cursor()
for idx in range(start_schema_idx, num_schemas):
cur.execute("DROP SCHEMA IF EXISTS schema_{} CASCADE".format(idx))
print("Dropped schema (if exists) schema_{}".format(idx))
def create_schemas(num_schemas):
conn = psycopg2.connect(connect_string)
conn.set_session(autocommit=True)
cur = conn.cursor()
for idx in range(start_schema_idx, num_schemas):
cur.execute("CREATE SCHEMA IF NOT EXISTS schema_{}".format(idx))
print("Created schema schema_{}".format(idx))
def create_tables(num_schemas, num_tables, num_splits):
conn = psycopg2.connect(connect_string)
conn.set_session(autocommit=True)
cur = conn.cursor()
for idx in range(start_schema_idx, num_schemas):
for jdx in range(num_tables):
cur.execute(("CREATE TABLE IF NOT EXISTS schema_{}.t_{}_{}"
+ "(k int primary key, v1 text, v2 text)"
+ " SPLIT INTO {} TABLETS").format(idx, idx, jdx, num_splits))
print("Created table schema_{}.t_{}_{}".format(idx, idx, jdx))
# Main
start_schema_idx = 0
num_schemas = 800
num_tables = 12
drop_schemas(num_schemas)
create_schemas(num_schemas)
create_tables(num_schemas, num_tables, 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment