当前位置: 首页 > news >正文

Jailer:一款免费的数据库子集化和数据浏览工具

Jailer 是一款免费的数据库子集化和数据浏览工具,主要解决生产环境数据向开发/测试环境迁移时的完整性、效率与安全性问题。

在这里插入图片描述

数据库

Jailer 使用 JDBC 连接数据库,因此可以支持非常广泛的数据库产品。同时,它还针对以下主流数据库进行了特定扩展:PostgreSQL、Oracle、MySQL、MariaDB、Microsoft SQL Server、Db2、SQLite、Sybase、Amazon Redshift、Firebird、Informix、H2、HyperSQL、Derby、Interbase、Exasol、SAP HANA、Vertica、Snowflake、ClickHouse。

在这里插入图片描述

数据浏览

Jailer 支持通过外键或用户自定义关系在表之间双向导航,直观展示数据关联路径,辅助用户理解复杂的数据库结构。

以上示例中,我们首先点击“Open Table”,选择“EMPLOYEE”数据表,显示员工表中的数据。然后通过员工表的“Related Rows | Children”选择“PROJECT_PARTICIPATION”,显示员工和项目的关系。接着继续通过这个关系表显示员工在项目中的角色“ROLE”以及项目的具体信息“PROJECT”。

子集化

数据库子集化(Subsetting)可以从生产数据库中提取引用完整的数据子集(例如仅抽取与特定业务线相关的数据),并且保持表间关联性,避免手动提取导致的外键断裂问题。

在这里插入图片描述

Jailer 支持导出多种格式:SQL(拓扑排序)、XML(分层结构)、JSON、YAML、DbUnit 数据集、Liquibase 等。导出完成后会显示每个表导出的行数和占比。

在这里插入图片描述

导出数据库子集时,还可以指定生成一个对应的数据删除脚本,实现归档并删除功能,在不破坏引用完整性的前提下优化生产数据库性能。

在这里插入图片描述

SQL控制台

SQL 控制台集成了代码补全、语法高亮、元数据可视化等功能,支持直接编辑并执行 SQL 语句,提升查询效率。

在这里插入图片描述

API

Jailer 提供了 API 接口,可以通过 Java 程序直接实现数据的导出和导入。例如,以下程序用于从 demo-scott 数据库中提取部分数据导入 demo-scott-subset 数据库,两者都是 H2 数据库:

public class APIExample {// JDBC connection pool sizeprivate static final int POOL_SIZE = 10;// Folder containing models and databasesprivate static final File baseFolder = new File(".");// The subsetterprivate static Subsetter subsetter = new Subsetter(new BasicDataSource("org.h2.Driver", "jdbc:h2:" + new File(baseFolder, "demo-db/demo-scott").getAbsolutePath(), "sa", "",POOL_SIZE,new File(baseFolder, "lib/h2-2.2.224.jar")),null,new File(baseFolder, "datamodel/Demo-Scott"),new File(baseFolder, "extractionmodel/Demo-Scott.jm"),ScriptFormat.SQL);// The importerprivate static Importer importer =new Importer(new BasicDataSource("org.h2.Driver", "jdbc:h2:" + new File(baseFolder, "demo-db/demo-scott-subset").getAbsolutePath(), "sa", "",POOL_SIZE,new File(baseFolder, "lib/h2-2.2.224.jar")));/*** Exports data related with employee "SCOTT"* and imports it into another database.*/public static void main(String[] args) throws SQLException, IOException {File exportScriptFile = Configuration.getInstance().createTempFile();subsetter.setUpsertOnly(true); // overwrite previous datasubsetter.execute("NAME='SCOTT'", exportScriptFile);importer.execute(exportScriptFile);exportScriptFile.delete();}
}

下载安装

Jailer 是一个基于 Java 的程序,支持 Windows、Linux、macOS 跨平台,下载程序托管在 SourceForge:

https://sourceforge.net/projects/jailer/files/

选择最新版本和对应操作系统的安装文件,安装完成后运行 Jailer.exe 或者 jailerGUI.sh 启动程序:

在这里插入图片描述

软件自带了两个示例,可以帮助我们快速了解相关功能。

http://www.dtcms.com/a/268139.html

相关文章:

  • ragflow本地部署教程linux Ubuntu系统
  • Android studio在点击运行按钮时执行过程中输出的compileDebugKotlin 这个任务是由gradle执行的吗
  • 《前端路由重构:解锁多语言交互的底层逻辑》
  • 【Linux笔记】Linux的常见命令(部署Java程序)
  • 基于大数据的高效并行推荐系统
  • VSCode+arm-none-eabi-gcc交叉编译+CMake构建+OpenOCD(基于Raspberry Pico RP2040)
  • C 语言指针与作用域详解
  • 百度文心大模型 4.5 开源深度测评:技术架构、部署实战与生态协同全解析
  • Gitee DevOps:全流程自动化的效率革命
  • DeepSORT算法流程详解
  • 基于Flask+Jinja2的快捷教务系统(后端链接到新版正方教务系统)
  • k8s-服务发布基础
  • 数据结构实验习题
  • 定时器和守护线程
  • 【Guava】1.0.设计虚拟机的方向
  • tensorflow武林志第二卷第九章:玄功九转
  • 广东省省考备考(第四十天7.6)——资料分析(第八节课)
  • Python Bcrypt详解:从原理到实战的安全密码存储方案
  • 【C++】C++四种类型转换操作符详解
  • 【Note】《Kafka: The Definitive Guide》第一章:Meet Kafka
  • LeetCode--41.缺失的第一个正数
  • get: ()=>state 和get: ()=>{state}
  • Java 集合
  • ClickHouse 全生命周期性能优化
  • Java 大视界 -- Java 大数据机器学习模型在金融衍生品创新设计与风险评估中的应用(335)
  • 人工智能在软件开发领域的应用优势劣分析及应对策略
  • js event.preventDefault()的作用
  • Web前端开发-HTML、CSS
  • 【从0-1的CSS】第3篇:盒子模型与弹性布局
  • Application的onLowMemory从Android API 34开始系统不再触发,从API 35开始废弃