shell编写mysql抽取数据脚本
#!/bin/bash
DT=`date +%Y%m%d` #当前日期
YESTERDAY=`date -d "yesterday" +%Y-%m-%d` #昨天,用于处理数据的日期
if [ ! -n "$1" ] ;then
    echo "ETL Date:$YESTERDAY";
else
    YESTERDAY=${1}
    echo "ETL Date:$YESTERDAY";
fi
#AGENT_IDS="'NDM1MW1RME9HTmlaRGN5TWpjNU5mZTU4','MTI1Y2FEVXlOVEZtWlRVNFpqUTVOZjJiYQ==','MTdiYmN5T0RNM056VXlOMkV5TlRJOWNjNw==','N2RkZVlXVTJNemxoWTJJd05UaGtmYWJm','MTY4OGFPVGMzTkdRNU1ESXpZMkU0OGQxYg==','OTE4OG1Zak5rTm1JNU5URmlOekYxN2Y3Mw==','YTExN09UaG1aREl6TjJabE1EQTNmYTlh','DdlYzRhNWM5MTBhN','NlYTk5NjBjMDRjYz','MzJiMzFkZGEwODA0','mU2YWY0N2E1NWYxZ','c3NWJlZDVlYTZmNT','DI0MjQ3MWNkODk0Y','gxYzRhOTcyNzhlYz','FhMjBiNjM2YzI3Yj','MDc0NTM1NjljMTVk','dkYjU3MDgwODI4Mz','OTc2ZTc4YzBhNWVj','E2OWY5ZThmMGY3NT','xYjg3NzY2MWU5OWV','IwOTgxMjFlZDY5OG','WE3ZWIzZWU1YTMwY','WFlZjU0Njk2NTAwZ','2MGE1MDNmNTBkZmY','4ZDM2OWQ1ZGEwOTY','DVlODAyYzA0ZTc0Z','GNlNjMwMjIyZDA1Z','1YTRiODZlZGY2NzB','U4M2ZjYzQ4YzJlMT','OWFlZGYzNGNmODI3','BmYzUyMDBiNTU3Yz','1ODY4MzVjNmJhNDM','MGI5NTcxNzUzNDQ3','DMxYTk3ZjYxNjk2Z','Q4ZTI4ZDAyMzA3M2','YzEwMDBlYWI1N2U0','DlmNTgyNGQzMzVjZ','2ZiOGQ1MGQ3ZmRjN'"
QUY_HOST=*****.com
QUY_DB=****
QUY_USER=****
QUY_PWD=*****
mysql -h$QUY_HOST $QUY_DB -u$QUY_USER -p$QUY_PWD << EOF
truncate TABLE ros_query_new_everyday;
insert into ros_query_new_everyday(id,query_date,device_id,agent_id,agent_code,agent_name) select id,query_date,device_id,agent_id,agent_code,agent_name from ros_query_new a where a.query_time between '$YESTERDAY 00:00:00' and '$YESTERDAY 23:59:59' and result_status = 0;
EOF
# 抽取文本query
mysql -h$QUY_HOST $QUY_DB -u$QUY_USER -p$QUY_PWD --default-character-set=utf8 --skip-column-names -B -e "select agent_id,agent_code,agent_name,device_id,query_date,count(*),'TEXT' query_type from ros_query_new_everyday where query_date ='$YESTERDAY' and agent_code in(select app_id from stat_agent_code) group by agent_code,device_id;" > etl_text_query_$YESTERDAY.txt
echo 'querys succeeded.'
ECP_HOST=****
ECP_USER=***
ECP_PWD=*****
ECP_DATABASE=*****
mysql -h$ECP_HOST $ECP_DATABASE -u$ECP_USER -p$ECP_PWD << EOF
 DELETE FROM tp_storybox_querys WHERE query_date='$YESTERDAY';
 LOAD DATA LOCAL INFILE 'etl_text_query_$YESTERDAY.txt'  INTO TABLE tp_storybox_querys(agent_id,agent_code,agent_name,client_id,query_date,query_count,query_type);
 DELETE FROM tp_storybox_querys WHERE  query_date='$YESTERDAY' and client_id NOT IN(SELECT device_id FROM tp_storybox_active_log);
