如何将Pentaho存储库从HsqlDB更换为MSSQL?
将Pentaho存储库从HsqlDB迁移到MSSQL的可行步骤
1. 准备MSSQL环境
- 在MSSQL服务器上创建新数据库(例如
pentaho_repository),字符集建议选择UTF-8兼容类型(如SQL_Latin1_General_CP1_CI_AS) - 创建具备该数据库读写权限的SQL账号(例如
pentaho_user),记录账号密码
2. 部署JDBC驱动
- 下载适配你MSSQL版本的JDBC驱动包(如
sqljdbc42.jar),将其复制到两个目录:- Pentaho Server安装目录下的
tomcat/lib - Spoon所在
data-integration/lib目录
- Pentaho Server安装目录下的
3. 修改存储库核心配置
- 打开Pentaho Server安装目录下的
pentaho-solutions/system/jackrabbit/repository.xml - 替换默认的HsqlDB配置块为MSSQL配置,示例如下:
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem"> <param name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <param name="url" value="jdbc:sqlserver://你的MSSQL地址:1433;databaseName=pentaho_repository;"/> <param name="user" value="pentaho_user"/> <param name="password" value="你的数据库密码"/> <param name="schema" value="dbo"/> <param name="schemaObjectPrefix" value="FS_"/> </FileSystem> <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MSSQLPersistenceManager"> <param name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <param name="url" value="jdbc:sqlserver://你的MSSQL地址:1433;databaseName=pentaho_repository;"/> <param name="user" value="pentaho_user"/> <param name="password" value="你的数据库密码"/> <param name="schema" value="dbo"/> <param name="schemaObjectPrefix" value="PM_"/> </PersistenceManager>
- 注意:Pentaho 8.0版本推荐使用
MSSQLPersistenceManager类,适配性更好
4. 初始化存储库
- 启动Pentaho Server,首次启动会自动在MSSQL数据库中生成所需表结构
- 若启动失败,查看
tomcat/logs下的日志文件,排查驱动缺失、连接字符串错误或账号权限不足等问题
5. 配置Spoon连接新存储库
- 打开Spoon,依次点击「文件」→「连接存储库」→「添加」
- 选择「Pentaho存储库」,填写存储库名称后,配置MSSQL连接信息:
- 驱动选择
Microsoft SQL Server - 连接URL:
jdbc:sqlserver://你的MSSQL地址:1433;databaseName=pentaho_repository - 用户名和密码填入之前创建的账号信息
- 驱动选择
- 测试连接成功后保存配置,即可使用新存储库
6. 迁移旧数据(可选)
- 若需要迁移原HsqlDB存储库的内容,先在Spoon中导出旧存储库的所有对象(作业、转换等)为XML文件
- 连接新存储库后,导入这些XML文件完成数据迁移
内容的提问来源于stack exchange,提问作者hyungs
相关产品推荐
相关产品推荐

