用户数据同步

文件名是今日, 数据是昨天的数据。

dayid=`date -d "1 days ago" +%Y%m%d  `

##############################################

# 功能: 开始日期加上偏移天数后的日期字符串

# 入参: 开始日期,yyyymmdd

#        偏移天数

# 返回值:开始日期加上偏移天数日期,yyyymmdd

###############################################

function toDate()

{

startdate=$1;

days=$2;

timestamp_startdate=`date -d ${startdate} +%s`

timestamp_resultdate=`expr ${timestamp_startdate} ‘+‘ ${days} ‘*‘ 86400`

resultdate=`date -d @${timestamp_resultdate} +%Y%m%d`

echo $resultdate

}

filedayid=`toDate $dayid 1`

spark-submit --class="com.zyuc.stat.iot.etl.UserInfoETL"  \

--master yarn-client  \

--name UserInfoETL \

--conf "spark.app.appName=UserInfoETL" \

--conf "spark.app.dataDayid=${dayid}" \

--conf "spark.app.userTable=iot_customer_userinfo" \

--conf "spark.app.syncType=full" \

--conf "spark.app.inputPath=/hadoop/IOT/ANALY_PLATFORM/BasicData/UserInfo/"  \

--conf "spark.app.outputPath=/hadoop/IOT/ANALY_PLATFORM/BasicData/output/UserInfo/"  \

--conf "spark.app.fileWildcard=all_userinfo_qureyes_${filedayid}*" \

--conf "spark.app.vpdnInput=/hadoop/IOT/ANALY_PLATFORM/BasicData/VPDNProvince/"  \

--conf "spark.app.vpdnWildcard=vpdninfo.txt" \

--conf spark.yarn.executor.memoryOverhead=700 \

--executor-memory 2G \

--executor-cores  1 \

--num-executors  6 \

/slview/test/zcw/jars/userETL.jar

dayid=`date -d "1 days ago" +%Y%m%d  `

##############################################

# 功能: 开始日期加上偏移天数后的日期字符串

# 入参: 开始日期,yyyymmdd

#        偏移天数

# 返回值:开始日期加上偏移天数日期,yyyymmdd

###############################################

function toDate()

{

startdate=$1;

days=$2;

timestamp_startdate=`date -d ${startdate} +%s`

timestamp_resultdate=`expr ${timestamp_startdate} ‘+‘ ${days} ‘*‘ 86400`

resultdate=`date -d @${timestamp_resultdate} +%Y%m%d`

echo $resultdate

}

filedayid=`toDate $dayid 1`

spark-submit --class="com.zyuc.stat.iot.etl.UserInfoETL"  \

--master yarn-client  \

--name UserInfoETL \

--conf "spark.app.appName=UserInfoETL" \

--conf "spark.app.dataDayid=${dayid}" \

--conf "spark.app.userTable=iot_customer_userinfo" \

--conf "spark.app.syncType=incr" \

--conf "spark.app.inputPath=/hadoop/IOT/ANALY_PLATFORM/BasicData/UserInfo/"  \

--conf "spark.app.outputPath=/hadoop/IOT/ANALY_PLATFORM/BasicData/output/UserInfo/"  \

--conf "spark.app.fileWildcard=incr_userinfo_qureyes_${filedayid}*" \

--conf "spark.app.vpdnInput=/hadoop/IOT/ANALY_PLATFORM/BasicData/VPDNProvince/"  \

--conf "spark.app.vpdnWildcard=vpdninfo.txt" \

--conf spark.yarn.executor.memoryOverhead=700 \

--executor-memory 2G \

--executor-cores  1 \

--num-executors  6 \

/slview/test/zcw/jars/userETL.jar

--conf "spark.app.fileWildcard= 如下:

all_userinfo_qureyes_20170714*

incr_userinfo_qureyes_20170715*

create table iot_customer_userinfo(vpdncompanycode string, mdn string, imsicdma string, imsilte string, iccid string, imei string, company string, nettype string, vpdndomain string, isvpdn string, subscribetimeaaa string, subscribetimehlr string, subscribetimehss string, subscribetimepcrf string, firstactivetime string, userstatus string, atrbprovince string, userprovince string, crttime string, custProvince string) partitioned by (d int)  stored as orc location ‘/hadoop/IOT/ANALY_PLATFORM/BasicData/output/UserInfo/data/‘;

alter table iot_customer_userinfo add IF NOT EXISTS partition(d=‘20170714‘);

shell 调度脚本:

增量数据:

$ cat userETL.sh
dayid=$1
if [ -z $dayid ] ; then
    dayid=`date -d "1 days ago" "+%Y%m%d"`
fi
##############################################
# 功能: 开始日期加上偏移天数后的日期字符串
# 入参: 开始日期,yyyymmdd
#        偏移天数
# 返回值:开始日期加上偏移天数日期,yyyymmdd
###############################################
function toDate()
{
   startdate=$1;
   days=$2;
   timestamp_startdate=`date -d ${startdate} +%s`
   timestamp_resultdate=`expr ${timestamp_startdate} ‘+‘ ${days} ‘*‘ 86400`
   resultdate=`date -d @${timestamp_resultdate} +%Y%m%d`
   echo $resultdate
}
filedayid=`toDate $dayid 1`
spark-submit --class="com.zyuc.stat.iot.etl.UserInfoETL"  --master yarn-client  --name UserInfoETL --conf "spark.app.appName=UserInfoETL" --conf "spark.app.dataDayid=${dayid}" --conf "spark.app.userTable=iot_customer_userinfo" --conf "spark.app.syncType=incr" --conf "spark.app.inputPath=/hadoop/IOT/ANALY_PLATFORM/BasicData/UserInfo/"  --conf "spark.app.outputPath=/hadoop/IOT/ANALY_PLATFORM/BasicData/output/UserInfo/"  --conf "spark.app.fileWildcard=incr_userinfo_qureyes_${filedayid}*" --conf "spark.app.vpdnInput=/hadoop/IOT/ANALY_PLATFORM/BasicData/VPDNProvince/"  --conf "spark.app.vpdnWildcard=vpdninfo.txt" --conf spark.yarn.executor.memoryOverhead=700 --executor-memory 2G --executor-cores  1 --num-executors  6 /slview/test/zcw/shell/userinfo/jars/userETL.jar >/slview/test/zcw/shell/userinfo/logs/${dayid}.log   2>&1
时间: 2024-10-10 11:07:57

