oracle,mongodb数据处理相关

任务一:将项目运行日志进行自动备份,处理后放入mongodb中。

难点:字符串切割,日期时间格式处理,linux定时任务

过程:日志处理无外乎将有效字段从非结构化的日志文本中截取出来,抽取有效信息供下一步分析使用。本项目中的日志信息其实已经相当结构化了,字符串切割里面的问题主要是一行数据切割一次无法完整的获取所有信息,需要用不同的切割方式再进行获取。

在处理切割得到的字符串时间时,遇到了一些小问题。01/Jan/2018:01:14:42 ,这个格式的文本时间,直接用simpledateformat对象按照(“yyyy/MMM/dd:HH:mm:ss”)处理时会产生异常。

Exception in thread "main" java.text.ParseException: Unparseable date: "01/Jan/2018:01:14:42 "

问题主要出现在Jan这个月份上,网上查到的资料显示这样的英文月份按照“MMM”的格式是可以解析的,但是很多博客忽略了地区位置信息,这就导致了以上异常的发生。

因此在处理此时间格式时,应该显式明确地区。SimpleDateFormat("yyyy/MMM/dd:HH:mm:ss", Locale.US);这样才会按照“MMM”去解析英文月份。

由于备份工作要长期定时运行在服务器上,每天定时处理前一天的日志。故笔者选择使用maven写了个小工程,这样既可以简化打包过程,也适合做定时任务。

在做linux定时任务时,参考了https://blog.csdn.net/nvnnv/article/details/52355681这篇博客,博主讲的比较详细了。所以问题也迎刃而解。

任务二:oracle数据定时备份到mongodb

由于项目原因,数据主要存储在oracle数据库中,老师希望定时将此部分数据存入mongodb中方便分析。

此过程中遇到的小问题是在maven打包的时候。使用assembly打包插件进行带依赖的打包。

mvn assembly:assembly,在打包过程中出现错误

Failed to execute goal on project ReadOracle: Could not resolve dependencies for project ReadOracle:ReadOracle:jar:1.0-SNAPSHOT: Failure to find com.oracle:ojdbc6:jar:11.2.0.1.
0 in https://repo.maven.apache.org/maven2 was cached in the local repository

问题显示的相当清楚,是由于ojdbc6:jar无法找到的原因,网上查到是由于甲骨文公司对ojdbc的授权问题,导致maven中心仓库没有此相关的jar包。因此需要使用本地jar文件打包,

但是笔者使用的是本地搭建的nexus服务器,应该不存在此问题。查了许多资料,也没有明白到底是什么原因。

最后在https://blog.csdn.net/viktoria/article/details/77503266 解决了问题,依然不是很清楚为什么。待之后深入了解maven打包过程。

完。

原文地址:https://www.cnblogs.com/hikikomori/p/9040304.html

时间: 2024-10-09 20:35:00

oracle,mongodb数据处理相关的相关文章

oracle数据库事务相关【weber出品必属精品】

事务的概念:事务:一个事务由一组构成一个逻辑操作的DML语句组成 事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束.以下情况会使得事务结束: 1. 执行COMMIT 或者 ROLLBACK 语句 2. 执行DDL或者 DCL语句 3. 用户退出 4. 系统崩溃 一个事务可以包含下列语句: 1. 对数据做出一致性修改的DML语句 2. 一个 DDL 语句 3. 一个 DCL语句 DDL与和DCL语句执行的过程: 1. 首先发出COMMIT; 2. 执行对数据字典的DM

oracle物理体系相关查询语句

1.查看SGA和PGA 这里看到SGA和PGA大小为0是因为在oracle 11g中,推出了memory_target这个参数,memory_target参数指定的内存会自动分配内存给SGA与PGA: 查看memory_target: sga_max_size=3200M表示当数据库运行是的内存超过sga_target的大小时,操作系统OS能够分配再分配内存给SGA,但大小不能超过3200M: 2.查看共享池与数据缓冲区 共享池与数据缓冲区大小为0是因为oracle设置为SGA自动管理,共享池与

MODIS NDVI数据处理相关问题

