データベースXからデータベースYに移行 - 8.0

Talendインストールガイド

Version
8.0
Language
日本語
Operating system
Windows
Subscription type
サブスクリプション
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Activity Monitoring Console
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend Data Preparation
Talend Data Stewardship
Talend ESB
Talend Identity and Access Management
Talend Installer
Talend JobServer
Talend Log Server
Talend MDM Server
Talend MDM Web UI
Talend Runtime
Talend SAP RFC Server
Talend Studio
Content
インストールとアップグレード
Last publication date
2022-10-30

あるデータベースから別のデータベース(H2からMySQLなど)に移行を行う場合、migrateDatabaseというMetaServletコマンドを使用する必要があります。

移行プロセス中にソースデータベースがアップデートされるため、移行前にバックアップすることが必要です。

MetaServlet アプリケーションは、<TomcatPath>/webapps/<TalendAdministrationCenter>/WEB-INF/classesフォルダーにあります。

このコマンド(と関連パラメーター)のヘルプを表示するには、次をMetaServletアプリケーションに入力する必要があります。

MetaServletCaller.bat --tac-url=<yourApplicationURL> -h migrateDatabase

MetaServletアプリケーションの詳細は、Non-GUI operation in metaServletをご覧ください。

警告: PostgreSQLやMSSQL/SQLServerへ移行する場合は、データベースとスキーマ名がソースデータベース名と一致する必要があります。

下記に、データベースH2とMySQLデータベース間の移行例を示します。

このコマンドを使用できるようにするには、先頭行に記述する必要があります。

MetaServletCaller.bat --tac-url http://localhost:8080/org.talend.administrator --json-params="{'actionName':'migrateDatabase','dbConfigPassword':"admin','mode':'synchronous','sourcePasswd':'tisadmin','sourceUrl':'jdbc:h2:C:\Talend\<version\/tac\apache-tomcat\webapps\org.talend.administrator\WEB-INF\database\talend_administrator','sourceUser':'tisadmin','targetPasswd':'root','targetUrl':'jdbc:mysql://localhost:3306/base','targetUser':'root'}"
警告: sourceURLおよびtargetURLパラメーター値の単一引用符はWindowsでは必須です。

ユースケース: MetaServletを使ってデータベースXからデータベースYに移行

ここでの例では次の規則が適用されます。

Talend Administration Center URL

http://tac.test.fr:8081/org.talend.administrator/
DB config password: admin 

MySQL

user: mysql8
password: mysqlpass
database: mysql
database server: mysql8.test.fr
jdbc:mysql://mysql8.test.fr:3306/mysql_source?useSSL=false&allowPublicKeyRetrieval=true

MSSQL2017

user: SA
password: MSSQLpass2017
database: MSSQL
database server: mssql2017.test.fr
jdbc:sqlserver://mssql2017.test.fr:1433;databaseName=MSSQL_DEST

Tomcat endorsedフォルダー

使用しているJDBCドライバーはすべて、tac\apache-tomcat\endorsedフォルダー(Tomcatによっては <TomcatPath>\webapps\org.talend.administrator\WEB-INF\libフォルダー)に保存できます。

ドライバーを追加したらTomcatを再起動してください。

ヒント: JDBC文字列の場合、一重引用符( ' )で囲まれている特殊文字はエスケープ処理する必要があります。この動作はセミコロン( ; )やその他の特殊文字を使う時も同様です。

たとえばLinuxで:

'jdbc:mysql://mysql8.test.fr:3306/mysql?useSSL=false&allowPublicKeyRetrieval=true'

とあれば、以下のように書き直す必要があります。

'jdbc:mysql://mysql8.test.fr:3306/mysql?useSSL=false\&allowPublicKeyRetrieval=true'

MySQLからMySQLへの移行

以下のコマンドを使用します。

mysql> drop database mysql_dest;
Query OK, 12 rows affected (0.10 sec)
                
mysql> create database mysql_dest;
Query OK, 1 row affected (0.00 sec)
                
mysql> grant ALL PRIVILEGES on *.* to 'mysql8'@'%';
Query OK, 0 rows affected (0.01 sec)
# Talend\tac\apache-tomcat\webapps\org.talend.administrator\WEB-INF\classes\MetaServletCaller.bat 
--tac-url http://tac.test.fr:8081/org.talend.administrator/ -v 
--json-params="{'actionName':'migrateDatabase','skipBackup':'true','dbConfigPassword':'admin','mode':'synchronous','sourcePasswd':'mysqlpass','sourceUrl':'jdbc:mysql://mysql8.test.fr:3306/mysql?useSSL=false\&allowPublicKeyRetrieval=true','sourceUser':'mysql8','targetPasswd':'mysqlpass','targetUrl':'jdbc:mysql://mysql8.test.fr:3306/mysql_dest?useSSL=false\&allowPublicKeyRetrieval=true','targetUser':'mysql8'}"
                
                
-> URL: http://tac.test.fr:8081/org.talend.administrator/
-> Json parameters:              
"{
'actionName': 'migrateDatabase',
'dbConfigPassword': 'admin',
'mode': 'synchronous',
'skipBackup': 'true',
'sourcePasswd': 'mysqlpass',
'sourceUrl': 'jdbc:mysql://mysql8.test.fr:3306/mysql?useSSL=false&allowPublicKeyRetrieval=true',
'sourceUser': 'mysql8',
'targetPasswd': 'mysqlpass',
'targetUrl': 'jdbc:mysql://mysql8.test.fr:3306/mysql_dest?useSSL=false&allowPublicKeyRetrieval=true',
'targetUser': 'mysql8'
}"

