ODS项目——mongoDB导入脚本

mongoDB导入脚本

#! /bin/sh

echo "${0} import data to mongodb"
tagFile="/srv/mss_data/dim_customerex_mobile_stat_`date +%Y%m%d -d "-1 day"`.log"
impDataFile="/srv/mss_data/dim_customerex_mobile_stat_`date +%Y%m%d -d "-1 day"`.txt"
tableName="${1}"

echo "tagFile:${tagFile}"
echo "impDataFile:${impDataFile}"
echo "tableName:${tableName}"

if [ -z ${1} ] ;then
  echo "please input tableName"
  exit 1
fi

echo "tagFile:${tagFile}"
echo "impDataFile:${impDataFile}"

if [ -f "$impDataFile" -a  -f "$tagFile" ] ;then
    line="$(more ${tagFile})"
    line="${line:0:1}"      #取第一个字符
    #echo "`expr length $line`"
    if [ $line == "1" ] ;then
        sed -i ‘s/#//g‘ ${impDataFile} 

        mongo ods_mss --eval "db.${tableName}.drop()"
        mongoimport -d ods_mss -c ${tableName} --type csv --headerline --file ${impDataFile}
        mongo ods_mss --eval "db.${tableName}.ensureIndex({ec_custno:1,customerid:1,sex:1,lastlogdate:1,ismultidrawcash:1,isbookdshlvl:1,bankcount:1,vacco_shares:1,nonrt_shares:1,regular_treasure_shares:1,dshlvl_shares:1,thirdparty_shares:1,finacingfund_shares:1,total_shares:1,vacco_capital:1,nonrt_capital:1,regular_treasure_capital:1,dshlvl_capital:1,thirdparty_capital:1,finacingfund_capital:1,total_capital:1})"
        mongo ods_mss --eval "db.${tableName}.find().forEach(function(doc){doc.lastlogdate = new Date(doc.lastlogdate+‘ GMT-0800 (CST)‘);db.${tableName}.save(doc)});"

    fi
 else
    echo "file is not exists"
fi

第二版:

#! /bin/sh

echo "${0} import data to mongodb"
tagFile="/srv/mss_data/dim_customerex_mobile_stat_`date +%Y%m%d -d "-1 day"`.log"
impDataFile="/srv/mss_data/dim_customerex_mobile_stat_`date +%Y%m%d -d "-1 day"`.txt"
tableName="${1}"

echo "tagFile:${tagFile}"
echo "impDataFile:${impDataFile}"
echo "tableName:${tableName}"

if [ -z ${1} ] ;then
  echo "please input tableName"
  exit 1
fi

echo "tagFile:${tagFile}"
echo "impDataFile:${impDataFile}"

if [ -f "$impDataFile" -a  -f "$tagFile" ] ;then
    #line="$(more ${tagFile})"
    eval $(awk ‘{if (NR==1) print "line="substr($0,1,1)}‘ ${tagFile})
    echo $line;
    #line="${line:0:1}"      #取第一个字符
    echo "`expr length $line`" >>mssadminlog.log
    if [ $line == "1" ] ;then
        sed -i ‘s/#//g‘ ${impDataFile} 

        /srv/infra/mongodb/mongodb2.6.4/bin/mongo ods_mss --eval "db.${tableName}.drop()"
        /srv/infra/mongodb/mongodb2.6.4/bin/mongoimport -d ods_mss -c ${tableName} --type csv --headerline --file ${impDataFile}
        /srv/infra/mongodb/mongodb2.6.4/bin/mongo ods_mss --eval "db.${tableName}.ensureIndex({ec_custno:1,customerid:1,sex:1,lastlogdate:1,ismultidrawcash:1,isbookdshlvl:1,bankcount:1,vacco_shares:1,nonrt_shares:1,regular_treasure_shares:1,dshlvl_shares:1,thirdparty_shares:1,finacingfund_shares:1,total_shares:1,vacco_capital:1,nonrt_capital:1,regular_treasure_capital:1,dshlvl_capital:1,thirdparty_capital:1,finacingfund_capital:1,total_capital:1})"

        echo "begin date:`date`"
        mongo ods_mss --eval "db.${tableName}.find().forEach(function(doc){doc.lastlogdate = new Date(doc.lastlogdate);db.table_2.update({‘_id‘:doc._id},doc)});"
        echo "end date:`date`"
        echo "import date OK!"
    fi
 else
    echo "file is not exists"
fi

另:

好像mongo使用eval时命令都要以"db."开头

时间: 2024-10-06 22:41:25

ODS项目——mongoDB导入脚本的相关文章

