帮助客户制定HANA计划的咨询顾问与分析师承认其中的复杂性,他们认为HANA分析型应用将最终走进企业混合ERP环境
也许短期大规模BusinessSuite向HANA的迁移不会出现,但这是一个非常重大的变革,SAP用户必须重新评估他们的企业系统
埃森哲公司的SAP分析与HANA部门全球主管NicolaMoriniBianzino表示:“客户向HANA迁移的方式是小步走,大多数的SAP客户都在进行评估,他们需要一套系统的方法来决定如何进行迁移,以及是否在云中运行HANA
客户将从小的组件开始向HANA迁移,同时需要保证业务的正常运转
这与迁移到云的形式非常相似,部分业务留在企业内部,部分放到云中
”对于那些市场竞争中处于领先位置的大型企业来说,他们对预测分析的需求是明显的,是HANA的典型客户群
而像公共事业这种行业,他们的迁移步伐会慢一些
当HANA企业云以及相关的选项更成熟,证明迁移更可行的时候,MoriniBianzino期待一些小型公司也能够跟上脚步
相比而言,SAPBWonHANA应用更简单一些,而且成本与风险相对较低
MoriniBianzino表示:“通常BW系统的规模不是很大,所以前期的投入会相对较少
埃森哲在印度的一个制造业客户近期就完成了向HANA的迁移
”另外一些没有准备好对ERP系统进行完全“平台再造”的客户首先会考虑一些批量处理负载,比如财务结算,他们能够从HANA的性能提升上快速获得回报
改写历史一些观察家指出,HANA强袭的一个主要原因是SAP对新的收入流的迫切需求
凯捷公司的HANA咨询顾问MikePrice表示,ERP热潮早已经过去,而为了推广HANA,SAP不得不对其ERP平台进行重新投资,包括核心代码的重写
实在难以想象现在有多少人在为此写代码
SAP声称,基于HANA的BusinessSuite对客户来说将提供无缝的迁移体验,专家对此表示赞同
Forrester著名分析师PaulHamerman称,基于HANA的BusinessSuite并不是另一个版本,它更像是一个增强的功能包
客户通过迁移到HANA的确能够获得非常好的性能提升,比如在财务结算上的测试显示能够提供1000倍以上的性能提升
Hamerman表示:“在HANA的推广方面,SAP一直非常小心,不给客户造成迁移必须‘大动干戈’的印象
这与甲骨文形成鲜明对比
”Hamerman这里指的是Oracle融合应用软件产品线
HANA早期回报体现在接近实时的运行传统的批量处理应用
然而,速度并不是唯一的优势
特别是对于跨国公司来说,他们基本上会统一时间进行基于ERP的批量处理,通常是在夜里
然而由于时差关系,一些地区业务就可能需要暂停
因此这种接近于实时的处理能力会非常具有吸引力
什么是SAPHANA
SAPHANA是一个软硬件结合体,提供高性能的数据查询功能,用户可以直接对大量实时业务数据进行查询和分析,而不需要对业务数据进行建模、聚合等
saphana的作用
HANA不是一个数据仓库,而是一个平台,在这个平台之上用户可以构建数据仓库或集市、报表和仪表盘等。
HANA能做的,首先是作为内存数据库,提供数据插入、修改和高效的查询功能。
其次,作为一个平台,在HANA之上,BO报表系统可以提供更好的用户体验_用户几乎不需要等待数据返回。
用户可以使用HANA的建模工具直接访问ECC或其它数据源,避开BW。但也可以在HANA之上建BW,把BW那些性能问题交给HANA解决。
SAPHANA提供多用途的内存应用设备,企业可以利用它即时掌握业务运营情况,从而对所有可用的数据进行分析,并对快速变化的业务环境做出迅速响应。
通过SAPHANA,企业可以在业务运作期间基于海量实时详细信息分析业务运营情况。企业可以探索和分析来源于所有数据源的全部交易数据和分析数据。运营数据在产生时由内存获取,并通过灵活的视图迅速将分析信息呈现给用户。外部数据可轻松的被添加至分析模型,与整个企业的数据进行整合
通过SAPHANA可直接访问运营数据,而不影响SAPERP和其他运营系统的性能。企业可以近乎实时地将主要交易表同步到内存中,以便在分析或查找时能够轻松对这些表进行访问。一旦数据可通过内存访问,各个部门就可以从预订单据、销售线索、服务要求等大量列表中查找单个行项目,而不会对运营系统造成任何影响。这种高效的建模流程支持提供明细行项目的直接访问模型,以及支持更为复杂的分析流程的分析模型。
SAPHANA提供从概念到分析的高效工作流程。该工作流涵盖整个流程,从识别相关运营数据(将原始数据转化为相关信息)开始,到在模型中生成按语义分组的信息,最后是发布完成的模型。SAPHANA与传统分析模型的主要区别在于摒弃了任何物质化的东西,即,所有模型都是完全虚拟的,均基于基本的具体运营数据计算结果。这样,模型就能够被方便的修改。
SAPHANA可以访问任何数据。当企业需要非SAP应用程序中的运营数据,或想在现有分析模型的基础上进行扩展时,任何数据源均可作为SAPHANA的数据基础。使用SAP数据服务组件,可以将非SAP运营数据加载到SAPHANA内存中,这样,企业就可以通过极其精简的流程创建一个特定业务情景的完整视图。
SAPHANA添加了易用的建模经验来进一步提高业务用户的自主性。视图遵循语义规则,将原始运营数据转化成可以理解的信息,据此,业务用户可以在基于Web的建模环境中自主地创建新分析模型。
SAP的商务智能分析工具可以直接使用SAPHANA内存数据,使业务用户能够全面利用其所有高性能应用程序的洞察和分析功能。但是,如果用户希望使用Excel或其他工具和应用程序进行数据分析,那么他们可以通过MDX、SQL等标准接口连接到SAPHANA。
SAPHANA为现有应用程序、运营系统或其他业务应用程序提供标准接口。这意味着SAPHANA不会因为连接到现有数据源而打乱现有系统架构,并轻松利用现有BI客户端。作为一款完备的实时分析解决方案,SAPHANA可以帮助企业尽快获得收益。
在方法中,使用了hana数据源从hana数据库中查出数据,然后将数据写到mysql数据库中,对数据库进行修改 *** 作时,我们一般会添加事务回滚的 *** 作,以便程序出错时可以还原数据库。
问题:
在方法中添加能使程序异常的代码(比如:int i = 1/0;)进行测试,并在方法中贴上以下注解:
@Transactional(rollbackFor = Exceptionclass)
复制
但是发现事务并没有回滚
检查了项目的配置, 两个数据源配置了事务管理器:
hana数据源配置:
import javaxsqlDataSource;
import combaomidoumybatisplusspringMybatisSqlSessionFactoryBean;
import orgapacheibatissessionSqlSessionFactory;
import orgmybatisspringSqlSessionTemplate;
import orgmybatisspringannotationMapperScan;
import orgspringframeworkbeansfactoryannotationQualifier;
import orgspringframeworkbootjdbcDataSourceBuilder;
import orgspringframeworkcontextannotationBean;
import orgspringframeworkcontextannotationConfiguration;
import orgspringframeworkcontextannotationPrimary;
import orgspringframeworkcoreiosupportPathMatchingResourcePatternResolver;
import orgspringframeworkjdbcdatasourceDataSourceTransactionManager;
import topibase4jcoreConstants;
import topibase4jcoreutilPropertiesUtil;
import topibase4jcoreutilSecurityUtil;
@Configuration
@MapperScan(basePackages = "comxxxmapperhana",sqlSessionTemplateRef ="hanaSqlSessionTemplate")
public class HanaDataSourceConfig {
/创建数据源/
@Bean(name = "hanaDataSource")
@Primary
public DataSource gethanaDataSource() {
DataSource build = DataSourceBuildercreate()
driverClassName(PropertiesUtilgetString("hanadriverClassName"))
url(PropertiesUtilgetString("hanaurl"))
username(PropertiesUtilgetString("hanausername"))
password(SecurityUtildecryptDes(PropertiesUtilgetString("hanapassword"), ConstantsDB_KEYgetBytes()))
build();
return build;
}
@Bean(name = "hanaSqlSessionFactory")
@Primary
public SqlSessionFactory hanaSqlSessionFactory(@Qualifier("hanaDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
beansetDataSource(dataSource);
//设置mapper配置文件
beansetMapperLocations(new PathMatchingResourcePatternResolver()getResources("classpath:mapper/hana/xml"));
return beangetObject();
}
/创建事务管理器/
@Bean("hanaTransactionManger")
@Primary
public DataSourceTransactionManager hanaTransactionManger(@Qualifier("hanaDataSource") DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
/创建SqlSessionTemplate/
@Bean(name = "hanaSqlSessionTemplate")
@Primary
public SqlSessionTemplate hanaSqlSessionTemplate(@Qualifier("hanaSqlSessionFactory") SqlSessionFactory sqlSessionFactory){
return new SqlSessionTemplate(sqlSessionFactory);
}
}
复制

mysql数据源配置:
import combaomidoumybatisplusspringMybatisSqlSessionFactoryBean;
import orgapacheibatispluginInterceptor;
import orgapacheibatissessionSqlSessionFactory;
import orgmybatisspringSqlSessionTemplate;
import orgmybatisspringannotationMapperScan;
import orgspringframeworkbeansfactoryannotationQualifier;
import orgspringframeworkbootjdbcDataSourceBuilder;
import orgspringframeworkcontextannotationBean;
import orgspringframeworkcontextannotationConfiguration;
import orgspringframeworkcontextannotationEnableAspectJAutoProxy;
import orgspringframeworkcoreiosupportPathMatchingResourcePatternResolver;
import orgspringframeworkjdbcdatasourceDataSourceTransactionManager;
import orgspringframeworktransactionannotationEnableTransactionManagement;
import topibase4jcoreutilPropertiesUtil;
import javaxannotationResource;
import javaxsqlDataSource;
@Configuration
@MapperScan(basePackages = "comxxxmappermysql",sqlSessionTemplateRef ="mysqlSqlSessionTemplate")
public class MysqlDataSourceConfig {
@Resource
private MybatisPlusConfig mybatisPlusConfig;
/创建数据源/
@Bean(name = "mysqlDataSource")
public DataSource getmysqlDataSource() {
DataSource build = DataSourceBuildercreate()
driverClassName(PropertiesUtilgetString("druiddefaultdriverClassName"))
url(PropertiesUtilgetString("druidwriterdefaulturl"))
username(PropertiesUtilgetString("druidwriterdefaultusername"))
password(PropertiesUtilgetString("druidwriterdefaultpassword"))
build();
return build;
}
@Bean(name = "mysqlSqlSessionFactory")
public SqlSessionFactory mysqlSqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
beansetDataSource(dataSource);
//设置mapper配置文件
beansetMapperLocations(new PathMatchingResourcePatternResolver()getResources("classpath:mapper/mysql/xml"));
Interceptor[] interceptors = {
mybatisPlusConfigpaginationInterceptor(),
mybatisPlusConfigperformanceSonInterceptor()
};
beansetPlugins(interceptors);
return beangetObject();
}
/创建事务管理器/
@Bean("mysqlTransactionManger")
public DataSourceTransactionManager mysqlTransactionManger(@Qualifier("mysqlDataSource") DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
/创建SqlSessionTemplate/
@Bean(name = "mysqlSqlSessionTemplate")
public SqlSessionTemplate mysqlSqlSessionTemplate(@Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory){
return new SqlSessionTemplate(sqlSessionFactory);
}
}
复制

由于默认的数据源是hana数据源,但是现在我们要将mysql的事务进行回滚,如果不将默认的事务管理器设置mysql对应的事务管理器为默认的话, 事务回滚将不起作用。
因此,可以添加配置类,以配置默认的事务管理器为mysql的,配置类要实现TransactionManagementConfigurer
/
将mysql数据源的事务管理器设置为默认的事务
/
@Configuration
public class SpecifyDefaultTransactionManagerConfig implements TransactionManagementConfigurer {
@Autowired
private MysqlDataSourceConfig mysqlDataSourceConfig;
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return mysqlDataSourceConfigmysqlTransactionManger(mysqlDataSourceConfiggetmysqlDataSource());
}
复制

再次进行测试,事务将回滚成功
如果不想添加配置类,可以在注解中标明使用的是哪个事务管理器
这里我们要用的是mysql的,因此可以这样配置
@Transactional(value = "mysqlTransactionManger",rollbackFor = Exceptionclass)
复制
value的值就是事务管理器bean的名称
spring boot
三星电视
精选推荐
广告

springboot多数据源即分布式事务解决方案
79下载·0评论
2018年10月16日
SSM多数据源配置事务回滚处理
2777阅读·0评论·1点赞
2019年1月15日
MySQL 多库事务回滚
284阅读·0评论·0点赞
2022年10月23日
Spring Boot多数据源(支持Spring声明式事务切换和回滚)pdf
10下载·0评论
2021年7月21日
Spring 事务
165阅读·0评论·0点赞
2020年4月14日
java多数据源回滚_Spring多数据源事务
1053阅读·0评论·0点赞
2021年3月10日
Springboot多数据源 解决事务回滚失效
3004阅读·6评论·2点赞
2021年8月6日
springboot 多数据源 添加事务,事务回滚
1125阅读·4评论·0点赞
2021年12月1日
dynamic-datasource多数据源的配置使用(读写分离、事务的回滚)
4146阅读·3评论·4点赞
2022年1月26日
Spring Boot项目多数据源事务不生效的问题
2641阅读·0评论·8点赞
2021年10月15日
Springboot集成SpringJDBC多数据源事务回滚(二)
SAPHANA的命令行工具主要是hdbsql,可以交互式或非交互式运行,还可以从文件导入命令执行
我们首先来看看如何交互式运行命令
我们现在已经有了一个SAPHANA数据库
进入到命令行后我们需要切换到HANA安装时创建的用户,我们将切换到这个用户名:su_a17adm
然后输入hdbsql,我们就进入了交互式界面
一般建议安装在xp系统上。但是旗舰版应该可以安装。找不到系统数据库应该是你用友软件以前安装过,并且用过的原因。需要在注册表中把installok,更改为installed 就可以重建用友系统数据库,具体注册表位置在locak_machine-software-ufsoft -uf2000(或者wf-uf8520)-setup-setup
以上就是关于saphana是什么_saphana是什么数据库全部的内容,包括:saphana是什么_saphana是什么数据库、什么是saphanasaphana有什么用_SAPHANA、失败回滚项目变成子模块等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)