-> Complete request: http://tac.test.fr:8081/org.talend.administrator//metaServlet?eyJhY3Rpb25OYW1lIjoibWlncmF0ZURhdGF...
{'executionTime':{'millis':20052,'seconds':20},'returnCode':0}
            

MySQLからMSSQLへの移行

MSSQL/SQLServerに移行する場合、ソースデータベースとデスティネーションデータベースの名前をdboにする必要があります。dboソースデータベースはアクティブなTalend Administration Centerデータベースであることが必要です。

以下のコマンドを使ってデスティネーションデータベースとスキーマを作成します。

\mssql-tools\bin\sqlcmd -S localhost -U SA -P MSSQLpass2017
1> CREATE DATABASE dbo;
2> go 
# Talend\tac\apache-tomcat\webapps\org.talend.administrator\WEB-INF\classes\MetaServletCaller.bat 
--tac-url http://tac.test.fr:8081/org.talend.administrator/ -v  
--json-params="{'actionName':'migrateDatabase','skipBackup':'true','dbConfigPassword':'admin','mode':'synchronous','sourcePasswd':'mysqlpass','sourceUrl':'jdbc:mysql://mysql8.test.fr:3306/dbo?useSSL=false\&allowPublicKeyRetrieval=true','sourceUser':'mysql8','targetPasswd':'MSSQLpass2017','targetUrl':'jdbc:jtds:sqlserver://mssql2017.test.fr:1433/dbo','targetUser':'SA'}"
                

-> URL: http://tac.test.fr:8081/org.talend.administrator/
-> Json parameters:

"{
'actionName': 'migrateDatabase',
'dbConfigPassword': 'admin',
'mode': 'synchronous',
'skipBackup': 'true',
'sourcePasswd': 'mysqlpass',
'sourceUrl': 'jdbc:mysql://mysql8.test.fr:3306/dbo?useSSL=false&allowPublicKeyRetrieval=true',
'sourceUser': 'mysql8',
'targetPasswd': 'MSSQLpass2017',
'targetUrl': 'jdbc:jtds:sqlserver://mssql2017.test.fr:1433/dbo',
'targetUser': 'SA'
}"

-> Complete request: http://tac.test.fr:8081/org.talend.administrator//metaServlet?eyJhY3Rpb25OYW1lIjoibWlncmF0ZURhdGF...
{'executionTime':{'millis':20062,'seconds':20},'returnCode':0}

MSSQLからMySQLへの移行

以下のコマンドを使用します。

# Talend\tac\apache-tomcat\webapps\org.talend.administrator\WEB-INF\classes\MetaServletCaller.bat 
--tac-url http://tac.test.fr:8081/org.talend.administrator/ -v 

--json-params="{'actionName':'migrateDatabase','skipBackup':'true','dbConfigPassword':'admin','mode':'synchronous','sourcePasswd':'MSSQLpass2017','sourceUrl':'jdbc:jtds:sqlserver://mssql2017.test.fr:1433/mssql_test','sourceUser':'SA','targetPasswd':'mysqlpass','targetUrl':'jdbc:mysql://mysql8.test.fr:3306/mysql_dest?useSSL=false\&allowPublicKeyRetrieval=true','targetUser':'mysql8'}"



-> URL: http://tac.test.fr:8081/org.talend.administrator/
-> Json parameters:
"{
'actionName': 'migrateDatabase',
'dbConfigPassword': 'admin',
'mode': 'synchronous',
'skipBackup': 'true',
'sourcePasswd': 'MSSQLpass2017',
'sourceUrl': 'jdbc:jtds:sqlserver://mssql2017.test.fr:1433/mssql_test',
'sourceUser': 'SA',
'targetPasswd': 'mysqlpass',
'targetUrl': 'jdbc:mysql://mysql8.test.fr:3306/mysql_dest?useSSL=false&allowPublicKeyRetrieval=true',
'targetUser': 'mysql8'
}"

-> Complete request: http://tac.test.fr:8081/org.talend.administrator//metaServlet?eyJhY3Rpb25OYW1lIjoibWlncmF0ZURhdGF...
{'executionTime':{'millis':28108,'seconds':28},'returnCode':0}