采用任何一种添加数据源的方式都不能保证数据源的一致和完整,所以需要两种结合来管理数据源

1、通过saiku的管理台添加数据源

  ① 第一种方式:schema和ds都在管理台添加

        1)上传schema文件
选择文件系统中任意位置的schema文件
任意填写schema名字 - sw.mondrian
点击上传按钮
上传成功 2)配置数据源
type=OLAP
name=SteelWheels
driver=mondrian.olap4j.MondrianOlap4jDriver
location=jdbc:mondrian:Jdbc=jdbc:mysql://localhost:3306/SteelWheels;Catalog=mondrain:///datasources/sw.mondrian.xml;JdbcDrivers=com.mysql.jdbc.Driver;
username=root
password=root 注意:Catalog=mondrain:///datasources/sw.mondrian.xml;
    ② 第二种方式:在管理台只添加ds

        1)将schema文件SteelWheels.mondrian.xml添加到classes/saiku-schemas文件夹下

        2)配置数据源

        type=OLAP
name=SteelWheels
driver=mondrian.olap4j.MondrianOlap4jDriver
location=jdbc:mondrian:Jdbc=jdbc:mysql://localhost:3306/SteelWheels;Catalog=res:saiku-schemas/SteelWheels.mondrian.xml;JdbcDrivers=com.mysql.jdbc.Driver;
username=root
password=root 注意:Catalog=res:saiku-schemas/SteelWheels.mondrian.xml;
1)说明:

通过这种方式添加的数据源在项目重新启动之后仍然生效

2)原因:

系统第一次部署启动后会在classes/saiku-repository/data文件夹下面生成JCR文件夹结构和相关文件
此时系统里没有任何的OLAP数据源
当我们在管理台创建了OLAP数据源以后,JCR会新增相应的OLAP数据源节点
所以只要classes/saiku-repository/data文件夹下面的文件存在
重启并不会删除这些JCR文件
因此数据源配置就不会失效 3)但是: 一旦我们删除了原来的整个项目,重新部署(JCR相关文件没有了)
或者只是简单的删除了classes/saiku-repository/data文件夹下面的所有文件
这时候,以前在管理台添加过的OLAP数据源就不存在了 4)结论:
管理台添加的OLAP数据源重启系统不会失效,重新部署系统失效 5) 解决: 通过代码加载OLAP数据源

2、通过代码加载OLAP数据源

思路:

将所有schema文件放在saiku-schemas文件夹下面
所有OLAP数据源配置文件放在saiku-datasources文件夹下面
然后在系统初始化的时候解析saiku-datasources文件夹下面的配置文件生成saikuDS对象
获取系统JCR中存在的DSList
判断DSList中是否已经存在新建的saikuDS对象
如果不存在 就执行新增数据源的操作 存在就什么也不操作 当系统 1)第一次部署/重部署/JCR文件结构不存在的时候,DSList必然为空
所有的saikuDS都会新增成为OLAP数据源加入到JCR结构中 2)当重启动系统时,JCR文件存在,DSList和saikuDS比对
如果此时saiku-datasources文件夹下面的OLAP配置文件没变化,不做任何操作
如果新增了OLAP配置文件,则添加新的数据源到JCR结构中 这样就完美的解决了重部署失效的问题
但是:如果用户从管理台新建一个OLAP数据源,这个新建的DS在重新部署后也会失效的

解决:
用户在管理台新建OLAP数据源的时候
不仅要添加在JCR结构中
还要在代码的最后一步将配置信息生成olap配置txt文件保存在saiku-datasources文件夹下面
这样一来就能保证数据源的一致性了

