EAS报表读写分离

当系统数据越来越庞大时,打开报表的速度会越来越慢,所以才会出现读写分离的需求,可以这样描述:正式库只做业务数据的读写,为了避免打开报表影响系统数据库性能,新建一个新的账套,每隔一段时间将正式库数据同步到报表的账套,所有报表取数都从报表账套取数。

关于数据同步,以及同步规则,由DBA去做,我们主要关注程序实现。

程序方面,主要是EAS执行的sql都是当前数据中心的,无法读取别的datacenter。

无意中看到扩展报表也有报表的读写分离功能,思路是只要能调出扩展报表的外部数据源连接,就能实现bos报表的读写分离。

1、进入扩展报表的开发界面,点击 文件-外部数据中心管理

2、新建数据库连接,填入IP、端口、用户、密码等参数

3、报表里面的sql执行连接不使用传统的DbUtil来执行,使用如下代码

 

		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			List list = DataCenterConnUtil.getDataCenterList(ctx);
			String sql = "select * from ds_test";
			conn = DataCenterConnUtil.openConnection((DataCenterInfo) list.get(0));
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			while (rs.next()) {
				String s = rs.getString(1);
				System.out.println(s);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			SQLUtils.cleanup(rs, stmt, conn);
		}

 

其中 DataCenterConnUtil.getDataCenterList(ctx)是从扩展报表的外部数据中心中转化出一个DataCenter来,可以有多个外部数据中心,看自己选择。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值