graphite 数据库_大数据存储和分析-IBM DB2和Graphite

本文介绍了IBM DB2在PCC系统中的数据存储使用,包括IBM DB2与Java Persistence API的集成,利用Liquibase进行数据库模式更新。此外,文章还探讨了Graphite在监控和分析代码库、工作负载中的作用,以及如何结合StatsD和Grafana进行数据可视化。通过实例展示了如何使用这些工具进行数据存储、分析和故障排查。
摘要由CSDN通过智能技术生成

在本文中,我们将结合IBM™Persistence API使用IBM DB2作为数据源,描述PCC系统中的数据存储。 此外,我们讨论了如何使用Graphite来检测代码库和工作负载。 最后,我们描述了用于分析数据的工具。

IBM DB2和Java Persistence API

DB2是IBM关系数据库服务器,已在整个PCC系统中广泛用作持久数据存储。 我们往返于DB2的主要接口是通过Java的持久性API(JPA2)。 Java Persistence API提供了一种将Java对象映射到关系数据的方法,例如表中的行或数据库中的视图。 我们还使用Liquibase来更新DB2数据库模式,因为它提供了模式版本控制和回滚功能。 在XML标记中描述了模式更新,每个模式更改都是单个更改集条目的一部分。 这样就可以将较小,更快的更改以单独的方式发布到数据库模式。

Predictive Cloud Computing系统利用IBM DB2存储从源数据生成的聚合信息,并使用Graphite分析指标并分析我们的代码库。 这些工具中的每一个都使PCC系统能够存储,分析和检索大量数据。

PCC系统使用JPA2的Apache OpenJPA实现。 为了使用JPA2与数据源建立连接,该数据源在persistence.xml文件中进行了描述。 清单1显示了一个示例persistence.xml文件。

清单1. OpenJPA persistence.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
	<persistence-unit name="Aviator-Unit" transaction-type="RESOURCE_LOCAL">
		<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
		<class>com.ibm.ei.persistence.jpa.CloudStatisticsDAO</class>
		<class>com.ibm.ei.persistence.jpa.CrawlerChecksum</class>
		<class>com.ibm.ei.persistence.jpa.EventPredictionCountDAO</class>
		<class>com.ibm.ei.persistence.jpa.EventStatisticsDAO</class>
		<class>com.ibm.ei.persistence.jpa.LogCount</class>
		<class>com.ibm.ei.persistence.jpa.HistoricalLogCount</class>
		<class>com.ibm.ei.persistence.jpa.Path</class>
		<class>com.ibm.ei.persistence.jpa.PlayerContentAnalysisDAO</class>
		<class>com.ibm.ei.persistence.jpa.PlayerDAO</class>
		<class>com.ibm.ei.persistence.jpa.CrawlerPlayerPopularity</class>
		<class>com.ibm.ei.persistence.jpa.SiteDAO</class>
		
		<class>com.ibm.ei.persistence.jpa.golf.FeaturedGroupDAO</class>
		<class>com.ibm.ei.persistence.jpa.golf.HoleDAO</class>
		<class>com.ibm.ei.persistence.jpa.golf.RoundDAO</class>
		
		<class>com.ibm.ei.persistence.jpa.tennis.Match</class>
		<class>com.ibm.ei.persistence.jpa.tennis.MatchStatus</class>
		<class>com.ibm.ei.persistence.jpa.tennis.TennisCourt</class>
		
		<class>com.ibm.ei.persistence.jpa.twitter.Mention</class>
		<class>com.ibm.ei.persistence.jpa.twitter.PlayerSummary</class>
		<class>com.ibm.ei.persistence.jpa.twitter.Retweet</class>
		<class>com.ibm.ei.persistence.jpa.twitter.TweetDAO</class>
		<class>com.ibm.ei.persistence.jpa.twitter.ReachDAO</class>
		<class>com.ibm.ei.persistence.jpa.twitter.User</class>
		<class>com.ibm.ei.persistence.jpa.HistoricalLogCount</class>
		<exclude-unlisted-classes>true</exclude-unlisted-classes>
		<properties>
           		 <property name="openjpa.DynamicEnhancementAgent" value="true"/>
           		 <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/>
          		 <property name="openjpa.ConnectionDriverName" value="org.h2.Driver"/>
			 <property name="openjpa.ConnectionURL" value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1"/>
			 <property name="openjpa.jdbc.Schema" value="eiblueus"/> 
           		 <property name="openjpa.DataCache" value="false"/>
            		 <property name="openjpa.QueryCache" value="false"/>
	     		 <property name="openjpa.RemoteCommitProvider" value="sjvm"/>
	     		 <property name="openjpa.Multithreaded" value="false"/>
	          	 <property name="openjpa.QueryCompilationCache" value="false"/>
			 <property name="openjpa.jdbc.FinderCache" value="false"/>
		</properties>
	</persistence-unit>
</persistence>

在persistence.xml中,每个持久性单元都描述了一个JPA数据源。 该提供程序包含JPA实现的类名,并充当数据源初始化的入口点。 在提供者之后列出的是OpenJPA编译阶段应增强的类。 这些类是映射到关系数据的Java对象。 它们将在本文后面进一步详细探讨。 最后,在最后的properties元素中指定任何自定义配置属性。 在属性中可以配置诸如连接URL,数据库模式名称和缓存配置之类的详细信息。 应该将persistence.xml文件打包到Java jar META-INF目录中,以便JPA在运行时可以读取。

配置JPA数据源后,可以增强pers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值