saiku-添加数据源以及保证数据源的一致性的更多相关文章

  1. [saiku] saiku-添加数据源以及保证数据源的一致性

    采用任何一种添加数据源的方式都不能保证数据源的一致和完整,所以需要两种结合来管理数据源 1.通过saiku的管理台添加数据源 ① 第一种方式:schema和ds都在管理台添加 1)上传schema文件 ...

  2. flink系列-10、flink保证数据的一致性

    本文摘自书籍<Flink基础教程> 一.一致性的三种级别 当在分布式系统中引入状态时,自然也引入了一致性问题.一致性实际上是“正确性级别”的另一种说法,即在成功处理故障并恢复之后得到的结果 ...

  3. 43. Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

    [视频&交流平台] àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm ...

  4. (43). Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

    在上一篇我们介绍了多数据源,但是我们会发现在实际中我们很少直接获取数据源对象进行操作,我们常用的是jdbcTemplate或者是jpa进行操作数据库.那么这一节我们将要介绍怎么进行多数据源动态切换.添 ...

  5. SpringBoot多数据源动态切换数据源

    1.配置多数据源 spring: datasource: master: password: erp_test@abc url: jdbc:mysql://127.0.0.1:3306/M201911 ...

  6. SpringBoot之多数据源动态切换数据源

    原文:https://www.jianshu.com/p/cac4759b2684 实现 1.建库建表 首先,我们在本地新建三个数据库名分别为master,slave1,slave2,我们的目前就是写 ...

  7. Spring Boot 动态数据源(多数据源自动切换)

    本文实现案例场景: 某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库. 为了在开发中以最简单的方法使用,本文基 ...

  8. [原创]SSAS-引用维度与多数据源、多数据源视图引发分区错误

    背景:       最近有个项目,有32家分公司,集团总部需要取这个32家分公司数据做分析,由于每个分公司的数据都比较庞大,所以最终方案是每个分公司一个DW,在cube搭建过程中将每个公司数据作为一个 ...

  9. JDBC 学习笔记(三)—— 数据源(数据库连接池):DBCP数据源、C3P0 数据源以及自定义数据源技术

    本文目录:        1.应用程序直接获取连接的缺点(图解)        2.使用数据库连接池优化程序性能(图解)        3.可扩展增强某个类方法的功能的三种方式        4.自定 ...

随机推荐

  1. centos6.5 ssh安全优化,修改默认端口名,禁止root远程登录

    一.修改默认端口号 第一步: vi /etc/sysconfig/iptables 添加修改后的端口号的配置 -A INPUT -p tcp -m state --state NEW -m tcp - ...

  2. iOS—最全的真机测试教程

    准备 开发者账号 自从Xcode7 出来之后,一般的真机测试不需要开发者账号,也就不需要看这篇教程,只有app具有“推送”等功能的时候,要真机测试就必须要开发者账号和设置证书.苹果只是让你体验一下它的 ...

  3. 25 个增强iOS应用程序性能的提示和技巧 应用程序性能的提示和技巧

    初级 在开发过程中,下面这些初级技巧需要时刻注意: 1.使用ARC进行内存管理2.在适当的情况下使用reuseIdentifier3.尽可能将View设置为不透明(Opaque)4.避免臃肿的XIBs ...

  4. C#在泛型类中,通过表达式树构造lambda表达式

    场景 最近对爬虫的数据库架构做调整,需要将数据迁移到MongoDB上去,需要重新实现一个针对MongoDB的Dao泛型类,好吧,动手开工,当实现删除操作的时候问题来了. 我们的删除操作定义如下:voi ...

  5. 不小心删除数据--利用MySQL的binlog恢复数据

    MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库.用于slave端执行增删改,保持与maste ...

  6. CUBRID学习笔记 24 数据类型1

    ---恢复内容开始--- 一 数字类型  注意小数的四舍五入问题 1数字型 Type Bytes Mix Max Exact/approx. SHORTSMALLINT 2 -32,768 32,76 ...

  7. 问题处理:找不到Pch预编译文件?

    提醒:Xcode6之后就不再自动创建Pch预编译文件 在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一 ...

  8. iOS - Xib

    前言 xib 文件可以被 Xcode 编译成 nib 文件,xib 文件本质上是一个 xml 文件,而 nib 文件就是编译后的二进制文件,该文件将视图等控件对象封装了起来,而在程序运行起来后,这些对 ...

  9. ip地址的组成(网络位+主机位)

    IP地址子网掩码都是32位的2进制,为了方便记忆转成10进制,通过子网掩码来区分网络位和主机位,子网掩码跟IP地址一一对应,子网掩码为1的是网络位,为0的是主机位.如:192.168.1.2 掩码25 ...

  10. JavaWeb学习总结(八)—Cookie

    1.什么叫Cookie Cookie翻译成中文是小甜点,小饼干的意思.在HTTP中它表示服务器送给客户端浏览器的小甜点.其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器. ...