Ispirer MnMTK ist das Tool für die Datenbankmigration. Dieses Tool kann die Migration von MySQL nach SAP HANA automatisch durchführen.
Während der Erarbeitung unser Tools berücksichtigen wir die Anforderungen der Kunden um die besseren Konvertierungsergebnisse zu erreichen.
Unser technishes Team hat viele Erfahrung und immer findet die innovativen Lösungen zu den komplizierten Problemen.
Warum Ispirer MnMTK
Unsere Vorteile:
- Hochqualifiziertes Team: unsere Experten haben viele Erfahrung in den Migrationsprojekten und können Migrationen auf jeden Schwierigkeitsgrad durchführen.
- Kundenorientierung: wir personalisieren das Tool gemäß der Anforderungen von den Kunden. Die Erweiterung des Tools nimmt 1-2 Tage in Anspruch;
- Online-Meeting: es gibt die Möglichkeit Online-Meetings zu vereinbaren, während dessen unser Team den Konvertierungsprozess Ihnen demonstrieren kann;
- Projektbezogene Preise: die Preise hängen von der Größe des Projektes ab; wir bieten eine Reihe von Optionen an, damit Sie am besten passende Option wählen können;
- Optimierte Konvertierung: nach der Konvertierung bekommen Sie den komplett funktionellen Code.
Konvertierungsbesonderheiten
Das Tool für Migration Ispirer MnMTK kann die folgenden Objekte und Eigenschaften von MySQL nach SAP HANA migrieren:
- Gespeicherte Prozeduren, Funktionen und Trigger
- Schema (DDL)
- Indexe und Sichten
- Übertragung von Daten
Konvertierung von DDL:
- Konvertierung von Definitionen der Spalten: Datentypen, Default-Werten, NOT NULL-Beschränkungen
- Konvertierung von Primär- und Fremd-Schlüßeln
MySQL:
CREATE TABLE product_description (
`ID` INT(11) NOT NULL,
`CATEID` INT(11) DEFAULT NULL,
`LINEID` INT(11) DEFAULT NULL,
`NAME` VARCHAR(50) DEFAULT NULL,
`DESCRIPTION` VARCHAR(50) DEFAULT NULL,
`CATENAME` VARCHAR(50) DEFAULT NULL,
`CATEDESCRIPTION` VARCHAR(50) DEFAULT NULL,
`LINENAME` VARCHAR(50) DEFAULT NULL,
`LINEDESCRIPTION` VARCHAR(50) DEFAULT NULL,
`PRODDATE` datetime DEFAULT NULL,
PRIMARY KEY (`ID`)
);
SAP HANA:
CREATE TABLE product_description
(
ID INTEGER NOT NULL,
CATEID INTEGER DEFAULT NULL,
LINEID INTEGER DEFAULT NULL,
NAME VARCHAR(50) DEFAULT NULL,
DESCRIPTION VARCHAR(50) DEFAULT NULL,
CATENAME VARCHAR(50) DEFAULT NULL,
CATEDESCRIPTION VARCHAR(50) DEFAULT NULL,
LINENAME VARCHAR(50) DEFAULT NULL,
LINEDESCRIPTION VARCHAR(50) DEFAULT NULL,
PRODDATE TIMESTAMP DEFAULT NULL,
PRIMARY KEY(ID)
);
Konvertierung der gespeicherten Prozeduren:
- Konvertierung von Syntax der Prozeduren und Anweisungen
- Konvertierung von Variablen und Parameter
- Konvertierung von Kommentaren
MySQL:
CREATE PROCEDURE CursorProc (INOUT prod_list VARCHAR(4000))
BEGIN
DECLARE v_finished INTEGER DEFAULT 0;
DECLARE v_prod VARCHAR(100) DEFAULT "";
DECLARE prod_cursor CURSOR FOR
SELECT name FROM product_description;
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET v_finished = 1;
OPEN prod_cursor;
get_prod: LOOP
FETCH prod_cursor INTO v_prod;
IF v_finished = 1 THEN
LEAVE get_prod;
END IF;
SET prod_list = CONCAT(v_prod,";",prod_list);
END LOOP get_prod;
CLOSE prod_cursor;
END;
SAP HANA:
CREATE PROCEDURE CursorProc(INOUT prod_list VARCHAR(4000))
LANGUAGE SQLSCRIPT
AS
v_finished INTEGER DEFAULT 0;
v_prod VARCHAR(100) DEFAULT '';
CURSOR prod_cursor FOR
SELECT name FROM product_description;
BEGIN
DECLARE EXIT HANDLER
FOR NOT FOUND v_finished := 1;
OPEN prod_cursor;
LOOP
FETCH prod_cursor INTO v_prod;
IF :v_finished = 1 THEN
BREAK;
END IF;
prod_list := :v_prod || ';';
END LOOP;
CLOSE prod_cursor;
END;
MySQL:
CREATE PROCEDURE `DropCreateTabProc`()
BEGIN
DROP TABLE IF EXISTS HANATEST.ProductLevel;
CREATE TABLE ProductLevel(
ID INT ,
PRODUCT INT ,
PRLEVEL INT ,
MINLEVEL INT ,
MAXLEVEL INT
);
END;
SAP HANA:
CREATE PROCEDURE DropCreateTabProc LANGUAGE SQLSCRIPT
AS
v_if_exists INTEGER;
BEGIN
v_if_exists := 0;
SELECT COUNT(*) INTO v_if_exists FROM "PUBLIC"."M_TABLES"
WHERE schema_name = 'HANATEST' AND TABLE_NAME = 'PRODUCTLEVEL';
IF :v_if_exists > 0 THEN
DROP TABLE ProductLevel;
END IF;
CREATE TABLE ProductLevel
(
ID INTEGER,
PRODUCT INTEGER,
PRLEVEL INTEGER,
MINLEVEL INTEGER,
MAXLEVEL INTEGER
);
END;
Konvertierung der eingebetteten Funktionen:
- Konvertierung von Syntax und Anweisungen
- Konvertierung von Variablen und Parameter
- Konvertierung von Kommentaren
MySQL:
CREATE FUNCTION CurVarFunc(var INT)
RETURNS INT(11)
BEGIN
DECLARE var1 INT;
DECLARE v_i CURSOR FOR SELECT employeeNumber FROM employees;
DECLARE v_i1 CURSOR FOR SELECT employeeNumber FROM employees_audit;
IF var = 1 THEN
OPEN v_i;
fetch v_i INTO var1;
close v_i;
END IF;
IF var <> 1 THEN
OPEN v_i1;
fetch v_i1 INTO var1;
close v_i1;
END IF;
RETURN var1;
END;
SAP HANA:
CREATE PROCEDURE CurVarFunc(OUT RETURNVAL INTEGER,var INTEGER)
LANGUAGE SQLSCRIPT
AS
var1 INTEGER;
CURSOR v_i FOR SELECT employeeNumber FROM employees;
CURSOR v_i1 FOR SELECT employeeNumber FROM employees_audit;
BEGIN
IF :var = 1 THEN
OPEN v_i;
fetch v_i INTO var1;
close v_i;
END IF;
IF :var != 1 THEN
OPEN v_i1;
fetch v_i1 INTO var1;
close v_i1;
END IF;
RETURNVAL := :var1;
END;
Konvertierung von Trigger:
MySQL:
CREATE TRIGGER before_employee_update
BEFORE UPDATE ON employees FOR EACH ROW
BEGIN
INSERT INTO employees_audit(id, actionc, employeeNumber, lastname,
changedon)
VALUES (OLD.id, 'update', OLD.employeeNumber, OLD.lastname, NOW());
END;
SAP HANA:
CREATE TRIGGER before_employee_update
BEFORE UPDATE
ON employees
REFERENCING OLD ROW OLD
FOR EACH ROW
BEGIN
INSERT INTO employees_audit
(id, actionc, employeeNumber, lastname, changedon)
VALUES(:OLD.id, 'update', :OLD.employeeNumber, :OLD.lastname,
CURRENT_TIMESTAMP);
END;
Für weitere Informationen, kontaktieren Sie bitte uns.
|