EOF
echo 'ETL succeeded.'
shell编写mysql抽取数据脚本的更多相关文章
- mysql批量数据脚本
		
mysql批量数据脚本 1 建表 create table dept( id int unsigned primary key auto_increment, deptno mediumint uns ...
 - shell编写mysql备份工具
		
如需转载,请经本人同意. 这是之前写的一个备份脚本,调用的备份工具是xtrabackup 编写思路是:每周一全备份,备份后提取lSN号,对备份文件进行压缩,其余时候在LSN的基础上进行增量备份,并对3 ...
 - python编写Mysql自动备份脚本
		
1、先写一个python脚本 vim /opt/mysql_dump.py #!/usr/bin/env python# -*- coding:utf-8 -*-import osimport tim ...
 - 使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决
		
一.参考文档: 1.https://www.rittmanmead.com/blog/2014/03/using-sqoop-for-loading-oracle-data-into-hadoop-o ...
 - SHELL编写NGINX服务控制脚本
		
使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的 ...
 - 利用Shell开发MySQL的启动脚本
		
MySQL实例部署情况 01:MySQL程序安装目录:/data/apps/mysql 02:MySQL实例3306的配置文件为:/data/mysql/3306/my.cnf 03:MySQL实例3 ...
 - shell导出mysql部分数据
		
#!/bin/shSYSTEM=`uname -s` echo "echo"$SYSTEM if [[ $SYSTEM = "Linux" ]]; then ...
 - MySQL造数据脚本-亲试
		
DELIMITER $$CREATE DEFINER=`root`@`192.168.2.254` PROCEDURE `pjzzspdz_fpmx_initdata12101245`()BEGIN ...
 - MySQL批量数据脚本示例
		
一.建表 # 新建库 create database bigData; use bigData; #1 建表dept CREATE TABLE dept( id INT UNSIGNED PRIMAR ...
 
随机推荐
- java面向对象的构造函数
			
当使用new来创建一个对象的时候,其实是调用了一个函数,这个函数的名称叫做构造函数 构造函数的特点: 1.构造函数的名称必须和类名完全一致,包括大小写. 2.构造函数不写返回值,不写返回值意味着连vo ...
 - linux操作系统基础篇(八)
			
shell脚本的变量以及正则表达式 一.变量 含义:程序的运行就是一些列状态的变量->用变量值的变化去表示. 命名规则 以字母或下划线开头,剩下的部分可以是:字母.数字.下划线. 最好遵循下述规 ...
 - label的作用是什么?是怎么用的?
			
label标签是用来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上. 主要有以下两种用法用法: 一. <label for = "Name&qu ...
 - python之optparse模块
			
测试例子 #!/usr/bin/env python2.7 import sys import os from optparse import OptionParser def parse_optio ...
 - 工作中用到的一些shell命令
			
1.将十进制转换为十六进制 for i in `seq 0 127`; do printf "%02x\n" $i; done
 - get和post与服务端的交互方式
			
在网上看了不少关于get和post的文章,看到博主这个,现在手录下来. 原博客地址:http://www.cnblogs.com/warrior4236/p/5675756.html 一:B/S结构, ...
 - 用JAVA中BufferedImage画出漂亮的验证码点击变化
			
如果我们想用JAVA中BufferedImage画出漂亮的验证码点击变化怎么实现呢,类似这样: 点击变化,以下是实现过程,直接上代码: 首先前台:<i><img style=&quo ...
 - select2 取值 遍历 设置默认值
			
select2 取值 遍历 设置默认值 本章内容主要介绍Select2 的初始化,获取选中值,设置默认值,三个方法.Select2 美化了单选框,复选框和下拉框,特别是下拉框多选的问题.但同时,Sel ...
 - [最短路]P1339 [USACO09OCT]热浪Heat Wave
			
题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...
 - CCLuaObjcBridge - Lua 与 Objective-C 互操作的简单解决方案
			
http://dualface.github.io/blog/2013/01/27/call-objectivec-from-lua/ 月初的时候,发了一篇关于 Lua 与 Java 互操作的文章,里 ...