用户数据同步的相关文章

[Java][activiti]同步或者重构activiti identify用户数据的方法

同步或者重构Activiti Identify用户数据的多种方案比较 相信每个涉及到用户的系统都有一套用户权限管理平台或者模块,用来维护用户以及在系统内的功能.数据权限,我们使用的Activiti工作流引擎配套设计了包括User.Group的Identify模块,怎么和业务数据同步呢,这个问题是每个新人必问的问题之一,下面介绍几种同步方案,最后总结比较. 如果你在考虑直接使用Activiti引擎的Identify模块作为系统的用户数据管理模块,您真是奇才-开个玩笑 方案一:调用IdentifyS

onLaunch与onLoad同步获取用户数据

前言 在开发项目的时候遇到从全局获取用户信息,逻辑是从app.js中的onLauch获取,page页面的onLoad拿到数据填充到页面.遇到的问题是onLauch与onLoad是异步的,没办法从页面判断app.js中获取数据的先后,于是参照网上的方式用回调进行处理. 代码 app.js App({ globalData: { //需要获取的数据 userInfo: null, //回调函数 cb: null }, onLauch: function(){ //异步获取用户数据 wx.reques

Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 在A节点创建原表和物化视图日志 在B节点创建连接A节点的远程链接 在B节点处创建目标表和与目标表名称相同的物化视图 在B节点处刷新物化视图 升级采用存储过程定时任务JOB方式定时刷新物化视图 进一步优化 文章更新记录 参考文章 Oracle 10g 物化视图语法如下: create materia

服务 - Sersync数据同步详细教程

Sersync数据同步 一.rsync介绍 rsync是类unix系统下的数据镜像备份工具--remote sync.一款快速增量备份工具 Remote Sync,远程同步支持本地复制,或者与其他SSH.rsync主机同步. 它的特性如下: v 可以镜像保存整个目录树和文件系统. v 可以很容易做到保持原来文件的权限.时间.软硬链接等等. v 无须特殊权限即可安装. v 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件.rsync 在传输数据的过程中可以实行压缩及解压

【转】mysql数据库读写分离数据同步

转载请注明来源:mysql数据库读写分离数据同步 mysql数据库读写分离数据同步 我是用了两个xp(一个主的,一个从的)的系统测试成功的,linux系统我也做测试了,没有成功,不过我想我所遇到的问题是同一个问题,xp下的可以成功,linux下的应该也可以成功,稍候会测试,然后更新结果! PS:刚测试了下linux 可以同步成功,主服务器是xp,从服务器是centos,可以成功. 例: A机器 192.168.0.2 B机器 192.168.0.3 两个机器可以ping通,互相访问 先配置主服务

搭建中小规模集群之rsync数据同步备份

NFS重要问题 1.有关NFS客户端普通用户写NFS的问题. 1)为什么要普通用户写NFS. 2)exports加all_squash. Rsync介绍 什么是Rsync? Rsync是一款开源的.快速的.多功能的.可实现全量即增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix.linux.windows等多种操作系统平台. Rsync简介 Rsync英文全称Remote synchronization.从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快

Linux的rsync远程数据同步工具

Rsync(remote synchronize) 是一个远程数据同步工具,可以使用"Rsync算法"同步本地和远程主机之间的文件. rsync的好处是只同步两个文件不同的部分,相同的部分不在传递.类似于增量备份, 这使的在服务器传递备份文件或者同步文件,比起scp工具要省好多时间. OS:ubuntu server 10.04 server:192.168.64.128 client:192.168.64.145 server 1.ubuntu  server 10.04默认已安装r

Linux rsync数据同步命令解析

rsync命令 rsync有六种不同的工作模式: 1)拷贝本地文件.当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式. rsync -a /data /backup 2)使用一个远程shell程序(如rsh.ssh)来实现将本地机器的内容拷贝到远程机器.当DST路径地址包含单个冒号":"分隔符时启动该模式. rsync -avz *.c foo:src 3)使用一个远程shell程序(如rsh.ssh)来实现将远程机器的内容拷贝到本地机器.

Oracle数据库数据同步方案

一.比较原始的方案:触发器/Job/快照+dblink的方式,可实现同步和定时刷新: 二台不同的数据库服务器,从一台数据库服务器A的一个用户读取另一台数据库服务器B下某个用户的数据,可以通过dblink来完成. 二.通过物化视图定时刷新来实现数据同步.物化视图刷新方式有增量刷新和完全刷新两种模式: 三.高级复制,分为多主复制和物化视图复制两种模式.其中多主复制能进行双向同步复制和异步复制:物化视图用于单向复制,定时刷新,与第二条类似: 四.流复制,可实现实时和非实时同步: 五.GoldenGat