ODS项目——mongoDB使用文档

1.启动mongodb:#cd /srv/infra/mongodb/mongodb2.6.4/bin# ./mongod --dbpath=/mongodbdata/mongodb_db --port 27018  --logpath=/mongodbdata/mongodb_logs/mongodb.log --logappend& 2.关闭mongodb:[[email protected] mongodb]# mongoMongoDB shell version: 2.6.4connec

一个功能齐全的CMS管理系统模板,内置6套皮肤,已经转化为标准的Eclipse项目,直接导入即可

原文:一个功能齐全的CMS管理系统模板,内置6套皮肤,已经转化为标准的Eclipse项目,直接导入即可 源代码下载地址:http://www.zuidaima.com/share/1550463745526784.htm - MrZhao只分享精品,话不多说,直接上图  - 为了压缩文件我把WEB-INF下面的lib包打包放在网盘下载地址:http://pan.baidu.com/s/1eQEbAAA - 把lib解压进去以后项目直接导入Eclise即可运行 - 数据库Mysql,初始脚本项目里

Eclipse调试程序及项目的导入导出

Eclipse调试程序 调试概述: ①   调试就是测试程序的方法,主要的目的就是解决程序的逻辑问题,流程是:发现问题.修改问题.正确执行; ②   以前我们可以使用System.out.println()方法来查看我们程序中的问题; ③   现在我们可以使用Eclipse开发工具帮我们进行调试: Eclipse为程序员提供了设置断点的功能来达到单步调试程序的能力; 调试步骤: ①   初步判断程序出错的位置; ②   给指定的程序设置断点(可以设置多个); ③   进入调试视图让程序在断点位置

mongodb安装脚本/启动脚本/配置文件

安装脚本 #!/bin/bash  #author: QingFeng #qq: 530035210 #blog: http://my.oschina.net/pwd/blog  #自动安装mongodb和初始化配置 #缺省的配置如下   logdir=/data/log/shell          #日志路径 log=$logdir/shell.log            #日志文件  is_font=1                #终端是否打印日志: 1打印 0不打印  is_log

Java中的项目的导入导出

在很多情况下,需要把当前的Java工程传递给其他人继续工作或者协同工作,或者从其他人那里接收到传递来的Java项目,这时掌握Java项目的导入和导出是十分必要的. Hello World->右键->Export...->General->Archive(压缩文件)->next 勾选Hello World 右侧的两个是关于工程的.classpath配置文件和当前的工程配置文件(.project) 如果希望该工程导出之后可以被其他人导入并且继续使用开发 .classpath和.p

在项目中导入import javax.servlet 出错解决办法

我们有时会把别人的项目copy到自己这里进行二次开发或者参考学习,有的时候会发生下图的错误,即eclipse项目里我们导入的项目里提示HttpServletRequest 不能引用,会伴随头疼的小红叉出现 具体原因是我们工程里面web-inf/lib目录下少了相应的包:Package javax.servlet.http引起的:通俗且确切的讲就是缺少TOMCAT_HOME\lib下的servlet-api.jar.在别人的机器上他配置了Server,一般都是tomcat,而在拷贝的过程中Serv

Eclipse_java项目中导入外部jar文件

很多时候,在java项目中需要导入外部 .jar文件,比如:需要导入数据库连接驱动等等一些包.不熟悉eclipse的人可能会犯愁,其实很简单....步骤如下: 在需要添加外部文件的项目上   单击右键--->Build Path----->Configuer Build Path---->Libraries---->Add External JARs....... 整个过程就这么简单..... Eclipse_java项目中导入外部jar文件

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法 打开CMD输入以下命令: mysql –u root –p 然后输入密码: 在导入脚本文件之前,对字符编码进行设置: charset gbk; 说明:上面的这条语句非常关键,这样不论你在cmd窗口,还是使用客户端输入中文,都能够正确保存了. 建议初学者不要使用SQLyog或者Navicat Premium等客户端连接工具.

一个超漂亮的Java版博客系统,内置14套皮肤,已经转化为标准的Eclipse项目,直接导入即可

原文:一个超漂亮的Java版博客系统,内置14套皮肤,已经转化为标准的Eclipse项目,直接导入即可 源代码下载地址:http://www.zuidaima.com/share/1550463745002496.htm MrZhao只分享精品,话不多说,直接上图      - 为了压缩文件我把WEB-INF下面的lib包打包放在网盘下载地址:http://pan.baidu.com/s/1hqqqWOc - 把lib解压进去以后项目直接导入Eclise即可运行 - 数据库Mysql,确保一个新