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

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、后续处理
将导出的数据文件以邮件方式发送出去;当然更深一步,可以设定 邮件自动发送


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值