现NDVI产品数据处理过程中遇到以下问题: 问题1:    NDVI是归一化植被指数,它的取值范围是-1-1,如何理解? 方法 :    对于陆地表面覆盖来说,云.雨.雪在可见光比近红外波段有较高的反射作用,所以NDVI为负值:岩石.裸土的NDVI一般为0:有植被覆盖的地方一般大于0. 问题2:    导入ENVI进行查看,发现未拼接重投影之前影像数据范围为-3000-0.99880,拼接重投影之后影像数据范围在-3000-9988.是数据值发生了改变吗? 方法 :    ENVI - Basi

MongoDB 索引相关知识

背景: MongoDB和MySQL一样,都会产生慢查询,所以都需要对其进行优化:包括创建索引.重构查询等.现在就说明在MongoDB下的索引相关知识点,可以通过这篇文章MongoDB 查询优化分析了解MongoDB慢查询的一些特点. 执行计划分析: 因为MongoDB也是BTree索引,所以使用上和MySQL大致一样.通过explain查看一个query的执行计划,来判断如何加索引,explain在3.0版本的时候做了一些改进,现在针对这2个版本进行分析: 3.0之前: zjy:PRIMARY>

mongoDB索引相关命令总结

一.在集合中文档的某个键上面建立索引: 1.我们知道如果索引使用的得当,会大幅提升查询速度,而如果使用不当有可能会使整个操作性能下降所以在建立索引的时候要考虑如下几点: (1).会做什么样的查询,哪些键需要建立索引 (2).每个键的索引方向是怎么样的 (3).如何应对扩展,怎么排序键的方向,使更多常用的数据保存在内存中 2.这里注意一下,建立索引的时候可以使用 1,-1 建立不同方向的索引 3.使用ensureIndex() 在指定的键上创建索引 4.建立普通索引:使用 ensureIndex(

MongoDB索引相关文章-摘自网络

索引类型 虽然MongoDB的索引在存储结构上都是一样的,但是根据不同的应用层需求,还是分成了唯一索引(unique).稀疏索引(sparse).多值索引(multikey)等几种类型. 唯一索引 唯一索引在创建时加上unique:true 的选项即可,创建命令如下: db.users.ensureIndex({username: 1}, {unique: true}) 上面的唯一索引创建后,如果insert一条username已经存在的数据,则会报如下的错误: E11000 duplicate

mongodb数据处理工具

最近大家需要对mongodb和postgres数据库操作比较频繁,给大家推荐一个数据处理工具Kettle,希望对你能有所帮助 ①   将mongodb数据库中的表进行处理然后导出来生成csv,txt,excel格式,同样也能将表导入到其他mongodb数据库中 ②   如果你用csv或是excel构造了自己的数据,可以导入到mongodb数据库或是postgres数据库中 ③   你可以将postgres数据库中的表导入到mongdb数据库中,反过来亦是可以 ④   如果你对mongodb的语法

mongodb 索引相关

1.索引的相关介绍: monggodb的索引也是一颗平衡二叉树,所以在传统数据库中的绝大部分的索引优化技术也是可用的. 注意:mongodb可以在任意方向上对数据进行遍历(这点和关系数据库中的索引不一样),但这个仅限于单键排序,对于多键排序索引的方向还是比较重要的. 下面是个单键排序无方向性的具体的例子: 上面是两个查询的执行计划,红色部分的参数表示,查询是否在内存中有排序操作, 从上面的例子中可以很明显的看出,无论是按照iage的降序还是升序排序,查询都没有在内存中有排序操作. 2.mongo

oracle补丁p18841764相关

数据库版本:11.2.0.4.0 补丁要求环境:linux64(此处以该版本为例) 补丁注意事项:可以滚动升级.需要关闭该节点数据库,并关闭该节点的集群服务与相关进程. 补丁流程: 1. unzip补丁包(建议路径为/u01) 2.关闭节点数据库与相关数据库资源 3.替换OPatch 4.进入补丁的路径下,opatch apply 常见错误处理: Q1:有活动的lib包,不能进行补丁. A1:有程序持有相关lib的句柄.lsof lib,找到持有该lib的句柄程序,关闭改程序即可. Q2:补丁打