信息流zt_bin脚本

bin脚本主要是mysql建表语句和上端数据源同步

一 mysql建表的初始化

建表语句如下:

#!/usr/bin/env bash
base=$(dirname $0)
mysqlConnTo=$1
database=$2
echo "1:$1"
echo "2:$2"
mysql $mysqlConnTo -e "create database if not exists $database ;"
mysql $mysqlConnTo -e "create database if not exists $database ;"
mysql $mysqlConnTo -D$database < $base/init_table/init_**_table.sql
mysql $mysqlConnTo -D$database < $base/init_table/init_zt**_table.sql
mysql $mysqlConnTo -D$database < $base/init_table/init_other_table.sql

建的表参考如下:

-- SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for wwwwdata
-- ----------------------------
-- DROP TABLE IF EXISTS wwwwdata;
CREATE TABLE if not exists `wwwwdata` (
  `date` int(11) NOT NULL DEFAULT '0' COMMENT '日期,eg:20160618',
  `pin_id` int(100) NOT NULL DEFAULT '0' COMMENT '广告主PInID',
  `mobile_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:PC,1:无线',
  `ad_traffic_group` tinyint(4) NOT NULL DEFAULT '0' COMMENT '流量来源',
  `loc` tinyint(4) NOT NULL DEFAULT '0' COMMENT '站内外,1:站内,2:站外',
  `ad_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '广告类型,1:图片',
  `ad_billing_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '计费类型,0:CPC',
  `ad_business_type` int(11) NOT NULL DEFAULT '0' COMMENT '新增字段,产品类型',
  `impressions` bigint(20) NOT NULL DEFAULT '0' COMMENT '展现量',
  `clicks` bigint(20) NOT NULL DEFAULT '0' COMMENT '点击量',
  `cost` bigint(20) NOT NULL DEFAULT '0' COMMENT '消耗',
  PRIMARY KEY (`pin_id`,`date`,`mobile_type`,`ad_traffic_group`,`loc`,`ad_type`,`ad_billing_type`,`ad_business_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

CREATE TABLE if not exists `city` (
  `province` varchar(50) NOT NULL COMMENT '省名称' ,
  `city` varchar(50) NOT NULL COMMENT '市名称',
  `id` varchar(50) NOT NULL  primary key COMMENT '省市id',
  `c_id` varchar(50) NOT NULL COMMENT '数据平台内部表示,此字段暂时不用'
  )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='city表';

二 数据同步

每3分钟同步一次

*/3 * * * * sh wwww/bin/schedule_timeout.sh >> wwww/log/timeout_info.log 2>&1 &

DT=`date  +%Y-%m-%d`
echo $DT
base=$(dirname $0)
sh $base/sync_data.sh "-u -h -P -p" dsp  "-u -h -P -p"  ad_data_zt "-u-h -P" ad_data "-h -P -u -p" dbp_report $DT

sync_data.sh如下:

#!/usr/bin/env bash
base=$(dirname $0)
mysqlConnFrom1=$1
db1=$2

mysqlConnFrom2=$3
db2=$4

mysqlConnFrom3=$5
db3=$6

mysqlConnTo=$7
targetdb=$8

DT=$9
DT_int=`date --date "$9" +%Y%m%d`
#mysqlConnFrom="-h  -P -u -p"
#db1="test"
#mysqlConnTo="-h  -P -u -p"
#db2="dbp"

sh $base/sync_data/sync_zt4_table.sh "$mysqlConnFrom1" $db1 "$mysqlConnTo" $targetdb "(created_time>=CONCAT('$DT', ' 00:00:00') and created_time<=CONCAT(date_sub('$DT',interval -1 day), ' 00:00:00')) or (modified_time>=CONCAT('$DT', ' 00:00:00') and modified_time<=CONCAT(date_sub('$DT',interval -1 day), ' 00:00:00'))"

sh $base/sync_data/sync_zt1_table.sh "$mysqlConnFrom2" $db2 "$mysqlConnTo" $targetdb "date='$DT_int'"

#sh $base/sync_data/sync_zt2_table.sh "$mysqlConnFrom2" $db2 "$mysqlConnTo" $targetdb "order_day='$DT_int'"

sh $base/sync_data/sync_zt3_table.sh "$mysqlConnFrom3" $db3 "$mysqlConnTo" $targetdb "business_type=4" $DT_int

sync_zt2_table.sh的脚本如下:

#!/usr/bin/env bash
base=$(dirname $0)
mysqlConnFrom=$1
db1=$2
mysqlConnTo=$3
db2=$4
where=$5
echo "1: $1"
echo "2: $2"
echo "3: $3"
echo "4: $4"
echo "5: $5"

#db1="test"

#db2="dbp_report"
#where="date='$DT'"


tables=( ztad1data ztad2data <span style="font-family:Arial, Helvetica, sans-serif;">)</span>

for var in ${tables[@] };
do
    running="sh $base/func_sync_table.sh \"$mysqlConnFrom\" $db1 $var \"$mysqlConnTo\" $db2 \"$where\""
    echo $running
    sh $base/func_sync_table.sh "$mysqlConnFrom" $db1 $var "$mysqlConnTo" $db2 $var  "$where"
done

wait



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值