From c6156b5f2d2168ba73e76ec2b4b0fc26646ae808 Mon Sep 17 00:00:00 2001 From: HuangFF <625173@qq.com> Date: Thu, 22 Sep 2022 15:27:39 +0800 Subject: [PATCH] add new --- OpenGauss-Project-main/lib/__init__.py | 0 OpenGauss-Project-main/lib/connection.py | 103 ++++++ OpenGauss-Project-main/lib/decorator.py | 292 ++++++++++++++++++ OpenGauss-Project-main/lib/multi_thread.py | 172 +++++++++++ .../lib/opengauss_thread.py | 67 ++++ OpenGauss-Project-main/lib/single_thread.py | 112 +++++++ OpenGauss-Project-main/main.py | 99 ++++++ .../prop/opengauss.properties | 6 + OpenGauss-Project-main/prop/properties.py | 39 +++ OpenGauss-Project-main/prop/sqlite.properties | 1 + .../sqlite/shenzhen_metro.sqlite | Bin 0 -> 462848 bytes examples | 1 + 12 files changed, 892 insertions(+) create mode 100644 OpenGauss-Project-main/lib/__init__.py create mode 100644 OpenGauss-Project-main/lib/connection.py create mode 100644 OpenGauss-Project-main/lib/decorator.py create mode 100644 OpenGauss-Project-main/lib/multi_thread.py create mode 100644 OpenGauss-Project-main/lib/opengauss_thread.py create mode 100644 OpenGauss-Project-main/lib/single_thread.py create mode 100644 OpenGauss-Project-main/main.py create mode 100644 OpenGauss-Project-main/prop/opengauss.properties create mode 100644 OpenGauss-Project-main/prop/properties.py create mode 100644 OpenGauss-Project-main/prop/sqlite.properties create mode 100644 OpenGauss-Project-main/sqlite/shenzhen_metro.sqlite create mode 160000 examples diff --git a/OpenGauss-Project-main/lib/__init__.py b/OpenGauss-Project-main/lib/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/OpenGauss-Project-main/lib/connection.py b/OpenGauss-Project-main/lib/connection.py new file mode 100644 index 00000000..e639b183 --- /dev/null +++ b/OpenGauss-Project-main/lib/connection.py @@ -0,0 +1,103 @@ +import time +import logging +import sqlite3 +from psycopg2 import pool +from threading import Semaphore + + +class OpenGaussConnectionPool(pool.AbstractConnectionPool): + def __init__(self, minconn, maxconn, *args, **kwargs): + self.semaphore = Semaphore(maxconn) + self.maxconn = maxconn + self.current = 0 + super().__init__(minconn, maxconn, *args, **kwargs) + + def getconn(self, key=None): + self.semaphore.acquire() + self.current += 1 + return self._getconn(key) + + def putconn(self, *args, **kwargs): + self._putconn(*args, **kwargs) + self.semaphore.release() + self.current -= 1 + + def closeall(self) -> None: + super().closeall() + self.semaphore.release(self.current) + + +class OpenGaussConnection: + def __init__(self, opengauss_properties, error_log: logging.Logger, info_log: logging.Logger): + super().__init__() + self.pool = None + self.opengauss_properties = opengauss_properties + i = 0 + ex = None + while True: + if i == 5: + print("Fail to connect to OpenGauss database") + raise ex + try: + self.pool = OpenGaussConnectionPool(1, 300, + database=self.opengauss_properties['database.name'], + user=self.opengauss_properties['database.user'], + password=self.opengauss_properties[ + 'database.password'], + host=self.opengauss_properties['database.host'], + port=self.opengauss_properties['database.port'], + keepalives=1, + keepalives_idle=30, + keepalives_interval=10, + keepalives_count=15) + info_log.info( + "Successfully Log In OpenGauss Database %s As %s" % ( + self.opengauss_properties['database.name'], self.opengauss_properties['database.user'])) + print("Successfully Log In OpenGauss Database %s As %s" % ( + self.opengauss_properties['database.name'], self.opengauss_properties['database.user'])) + break + except Exception as e: + i += 1 + if i == 1: + print("Fail to connect to OpenGauss database. Retry 1 time") + else: + print("Fail to connect to OpenGauss database. Retry %d times" % i) + error_log.error(e) + ex = e + time.sleep(5) + + def getconn(self, key=None): + return self.pool.getconn(key) + + def putconn(self, *args, **kwargs): + self.pool.putconn(*args, **kwargs) + + def closeall(self): + self.pool.closeall() + + +class SqliteConnection: + def __init__(self, sqlite_properties, error_log: logging.Logger, info_log: logging.Logger): + i = 0 + ex = None + while True: + if i == 5: + print("Fail to connect to Sqlite3 database") + raise ex + try: + self.conn_sqlite = sqlite3.connect("sqlite/" + sqlite_properties['database.filename']) + info_log.info("Successfully Log In Sqlite3 Database %s" % (sqlite_properties['database.filename'])) + print("Successfully Log In Sqlite3 Database %s" % (sqlite_properties['database.filename'])) + break + except Exception as e: + i += 1 + if i == 1: + print("Fail to connect to Sqlite3 database. Retry 1 time") + else: + print("Fail to connect to Sqlite3 database. Retry %d times" % i) + error_log.error(e) + ex = e + time.sleep(5) + + def getconn(self): + return self.conn_sqlite diff --git a/OpenGauss-Project-main/lib/decorator.py b/OpenGauss-Project-main/lib/decorator.py new file mode 100644 index 00000000..0733bd73 --- /dev/null +++ b/OpenGauss-Project-main/lib/decorator.py @@ -0,0 +1,292 @@ +import re + + +def remove_comment(sql: str): + while sql.find("--") != -1: + i = index = sql.find("--") + while i < len(sql) and sql[i] != '\n': + i += 1 + if i == len(sql): + return sql[0:index] + sql = sql[0:index] + sql[(i + 1):] + return sql + + +def get_table_name(sql: str): + x = sql.find("CREATE TABLE") + y = sql.find("(") + return sql[x + 12:y] + + +def find_n_sub_str(src: str, sub: str, n: int, start: int): + index = src.find(sub, start) + if index != -1 and n > 0: + return find_n_sub_str(src, sub, n - 1, index + 1) + return index + + +def find_n_sub_str_re(src: str, pattern: re.Pattern, n: int, start: int): + search = pattern.search(src, start) + index = search.start() + sub = search.group() + if index != -1 and n > 0: + return find_n_sub_str_re(src, pattern, n - 1, index + 1) + return index, sub + + +def check_integrity(src: str, sub: str, index: int): + flag = True + if index > 0: + flag = (src[index - 1] == ' ') + if not flag: + return flag + if index + len(sub) < len(src): + flag = (src[index + len(sub)] == ' ') + return flag + + +def check_is_column_name(src: str, index: int): + index -= 1 + if src[index] != ' ': + return False + else: + return True + + +def convert_to_not_null(sql: str): + cnt = sql.count("''") + flag = True + for n in range(cnt): + index = find_n_sub_str(sql, "''", n, 0) + if index > 0: + if sql[index - 1] != '(' and sql[index - 1] != ',' and sql[index - 1] != ' ': + flag = False + if index + 2 < len(sql): + if sql[index + 2] != ')' and sql[index + 2] != ',' and sql[index + 2] != ' ': + flag = False + if flag: + sql = sql[0:index] + "' '" + sql[(index + 2):] + flag = True + return sql + + +def convert_double_quote(sql: str): + oldsql = None + if sql.startswith("CREATE TABLE"): + index = sql.upper().find("(") + oldsql = sql[0:(index + 1)] + sql = sql[(index + 1):] + if sql.strip().startswith("'"): + start = sql.find("'") + for i in range(start + 1, len(sql)): + if sql[i] == "'": + if oldsql is not None: + return oldsql + '"' + sql[(start + 1):i] + '"' + sql[i + 1:] + else: + return '"' + sql[(start + 1):i] + '"' + sql[i + 1:] + else: + if oldsql is not None: + return oldsql + sql + else: + return sql + + +def convert_varchar(sql: str): + pattern = re.compile('VARCHAR[(]\d+[)]') + cnt = len(pattern.findall(sql.upper())) + for n in range(cnt): + index, sub = find_n_sub_str_re(sql.upper(), pattern, n, 0) + if check_integrity(sql.upper(), sub, index): + num = int(sub[8:-1]) + num *= 3 + num = str(num) + result = "VARCHAR(%s)" % num + sql = sql[0:index] + result + sql[(index + len(sub)):] + return sql + + +def try_to_convert(oldstr: str, newstr: str, sql: str): + cnt = sql.upper().count(oldstr.upper()) + if cnt > 0: + for n in range(cnt): + index = find_n_sub_str(sql.upper(), oldstr.upper(), n, 0) + if check_integrity(sql.upper(), oldstr.upper(), index) \ + and check_is_column_name(sql.upper(), index): + return sql[0:index] + newstr + sql[(index + len(oldstr)):] + return sql + + +def try_to_remove_fk(sql: str): + sql = convert_double_quote(sql) + if sql.upper().find("FOREIGN KEY") != -1: + if sql.endswith("));") or sql.endswith(");"): + return ");" + else: + return "" + cnt = sql.upper().count("REFERENCES") + if cnt > 0: + for n in range(cnt): + index1 = find_n_sub_str(sql.upper(), "REFERENCES", n, 0) + if check_integrity(sql.upper(), "REFERENCES", index1): + index2 = sql.upper().find("CONSTRAINT") + if index2 != -1: + return sql[0:index2] + else: + return sql[0:index1] + return sql + + +def remove_foreign_key(sql: str): + ss = sql.split(',') + ss = map(lambda x: + try_to_remove_fk(x.replace('\n', '').replace('\r', '').replace(' ', ' ').strip()), ss) + sss = list(filter(lambda x: (x != ''), ss)) + sql = ",".join(sss) + sql = sql.replace(",);", ");").replace("(,", "(").replace(",,", ",") + return sql + + +def extract_foreign_key(sql: str): + sqls = [] + ss = sql.split(',') + for sql in ss: + sql = sql.replace('\n', '').replace('\r', '').replace(' ', ' ').strip() + index = sql.upper().find("FOREIGN KEY") + if index != -1: + sql = sql[index:] + while sql.endswith(")") or sql.endswith(";") or sql.endswith(","): + sql = sql[0:-1] + index = sql.upper().find("REFERENCES") + if sql.find("(", index) != -1 and sql.find(")", index) == -1: + sql = sql + ")" + sqls.append(sql) + continue + cnt = sql.upper().count("REFERENCES") + if cnt > 0: + for n in range(cnt): + index = find_n_sub_str(sql.upper(), "REFERENCES", n, 0) + fk = sql[index:] + if check_integrity(sql.upper(), "REFERENCES", index): + column_name = None + if sql.upper().startswith("CREATE TABLE"): + index = sql.upper().find("(") + sql = sql[(index + 1):] + if sql.strip().upper().startswith('"'): + start = sql.find('"') + for i in range(start + 1, len(sql)): + if sql[i] == '"': + column_name = sql[start:i + 1] + break + elif sql.upper().startswith("'"): + start = sql.find("'") + for i in range(start + 1, len(sql)): + if sql[i] == "'": + column_name = '"' + sql[(start + 1):i] + '"' + break + else: + sql = sql.strip() + for i in range(len(sql)): + if sql[i] == ' ': + column_name = sql[0:i] + break + result = "foreign key (%s) %s" % (column_name, fk) + sqls.append(result) + break + return sqls + + +def convert_datatype(sql: str): + sql = convert_varchar(sql) + sql = try_to_convert("datetime", "timestamp without time zone", sql) + sql = try_to_convert("real", "double precision", sql) + sql = try_to_convert("nvarchar", "nvarchar2", sql) + sql = try_to_convert("varying character", "character varying", sql) + sql = try_to_convert("graphic", "nchar", sql) + sql = try_to_convert("year", "integer", sql) + sql = try_to_convert("line", "path", sql) + sql = try_to_convert("autoincrement", "integer", sql) + return sql + + +def create_without_fk(sql: str): + sql = remove_foreign_key(sql) + sql = convert_datatype(sql) + return sql + + +def alter_fk(sql: str): + sqls = extract_foreign_key(sql) + table_name = get_table_name(sql) + alter_sqls = [] + for sql in sqls: + alter_sqls.append("alter table " + table_name + " add " + sql + ";") + return alter_sqls + + +def insert_array(sql: str): + x = sql.find(",'[") + y = sql.find("]") + if x != -1 and y != -1: + sql = sql[:x + 1] + 'array' + sql[x + 2:y + 1] + sql[y + 2:] + return sql + + +def autoincrement(sql: str, table_name: str, num: int): + sqls = [] + sql = sql.replace("\n", " ") + cnt = sql.upper().count("AUTOINCREMENT") + column_name = None + if cnt > 0: + for n in range(cnt): + index = find_n_sub_str(sql.upper(), "AUTOINCREMENT", n, 0) + if check_integrity(sql.upper(), "AUTOINCREMENT", index) \ + and check_is_column_name(sql.upper(), index): + index_e = index - 1 + while index_e >= 0: + if sql[index_e] != ' ': + break + index_e -= 1 + index_s = index_e + while index_s >= 0: + if sql[index_s] == ' ': + break + index_s -= 1 + column_name = sql[(index_s + 1):(index_e + 1)] + if column_name is not None: + seq_sql = "CREATE SEQUENCE sq_" + table_name + " START " + str(num) + " INCREMENT 1 CACHE 20;" + alter_sql = "ALTER TABLE " + table_name + " ALTER COLUMN " + column_name + \ + " set default nextval('sq_" + table_name + "');" + sqls.append(seq_sql) + sqls.append(alter_sql) + column_name = None + return sqls + + +def insert(sql: str): + if sql.find('INSERT INTO') != -1: + sql = insert_array(sql) + sql = convert_to_not_null(sql) + return sql + + +def trigger_to_function(trigger_name: str, sql: str): + function_name = trigger_name + "()" + sql = sql.upper() + sql_L = sql.split() + sql = " ".join(sql_L) + ll = sql.find("BEGIN") + 6 + rr = sql.find("END") - 2 + action = sql[ll:rr] + function = "CREATE FUNCTION function_name RETURNS TRIGGER AS $example_table$\n" + " BEGIN\n" + " action;\n" + " RETURN NEW;\n" + " END;\n" + "$example_table$ LANGUAGE plpgsql;" + function = function.replace("function_name", function_name) + function = function.replace("action", action) + function = function.replace("DATETIME('NOW')", "CURRENT_TIMESTAMP") + function = function.replace("json_array", "array") + return function + + +def new_trigger(trigger_name: str, sql: str): + rr = sql.find("BEGIN") + new_sql = sql[:rr] + trigger_sql = new_sql + "FOR EACH ROW EXECUTE PROCEDURE " + trigger_name + "()" + ";" + return trigger_sql diff --git a/OpenGauss-Project-main/lib/multi_thread.py b/OpenGauss-Project-main/lib/multi_thread.py new file mode 100644 index 00000000..93459cca --- /dev/null +++ b/OpenGauss-Project-main/lib/multi_thread.py @@ -0,0 +1,172 @@ +import time +import psycopg2 + +from lib import decorator +from lib.connection import OpenGaussConnection, SqliteConnection +from lib.opengauss_thread import OpenGaussLogThread, OpenGaussThread + + +def multi_thread(opengauss_properties, sqlite_properties, error_log, info_log, sqls_log, is_record_sqls): + opengauss = OpenGaussConnection(opengauss_properties, error_log, info_log) + sqlite = SqliteConnection(sqlite_properties, error_log, info_log) + + conn_sqlite = sqlite.getconn() + + dbusername = opengauss_properties['database.user'] + dbschema = opengauss_properties['database.schema'] + conn_opengauss = opengauss.getconn() + cursor_opengauss = conn_opengauss.cursor() + try: + cursor_opengauss.execute("create schema %s authorization %s;" % (dbschema, dbusername)) + cursor_opengauss.execute("grant usage on schema %s to %s;" % (dbschema, dbusername)) + conn_opengauss.commit() + cursor_opengauss.close() + opengauss.putconn(conn_opengauss) + except psycopg2.errors.DuplicateSchema as e: + info_log.info(e) + cursor_opengauss.close() + opengauss.putconn(conn_opengauss) + + print("The data migration operation is in progress...") + time_start = time.time() + + cursor_sqlite = conn_sqlite.cursor() + all_table = cursor_sqlite.execute("select * from sqlite_master where type = 'table';") + create_sqls = [] + for row in all_table: + s = row[4] + create_sqls.append(s + ";") + try: + conn_opengauss = opengauss.getconn() + cursor_opengauss = conn_opengauss.cursor() + cursor_opengauss.execute("set search_path to %s;" % dbschema) + for sql in create_sqls: + sql = decorator.remove_comment(sql) + sql = decorator.create_without_fk(sql) + cursor_opengauss.execute(sql) + if is_record_sqls: + sqls_log.info(sql.replace("\n", "")) + conn_opengauss.commit() + except Exception as e: + error_log.error(e) + finally: + if conn_opengauss is not None: + opengauss.putconn(conn_opengauss) + + count = 0 + sqls = [] + thread_list = [] + for sql in conn_sqlite.iterdump(): + sql = decorator.remove_comment(sql) + if sql.upper().startswith("CREATE"): + continue + sqls.append(sql) + count += 1 + if count == 50: + if is_record_sqls: + t = OpenGaussLogThread(opengauss, sqls, dbschema, error_log, sqls_log) + else: + t = OpenGaussThread(opengauss, sqls, dbschema, error_log) + thread_list.append(t) + t.start() + sqls = [] + count = 0 + if is_record_sqls: + t = OpenGaussLogThread(opengauss, sqls, dbschema, error_log, sqls_log) + else: + t = OpenGaussThread(opengauss, sqls, dbschema, error_log) + thread_list.append(t) + t.start() + for t in thread_list: + t.join() + + try: + conn_opengauss = opengauss.getconn() + cursor_opengauss = conn_opengauss.cursor() + cursor_opengauss.execute("set search_path to %s;" % dbschema) + for create_sql in create_sqls: + create_sql = decorator.remove_comment(create_sql) + sqls = decorator.alter_fk(create_sql) + for alter_sql in sqls: + cursor_opengauss.execute(alter_sql) + if is_record_sqls: + sqls_log.info(alter_sql.replace("\n", "")) + table_name = decorator.get_table_name(create_sql) + row_num = cursor_sqlite.execute("SELECT COUNT(*) FROM " + table_name) + sqls = decorator.autoincrement(create_sql, table_name, row_num) + for alter_sql in sqls: + cursor_opengauss.execute(alter_sql) + if is_record_sqls: + sqls_log.info(alter_sql.replace("\n", "")) + conn_opengauss.commit() + except Exception as e: + error_log.error(e) + finally: + if conn_opengauss is not None: + opengauss.putconn(conn_opengauss) + + try: + conn_opengauss = opengauss.getconn() + cursor_opengauss = conn_opengauss.cursor() + cursor_opengauss.execute("set search_path to %s;" % dbschema) + indexes = cursor_sqlite.execute("select * from sqlite_master where type = 'index' and sql is not null;") + for row in indexes: + sql = row[4] + ";" + sql = decorator.remove_comment(sql) + cursor_opengauss.execute(sql) + if is_record_sqls: + sqls_log.info(sql) + conn_opengauss.commit() + except Exception as e: + error_log.error(e) + finally: + if conn_opengauss is not None: + opengauss.putconn(conn_opengauss) + + try: + conn_opengauss = opengauss.getconn() + cursor_opengauss = conn_opengauss.cursor() + cursor_opengauss.execute("set search_path to %s;" % dbschema) + views = cursor_sqlite.execute("select * from sqlite_master where type = 'view';") + for row in views: + sql = row[4] + sql = decorator.remove_comment(sql) + cursor_opengauss.execute(sql) + if is_record_sqls: + sqls_log.info(sql) + conn_opengauss.commit() + except Exception as e: + error_log.error(e) + finally: + if conn_opengauss is not None: + opengauss.putconn(conn_opengauss) + + try: + conn_opengauss = opengauss.getconn() + cursor_opengauss = conn_opengauss.cursor() + cursor_opengauss.execute("set search_path to %s;" % dbschema) + triggers = cursor_sqlite.execute("select * from sqlite_master where type = 'trigger';") + for row in triggers: + trigger_name = row[1] + trigger_sql = row[4] + trigger_sql = decorator.remove_comment(trigger_sql) + function = decorator.trigger_to_function(trigger_name, trigger_sql) + function = decorator.remove_comment(function) + trigger = decorator.new_trigger(trigger_name, trigger_sql) + trigger = decorator.remove_comment(trigger) + cursor_opengauss.execute(function) + cursor_opengauss.execute(trigger) + if is_record_sqls: + sqls_log.info(function) + sqls_log.info(trigger) + conn_opengauss.commit() + except Exception as e: + error_log.error(e) + finally: + if conn_opengauss is not None: + opengauss.putconn(conn_opengauss) + + time_end = time.time() + + time_c = time_end - time_start + print('Time Cost = %.2f seconds' % time_c) diff --git a/OpenGauss-Project-main/lib/opengauss_thread.py b/OpenGauss-Project-main/lib/opengauss_thread.py new file mode 100644 index 00000000..60d48c6c --- /dev/null +++ b/OpenGauss-Project-main/lib/opengauss_thread.py @@ -0,0 +1,67 @@ +import logging +import threading + +from lib import decorator +from lib.connection import OpenGaussConnection + + +class OpenGaussThread(threading.Thread): + + def __init__(self, opengauss: OpenGaussConnection, sqls, dbschema, error_log: logging.Logger): + super().__init__() + self.opengauss = opengauss + self.sqls = sqls + self.dbschema = dbschema + self.error_log = error_log + + def run(self) -> None: + conn = None + try: + conn = self.opengauss.getconn() + cursor_opengauss = conn.cursor() + cursor_opengauss.execute("set search_path to %s;" % self.dbschema) + for sql in self.sqls: + if sql.upper().startswith("CREATE"): + sql = decorator.create_without_fk(sql) + cursor_opengauss.execute(sql) + elif sql.upper().startswith("BEGIN TRANSACTION;") or sql.upper().startswith("COMMIT;"): + continue + else: + sql = decorator.insert(sql) + cursor_opengauss.execute(sql) + conn.commit() + except Exception as e: + self.error_log.error(e) + finally: + if conn is not None: + self.opengauss.putconn(conn) + + +class OpenGaussLogThread(OpenGaussThread): + + def __init__(self, opengauss: OpenGaussConnection, sqls, dbschema, error_log: logging.Logger, + sqls_log: logging.Logger): + super().__init__(opengauss, sqls, dbschema, error_log) + self.sqls_log = sqls_log + + def run(self) -> None: + conn = None + try: + conn = self.opengauss.getconn() + cursor_opengauss = conn.cursor() + cursor_opengauss.execute("set search_path to %s;" % self.dbschema) + for sql in self.sqls: + if sql.upper().startswith("CREATE"): + continue + elif sql.upper().startswith("BEGIN TRANSACTION;") or sql.upper().startswith("COMMIT;"): + continue + else: + sql = decorator.insert(sql) + cursor_opengauss.execute(sql) + self.sqls_log.info(sql.replace("\n", "")) + conn.commit() + except Exception as e: + self.error_log.error(e) + finally: + if conn is not None: + self.opengauss.putconn(conn) diff --git a/OpenGauss-Project-main/lib/single_thread.py b/OpenGauss-Project-main/lib/single_thread.py new file mode 100644 index 00000000..8c20682d --- /dev/null +++ b/OpenGauss-Project-main/lib/single_thread.py @@ -0,0 +1,112 @@ +import time +import psycopg2 + +from lib import decorator +from lib.connection import OpenGaussConnection, SqliteConnection + + +def single_thread(opengauss_properties, sqlite_properties, error_log, info_log, sqls_log, is_record_sqls): + opengauss = OpenGaussConnection(opengauss_properties, error_log, info_log) + sqlite = SqliteConnection(sqlite_properties, error_log, info_log) + + conn_sqlite = sqlite.getconn() + + dbusername = opengauss_properties['database.user'] + dbschema = opengauss_properties['database.schema'] + conn_opengauss = opengauss.getconn() + cursor_opengauss = conn_opengauss.cursor() + try: + cursor_opengauss.execute("create schema %s authorization %s;" % (dbschema, dbusername)) + cursor_opengauss.execute("grant usage on schema %s to %s;" % (dbschema, dbusername)) + conn_opengauss.commit() + cursor_opengauss.close() + opengauss.putconn(conn_opengauss) + except psycopg2.errors.DuplicateSchema as e: + info_log.info(e) + cursor_opengauss.close() + opengauss.putconn(conn_opengauss) + + print("The data migration operation is in progress...") + time_start = time.time() + + cursor_sqlite = conn_sqlite.cursor() + all_table = cursor_sqlite.execute("select * from sqlite_master where type = 'table';") + create_sqls = [] + for row in all_table: + s = row[4] + create_sqls.append(s + ";") + try: + conn_opengauss = opengauss.getconn() + cursor_opengauss = conn_opengauss.cursor() + cursor_opengauss.execute("set search_path to %s;" % dbschema) + for sql in create_sqls: + sql = decorator.remove_comment(sql) + sql = decorator.create_without_fk(sql) + cursor_opengauss.execute(sql) + if is_record_sqls: + sqls_log.info(sql.replace("\n", "")) + for sql in conn_sqlite.iterdump(): + sql = decorator.remove_comment(sql) + if sql.upper().startswith("CREATE"): + continue + elif sql.upper().startswith("BEGIN TRANSACTION;") or sql.upper().startswith("COMMIT;"): + continue + else: + sql = decorator.insert(sql) + cursor_opengauss.execute(sql) + if is_record_sqls: + sqls_log.info(sql.replace("\n", "")) + for create_sql in create_sqls: + create_sql = decorator.remove_comment(create_sql) + sqls = decorator.alter_fk(create_sql) + for alter_sql in sqls: + cursor_opengauss.execute(alter_sql) + if is_record_sqls: + sqls_log.info(alter_sql.replace("\n", "")) + table_name = decorator.get_table_name(create_sql) + row_num = cursor_sqlite.execute("SELECT COUNT(*) FROM " + table_name) + sqls = decorator.autoincrement(create_sql, table_name, row_num) + for alter_sql in sqls: + cursor_opengauss.execute(alter_sql) + if is_record_sqls: + sqls_log.info(alter_sql.replace("\n", "")) + indexes = cursor_sqlite.execute("select * from sqlite_master where type = 'index' and sql is not null;") + for row in indexes: + sql = row[4] + ";" + sql = decorator.remove_comment(sql) + cursor_opengauss.execute(sql) + if is_record_sqls: + sqls_log.info(sql) + views = cursor_sqlite.execute("select * from sqlite_master where type = 'view';") + for row in views: + sql = row[4] + sql = decorator.remove_comment(sql) + cursor_opengauss.execute(sql) + if is_record_sqls: + sqls_log.info(sql) + triggers = cursor_sqlite.execute("select * from sqlite_master where type = 'trigger';") + for row in triggers: + trigger_name = row[1] + trigger_sql = row[4] + trigger_sql = decorator.remove_comment(trigger_sql) + function = decorator.trigger_to_function(trigger_name, trigger_sql) + function = decorator.remove_comment(function) + trigger = decorator.new_trigger(trigger_name, trigger_sql) + trigger = decorator.remove_comment(trigger) + cursor_opengauss.execute(function) + cursor_opengauss.execute(trigger) + if is_record_sqls: + sqls_log.info(function) + sqls_log.info(trigger) + + conn_opengauss.commit() + except Exception as e: + error_log.error(e) + finally: + if conn_opengauss is not None: + opengauss.putconn(conn_opengauss) + + time_end = time.time() + + time_c = time_end - time_start + print('Time Cost = %.2f seconds' % time_c) diff --git a/OpenGauss-Project-main/main.py b/OpenGauss-Project-main/main.py new file mode 100644 index 00000000..e6e7f2ba --- /dev/null +++ b/OpenGauss-Project-main/main.py @@ -0,0 +1,99 @@ +import os +import argparse +import logging +from lib import multi_thread, single_thread +from prop.properties import Properties + + +def main(): + fmt = logging.Formatter(fmt='[%(asctime)s] [%(levelname)s] >>> %(message)s', datefmt='%Y-%m-%d %I:%M:%S') + if not os.path.exists("log"): + os.mkdir("log") + if not os.path.exists("sqlite"): + os.mkdir("sqlite") + file1 = logging.FileHandler(filename='log/error.log', mode='a', encoding='utf-8') + file1.setFormatter(fmt) + error_log = logging.Logger(name='ERROR_LOG', level=logging.ERROR) + error_log.addHandler(file1) + file2 = logging.FileHandler(filename='log/info.log', mode='a', encoding='utf-8') + file2.setFormatter(fmt) + info_log = logging.Logger(name='INFO_LOG', level=logging.INFO) + info_log.addHandler(file2) + + parser = argparse.ArgumentParser(description='Data Migration Script') + parser.add_argument("--opengauss", "-o", default="") + parser.add_argument("--sqlite", "-s", default="") + parser.add_argument("--multithreading", "-m", action="store_true") + + args = parser.parse_args() + + opengauss_properties = {} + is_file_update = False + if args.opengauss != '': + opengauss_file = 'prop/' + str(args.opengauss) + p = Properties(opengauss_file) + opengauss_properties = p.get_properties() + else: + opengauss_file = 'prop/opengauss.properties' + if not opengauss_properties.__contains__('database.name') or opengauss_properties['database.name'] == '': + opengauss_properties['database.name'] = input("Input the database name of OpenGauss:") + is_file_update = True + if not opengauss_properties.__contains__('database.schema') or opengauss_properties['database.schema'] == '': + opengauss_properties['database.schema'] = input("Input the schema name of OpenGauss:") + is_file_update = True + if not opengauss_properties.__contains__('database.host') or opengauss_properties['database.host'] == '': + opengauss_properties['database.host'] = input("Input the host of OpenGauss:") + is_file_update = True + if not opengauss_properties.__contains__('database.port') or opengauss_properties['database.port'] == '': + opengauss_properties['database.port'] = input("Input the port of OpenGauss:") + is_file_update = True + if not opengauss_properties.__contains__('database.user') or opengauss_properties['database.user'] == '': + opengauss_properties['database.user'] = input("Input the username of OpenGauss:") + is_file_update = True + if not opengauss_properties.__contains__('database.password') or opengauss_properties['database.password'] == '': + opengauss_properties['database.password'] = input("Input the user password of OpenGauss:") + is_file_update = True + if is_file_update: + save_message = "Save your input in the %s? [y/n]" % opengauss_file + flag = input(save_message) + if flag.upper() == 'Y' or flag.upper() == 'YES': + Properties.write_properties(opengauss_file, opengauss_properties) + + sqlite_properties = {} + is_file_update = False + if args.sqlite != '': + sqlite_file = str(args.sqlite) + sqlite_file = "prop/" + sqlite_file + p = Properties(sqlite_file) + sqlite_properties = p.get_properties() + else: + sqlite_file = 'prop/sqlite.properties' + if not sqlite_properties.__contains__('database.filename'): + sqlite_properties['database.filename'] = input("Input the filename of Sqlite3:") + is_file_update = True + if is_file_update: + save_message = "Save your input in the %s? [y/n]" % sqlite_file + flag = input(save_message) + if flag.upper() == 'Y' or flag.upper() == 'YES': + Properties.write_properties(sqlite_file, sqlite_properties) + + sqls_log = None + flag = input("Save the SQL statements in Data Migration? [y/n]") + is_record_sqls = False + if flag.upper() == 'Y' or flag.upper() == 'YES': + is_record_sqls = True + file3 = logging.FileHandler(filename='log/sqls.log', mode='a', encoding='utf-8') + file3.setFormatter(fmt) + sqls_log = logging.Logger(name='SQLS_LOG', level=logging.DEBUG) + sqls_log.addHandler(file3) + + if args.multithreading: + multi_thread.multi_thread(opengauss_properties, sqlite_properties, error_log, info_log, sqls_log, + is_record_sqls) + else: + single_thread.single_thread(opengauss_properties, sqlite_properties, error_log, info_log, sqls_log, + is_record_sqls) + + +if __name__ == '__main__': + main() diff --git a/OpenGauss-Project-main/prop/opengauss.properties b/OpenGauss-Project-main/prop/opengauss.properties new file mode 100644 index 00000000..71cd8dce --- /dev/null +++ b/OpenGauss-Project-main/prop/opengauss.properties @@ -0,0 +1,6 @@ +database.name= +database.schema= +database.host= +database.port= +database.user= +database.password= diff --git a/OpenGauss-Project-main/prop/properties.py b/OpenGauss-Project-main/prop/properties.py new file mode 100644 index 00000000..b3df7ddf --- /dev/null +++ b/OpenGauss-Project-main/prop/properties.py @@ -0,0 +1,39 @@ +import logging + + +class Properties: + def __init__(self, file_name: str): + self.file_name = file_name + self.properties = {} + try: + pro_file = open(self.file_name, 'r', encoding='utf-8') + for line in pro_file: + if line.find('=') > 0: + strs = line.replace('\n', '').split('=') + self.properties[strs[0]] = strs[1] + except Exception as e: + logging.error(e) + raise e + else: + pro_file.close() + + def get_properties(self): + return self.properties + + @staticmethod + def write_properties(file_name: str, properties: dict): + try: + properties_file = open(file_name, 'w', encoding='utf-8') + for k in properties: + s = k + "=" + properties[k] + "\n" + if k == 'database.password': + flag = input("Save the password? [y/n]") + if flag.upper() == 'Y' or flag.upper() == 'YES': + properties_file.write(s) + else: + properties_file.write(s) + except Exception as e: + logging.error(e) + raise e + else: + properties_file.close() diff --git a/OpenGauss-Project-main/prop/sqlite.properties b/OpenGauss-Project-main/prop/sqlite.properties new file mode 100644 index 00000000..a4c502e7 --- /dev/null +++ b/OpenGauss-Project-main/prop/sqlite.properties @@ -0,0 +1 @@ +database.filename= diff --git a/OpenGauss-Project-main/sqlite/shenzhen_metro.sqlite b/OpenGauss-Project-main/sqlite/shenzhen_metro.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..9cb59817059ee2c32da6069cd366dda79332d146 GIT binary patch literal 462848 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
    !LPICz;aeN(#NGCGr2Nmgia?hW|gI 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