您的位置:首页 > 数据库 > MySQL

Win下Mysql数据每日查询导出发送方案

2015-12-04 17:56 916 查看
1、数据处理的存储过程

CREATE DEFINER=`datahs`@`%` PROCEDURE `p_kingr_sum_daily`(IN `p_statistics_date` int)
BEGIN
insert into datatest.kingr1
...........................
drop table if EXISTS tmp_loan_app_distinct;
create table tmp_loan_app_distinct as select uid from h_f_loan_apply group by uid ;
ALTER TABLE `tmp_loan_app_distinct`ADD UNIQUE INDEX `loan_dist_key` (`uid`) USING BTREE ;
insert into datatest.kingr2
...........................
insert into datatest.kingr3
...........................
insert into datatest.kingr4
...........................
insert into datatest.kingr5
...........................
commit;
END


2、实现连续跑多天存储过程(一个月内)

CREATE DEFINER=`datahs`@`%` PROCEDURE `p_execproc_while`()
BEGIN
declare i integer;
set i=20151201;
while i<=20151231 do
begin
call p_kingr_sum_daily(i);
SET i=i+1;
end;
end while;
END


3、数据导出目录路径

C:\data_dir>tree c:\data_dir\data-exp-daily /f
卷 Windows 的文件夹 PATH 列表
卷序列号为 D4D2-8713
C:\DATA_DIR\DATA-EXP-DAILY
│  data_proc_script.bat
│  fetch_n_day_ago.bat
│  mydate.vbs
│
└─kingr_data
kingr1_20151203.txt
kingr2_20151203.txt
kingr3_20151203.txt
kingr4_20151203.txt
kingr5_20151203.txt


4、获取昨天日期的vbs脚本

C:\data_dir\data-exp-daily>type mydate.vbs

CreateObject("Scripting.FileSystemObject").CreateTextFile("C:\data_dir\data-exp-daily\MyDate.cmd").Write "Set MyDate=" & DatePart("yyyy",Date - 1) & Right("0" & DatePart("m",Date - 1), 2) & Right("0" & DatePart("d",Date - 1),2)


5、测试昨天日期获取正确与否脚本

C:\data_dir\data-exp-daily>type fetch_n_day_ago.bat

@ECHO OFF
Cscript C:\data_dir\data-exp-daily\mydate.vbs //NoLogo
CALL C:\data_dir\data-exp-daily\MyDate.CMD
DEL C:\data_dir\data-exp-daily\MyDate.CMD
ECHO ON
@ECHO %MyDate%
@ECHO OFF
pause


6、数据处理脚本

C:\data_dir\data-exp-daily>type data_proc_script.bat

@ECHO OFF
Cscript C:\data_dir\data-exp-daily\MyDate.vbs //NoLogo
CALL C:\data_dir\data-exp-daily\MyDate.CMD
DEL C:\data_dir\data-exp-daily\MyDate.CMD
ECHO ON
rem set FormatDate=%MyDate:~0,4%%MyDate:~5,2%%MyDate:~8,2%\
set FormatDate=%MyDate%
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "delete from datatest.kingr1 where statistics_date=%FormatDate%;"
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "delete from datatest.kingr2 where statistics_date=%FormatDate%;"
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "delete from datatest.kingr3 where statistics_date=%FormatDate%;"
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "delete from datatest.kingr4 where statistics_date=%FormatDate%;"
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "delete from datatest.kingr5 where statistics_date=%FormatDate%;"
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "call datahouse.p_kingr_sum_daily(%FormatDate%);"
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "select * from datatest.kingr1 where statistics_date=%FormatDate%;" > C:\data_dir\data-exp-daily\kingr_data\kingr1_%FormatDate%.txt
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "select * from datatest.kingr2 where statistics_date=%FormatDate%;" > C:\data_dir\data-exp-daily\kingr_data\kingr2_%FormatDate%.txt
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "select * from datatest.kingr3 where statistics_date=%FormatDate%;" > C:\data_dir\data-exp-daily\kingr_data\kingr3_%FormatDate%.txt
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "select * from datatest.kingr4 where statistics_date=%FormatDate%;" > C:\data_dir\data-exp-daily\kingr_data\kingr4_%FormatDate%.txt
mysql -h120.55.189.188 -udatawarehouse -pDTHS2015 -e "select * from datatest.kingr5 where statistics_date=%FormatDate%;" > C:\data_dir\data-exp-daily\kingr_data\kingr5_%FormatDate%.txt


7、设定计划任务

将data_proc_script.bat执行脚本在任务计划中设置成每天定时执行。

8、后续处理

将导出的数据文件以邮件方式发送出去;当然更深一步,可以设定邮件自动发送。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: