###################################
作用:每小时定时执行以下代码,能将上一个小时中的数据进行取出,用以进行数据分析和挖掘 把以下代码中需要修改的部分修改一下后创建一个sh文件,将修改该好的数据放进去就行了,这个是针对oracle的sqoop语句 红色字体为我后加的注释,要注意去掉 橙色部分为需要修改的部分,sql部分需要针对自己业务进行设计,注意最终输出地址:默认为hdfs地址,也可导进hive中,这个请自行百度 #!/bin/sh
#comments 当前小时(注意等号后面的字符两端有反单引号(即在英文输入状态下esc下面的按键按出来的),因为字体的原因本站显示不出来)
nowHour=`date “+%Y-%m-%d %H:00:00″` 上一小时(注意等号后面的字符两端有反单引号(即在英文输入状态下esc下面的按键按出来的),因为字体的原因本站显示不出来)
lastHour=`date -d -1hour “+%Y-%m-%d %H:00:00″` sqoop要执行的sql语句
sql=”SELECT id,TO_CHAR(logdate,’yyyy-mm-dd hh24:mi:ss’) FROM testT WHERE logdate >= TO_date(‘”$lastHour”‘,’yyyy-mm-dd hh24:mi:ss’) and logdate < TO_date(‘”$nowHour”‘,’yyyy-mm-dd hh24:mi:ss’) and \$CONDITIONS” sqoop命令
sqoop import –connect jdbc:oracle:thin:@192.168.0.xx:1521:orcl –usernameusername–password pwd\
–query “\”$sql\”” \
–m 1 –append –target-dir /hdfs目录 ################################### 以上面为例,想知道抽取量,可以在sql语句中加入count进行统计。也就是下面语句中 sql=”SELECT id,TO_CHAR(logdate,’yyyy-mm-dd hh24:mi:ss’) FROM testT WHERE logdate >= TO_date(‘”$lastHour”‘,’yyyy-mm-dd hh24:mi:ss’) and logdate < TO_date(‘”$nowHour”‘,’yyyy-mm-dd hh24:mi:ss’) and \$CONDITIONS” 第二题: 100张表中查看50张表是查看50张表的名字?? 还是查看什么,如果是只是显示50张表, 数据库应该是mysql的吧 select table_name from tables limi 50;
|