从MySQL到SAP HANA迁移
Ispirer MnMTK是一个强大的工具为自动地迁移存储过程,函数,数据库图表(DDL),和其它数据库对象。我们帮助我们的客户了解自动的数据库迁移解决方案的价值,使企业价值增长。
从MySQL到SAP HANA迁移概观
该工具迁移以下数据库的对象和属性从MySQL到SAP HANA:
- 存储过程,函数和触发器
- 图表(DDL)
- 索引和视图
- 数据
更多可能性:
- 除了服务端域业务逻辑, Ispirer MnMTK还转换SQL查询在前端应用程序和脚本以符合MySQL句式.
- 此外,我们的工具包还能够SAP HANA的过程代码转换为Java和.NET.
- 通过使用命令行支持您可以明显地节省时间和自动化您的迁移过程: 设定转换调度或启动转换到您的开发过程中。
- 使用我们的工具包比较表和行的数量和执行迁移验证为所有或选定列(基于主键或指定的顺序条款)。
为什么选择Ispirer MnMTK为从MySQL到SAP HANA迁移?
我们的先进技术和专业支持保证低成本以及整个从MySQL到SAP HANA迁移的近100%自动化。
- 自动化三个阶段 - 一致和集成的过程
- 第一阶段:数据库图表/DDL,业务逻辑(T/SQL 存储过程,触发器,等)
- 第二阶段:数据的迁移和检验
- 第三阶段:前端应用代码与SQL查询/脚本
- 快速定制 - 在1-2个工作日内
- 售前支持 - 您在做决定之前,我们演示整个迁移过程。合作过程
- 低成本 - 灵活的定价策略
- 优化转换- 您得到智能和可维护的代码,而不使用任何Ispirer的中间件。
为什么Ispirer会服务为MySQL到SAP HANA迁移?
看起来迁移是一个巨大的和有问题的过程?那就使用我们的服务优势!只是让我们管理您的迁移项目,我们将帮助您评估,设计,实施,并最终以测试迁移。
Ispirer服务主要优点:
- 节省精力的解决方案;
- 高素质的技术专家;
- 合理的成本。
多亏我们在数据库迁移的丰富经验,我们可以解决最复杂的任务!
如果您需要从MySQL迁移到SAP HANA,我们很高兴为您服务!
Ispirer转换解决方案
从MySQL到SAP HANA 请求
Ispirer转换解决方案
从MySQL到SAP HANA 服务
工具
如果您也需要从MySQL迁移到SAP HANA,请您随时与我们联系。
DDL转换
- 转换列的定义 - 数据类型,缺省值,NOT NULL约束
- 转换主键和外键
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)
);
存储过程转换:
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;
存储功能转换:
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;
触发器转换:
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;
|