通过sh脚本从ftp获取数据并sqlloader入库

使用 DataX 实现数据同步(高效的同步工具) DataX 是阿里云 DataWorks 数据集成 的开源版本,主要就是用于实现数据间的离线同步。 DataX 致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等 各种异构数据源(即不同的数据库) 间稳定高效的数据同步功能。 阅读详情

sh脚本如下,其中使用到了 sqlloader控制文件(此文件在下方展示)

echo "begin"
source /etc/profile
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
YYYY=`date "+%Y"`
MM=`date "+%m"`
DD=`date "+%d"`
day_get_file="*$YYYY$MM$DD.tar.gz"
echo "$day_get_file"
#压缩文件名称
GZ_DL="szyxt_dl_day_$YYYY$MM$DD*.tar.gz" 
#解压之后生成的csv文件名称
DL="szyxt_dl_day_$YYYY$MM$DD.csv"
echo "$DL"
#对应的sqlloader ctl文件名称
CTL_DL="JF_DL.ctl"
#定义当前sh文件存放位置为basepath
basepath=$(cd `dirname $0`; pwd)
#cd 到此目录
cd $basepath

#删除当前目录下所有的 txt  和gz 格式的文件
rm *.csv *.gz   -f

#登录ftp 获取文件
ftp -inv 127.0.0.1 <<EOF
user username password
bin
lcd $basepath
cd 文件存放路径
mget $day_get_file
bye
EOF

echo "cat tar file."
cat $GZ_DL        |tar xz

echo "tar over."

sqlldr dbuser/dbpwd@servername control=$CTL_DL  data=$DL direct=true rows=1000 errors=1000 skip=0

#run sqlplus exec procedure
sqlplus dbuser/dbpwd@servername <<EOF
set echo on
set timing on
set time on
exec 存储过程名;
quit
EOF

find *.txt -mtime +2 -exec rm -f {} \;
find *.gz -mtime +2 -exec rm -f {} \;
find *.log -mtime +2 -exec rm -f {} \;
find *.bad -mtime +2 -exec rm -f {} \

echo "end"


sqlloader控制文件JF_DL.ctl如下

-- SQL Loader Control and Data File created by TOAD
-- Variable length, terminated enclosed data formatting
-- 
-- The format for executing this file with SQL Loader is:
-- SQLLDR control=<filename> Be sure to substitute your
-- version of SQL LOADER and the filename for this file.
--
-- Note: Nested table datatypes are not supported here and
--       will be exported as nulls.
LOAD DATA
CHARACTERSET 'UTF8'  --指定csv 文件编码格式,方式入库乱码
TRUNCATE INTO TABLE JF_DL --使用 truncate 方式入库:还可以append
Fields terminated by "#DELIM#"  --字段分隔符是 #DELIM#
TRAILING NULLCOLS
(
MONTH_ID,
DAY_ID date "yyyy-mm-dd hh24:mi:ss", --日期类型需要指定格式
DEVICE_NUMBER,
FW_LEVEL char(1000), --sqlloader文本长度默认是255的如果超过255 需要手动指定长度
CUST_NO,
CUST_NAME,
USER_NO,
ACCT_NO,
GROUP_ID,
TOTAL_FEE,
CALLING_TYPE,
DISCNT_CODE,
DISCNT_NAME
)

在服务器上 编辑crontab 设置定时任务即可完成定时执行

crontab -e

00 00 * * * sh  /test/download.sh >/test/run.log  #每天0点执行sh 并输出日志到 run.log

【首份】2023年30米分辨率土地利用遥感监测数据 为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。 阅读详情

相关推荐

Bresenham画圆算法在嵌入式屏幕(如ILI9806G)上的实战:从C代码到单片机显示

本文详细介绍了Bresenham画圆算法在嵌入式屏幕(如ILI9806G)上的高效实现与优化方法。通过整数化改造和针对STM32等微控制器的特殊优化,显著提升了图形显示性能,适用于资源受限的嵌入式系统开发。文章还分享了实心圆与空心圆的实现策略及实战经验。

weixin_33712987的博客 390

Pgsql数据库跨网络跨平台数据增量同步方案 - kettle全表数据同步

需求背景: 需要跨网络:从阿里云服务器上的数据库,通过网闸使用ftp传文件的方式,将数据同步到业主的专网中;阿里云跟业主专网不能直连; 定时数据增量同步,具体同步哪些表,需要可配置; 节约工作量,最大限度上不改变当前表结构、业务流程控制等等; 增量操作包含insert、update;delete使用逻辑删除,等价于update 常见应用场景:业主的应用基本都部署在专网中,但是部分业务,需...

嫒de洫天使 1万+

面试篇 - LoRA(Low-Rank Adaptation) 原理

输出示例:trainable params: 262,144 || all params: 6,742,016,000 || trainable%: 0.0039。论文实验显示:零初始化 BB 可使初始损失与预训练模型相差不足0.1%,而非零初始化可能差50%+。若初始 ΔW≠0,模型可能立即偏离预训练学到的知识(如GPT-3突然忘记如何造句)。:如同汽车改装,先保持原厂配置(W),再逐步加装新部件(ΔW),避免直接飙车失控。:大模型的权重变化矩阵 ΔWΔW 通常是低秩的(少数主成分主导变化)。

qq_60245590的博客 1152

linux脚本中使用ftp,在shell脚本中使用ftp的方法分享

有时,我们需要通过ftp传送文件到另一台机器。通常情况下,可以通过交互式的命令行来完成,但对于数据量较多的情况来讲,这样的操作会很烦琐。此时,可以写一段shell脚本,实现ftp文件的自动传输即可。可能的问题在shell脚本中用FTP传输文件,会要求输入密码才可能操作ftp服务器。典型的FTP客户端程序在Unix,Linux,Solaris和NetBSD系统中,会从/dev/tty终端接收FTP密...

weixin_36155610的博客 3098

统信UOS系统盘空间不足?5分钟搞定扩容的图形化解决方案

本文提供统信UOS系统盘空间不足的图形化扩容解决方案,使用GParted分区编辑器在不丢失数据的情况下快速完成扩容。详细步骤包括准备工作、空间调整和执行验证,适合技术用户快速解决问题。

d6e7f8的博客 956

VSCode关联VIVADO编辑Verilog

有时候接手别人的代码,或者从网上找的开源代码,每个人风格不一致,对齐缩进也不一样,阅读起来很累。有没有什么方法能快捷地格式化代码呢。下面我们利用VSCode插件来实现这个需求。Vivado是Xilinx公司提供的逻辑开发平台(之一),如果不喜欢Vivado自带的文本编辑器,可以选择第三方的文本编辑器VSCode。

小王在努力...的博客 7150

sqlloader中关于ctl控制文件的相关参数说明

sqlloader中关于ctl控制文件的相关参数说明:load data CHARACTERSET 'UTF8' //指定字符集为UTF-8,解决数据库乱码问题 infile 'D:\dat\test.dat' //指定数据文件位置 truncate into table table_name //指定装载方式和导入数据的表 fields terminated by

Mike_ToUp 1万+

Python之美——Python2与Python3多版本共存

Python多版本共存的方法Python2、Python3共存的方法python2下载及环境变量配置第一步、打开Python官网,下载Python2第二步、python2环境变量配置测试结果 Python2、Python3共存的方法 方法如下: 1.先确保不同版本解释器的python.exe所在的路径在环境变量中 2.拷贝各自的python.exe并重命名即可 步骤(理解不了下面有图示): 1、首先你需要将不同的python版本安装,且都已经将跟版本的环境变量配置好了,python3和2的下载方式

chenchen5152的博客 3946

oracle load.sh,Oracle Sql loader 导入数据脚本的编写过程

今天同事打电话说帮他导入数据,通pl sql导入非常慢(几个小时都不行)。因此我采用oracle sql loader进行了导入。1、文本文件有两个字段,因此根据这个生产了表:SQL> create table rep.tmp_znk_yb(2znkh varchar2(11),3jmmc varchar2(60)4)5tablespace rep;Table created[@more@]...

weixin_36369605的博客 369

基于STM32LXXX的模数转换芯片ADC(CMS24AD2001)驱动C程序设计

/ 电压 = (原始值 / 2^23) * Vref (注意:24位有符号数范围为 -2^23 到 2^23-1)//---------------- 硬件端口映射 (请根据实际电路修改) ----------------ADC_SCLK_HIGH();- PGA 放大倍数可选:1、2、4、8、16、32、64、128、256;//---------------- 宏定义操作 -------------------//---------------- 函数声明 -------------------

myron6688的博客 161

R语言线性混合模型(LMM)分析

它将数据表示为固定效应和随机效应的线性组合,其中固定效应表示总体均值的影响,随机效应表示个体间的随机差异。LMM的目标是通过最大似然估计或最小二乘估计来估计模型中的固定效应和随机效应的参数。LMM结合了固定效应和随机效应,能够同时考虑个体间和个体内的变异,并适用于具有相关性的数据。目前在使用LMM的R语言包中,较常用的是lme4和nlme包,它们提供了丰富的函数和工具来拟合和分析线性混合模型。面板数据分析:LMM适用于分析具有面板结构的数据,如经济学中的面板数据或教育研究中的学生评估数据。

走向CTO的路上... 2969

sftp服务器同步文件到本地,服务器之间通过sftp的方式同步文件,并入库到本地数据的表中...

需求:A服务器会定时生成一个CSV文件,B服务器从A服务器下载下来,并存入到B服务器的oracle数据库的某表中。分析:1.数据同步上传和下载可以使用ftp的方式,当然也有其他方式。2.数据存到本地后可以使用oracle自带的sqloader来加载文件到数据库中。也可以选择dblink,网上说效率没这个高。未亲测。实施:1.写一个sqlloader的控制文件,取名为res_count.ctlOPT...

weixin_39747807的博客 1432

基于PCL、Open3d、Easy3d 、VTK等常见开源库的QT开发

PCL+QT开发

阁楼 2万+

sqlplus sqlload

sqlload脚本 #!/bin/sh clear >test.log if [-f custNos.bad ];then rm custNos.bad fi if [-f custNos.log ];then rm custNos.log fi # 提示输入数据库的用户名和密码 serviceName = "myoracle_s" userName = "oracleuser" userPwd = '' echo "请输入 ORACLE 数据库用户名 $userName 密码: " stty

qq_25072711的博客 304

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

服务器之间通过sftp的方式同步文件,并入库到本地数据的表中

需求:A服务器会定时生成一个CSV文件,B服务器从A服务器下载下来,并存入到B服务器的oracle数据库的某表中。 分析:1.数据同步上传和下载可以使用ftp的方式,当然也有其他方式。 2.数据存到本地后可以使用oracle自带的sqloader来加载文件到数据库中。 也可以选择dblink,网上说效率没这个高。未亲测。 实施: 1.写一个sqlloader的控制文...

weixin_30817749的博客 964

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

java 生成.sh文件,Java 生成Bat或SH文件,调用Sqlldr安插数据到Oracle

执行流程:1.从ftp判断文件是否存在2.下载文件3.创建ctl文件4.创建可执行文件,bat或sh文件,文件中是sqlldr命令代码5.备份表并创建临时表6.执行文件,插入数据7.检查数据完整性8.创建主键和索引9.将临时表修改为主表,删除临时表和备份表1.package com.iteye.aaa.job;import java.io.BufferedReader;import java.io...

weixin_26805597的博客 687

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

采用SHELL,通过SQL LOAD导入一定格式的txt文件至数据库中

1。 准备工作,window中可直接通过sqlload直接导入文件,linux下,需要有sqlload的相关软件。 2。 SQL脚本(MID_DFDZ.ctl) LOAD DATA INTO TABLE MID_T0_TRANStruncateFIELDS TERMINATED BY '|'( stldate, merno, termno, pan, transa...

dong0506的博客 300

sqlldr从服务器上获取txt文件数据导入到数据库

1、需求: 从指定服务器上获取txt文件数据,导入指定到数据库中 2.  INTERFACE_test_LABEL.ctl 文件内容如下: load data CHARACTERSET UTF8 #要读取的文件 infile '/test_cpcout/test/test_20170811_000001.txt' append into table TBL_test_BAS

kiss199203的专栏 1494

linux ftp sh,详述Linux ftp命令的使用方法

ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux 进行ftp操作将会非常容易。Linux ftp命令的一般格式如下:$ ftp 主机名/IP其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远...

weixin_33891343的博客 361

shell脚本实现ftp上传下载文件

【代码】shell脚本实现ftp上传下载文件。

qq_49849300的博客 4061

FTP、SSH服务与配置

FTP(FileTransferProtocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。TCP协议20,21端口20端口用于传输数据21端口用于传输指令(建立连接)FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard(也就是Active,主动方式),一种是Passive(也就是PASV被动方式)。.........

zyy1020075955的博客 3501

sh实现ftp

. ~/.profile ############################## # FTP Data files ############################## #remote dir REMOTEDIR="/home/cheyang/" #local dir LOCALDIR="/ftphome/cheyangsend/" LOCALDIR_BAK="/ftpho...

weixin_30551947的博客 172

shell脚本远程拉取ftp文件

#####从ftp服务器上的/home/data 到 本地的/home/databackup#### #!/bin/bash ftp -n<<! open 111.205.32.114 user ywguest 123456 binary cd /Guest/Chongqing/Chongqing_Content_one for i in ls /Guest/Chongqing/Cho...

qq_23388925的博客 2255

【实验】oracle sqlload导入接口txt文件数据

导读: 对方的接口是ftp上的txt文件,最终我这边采用sqlload导入到表中 对方数据如下: –创建表 drop table T_NONPON_NE; create table T_NONPON_NE ( NENAME VARCHAR2(255), NEOBJECTID VARCHAR2(255), HOSTNAME VARCHAR2(255), NETYPE VARCHAR2(255),...

萝卜吃鱼914的博客 786

linux shell实现从FTP服务器下载文件

linux shell实现从FTP服务器下载文件

z19861216的博客 1386

shell脚本中FTP命令的简单使用

1.FTP的简单使用说明 1)FTP是文件传输协议(File Transfer Protocal)的简写,主要完成与远程计算机的文件传输。 2)FTP使用格式 ftp[-v][-d][-i][-n][-g][-s:filename][-a][-w:windowsize][computer] ·-v-禁止显示远程服务器相应信息 ·-n-禁止自动登录 ·...

weixin_34061482的博客 844
上一篇: esayui datagrid 列内容超长自动换行
下一篇: 通过sh脚本将数据库数据生成文本文件并上传ftp
小硕同学
博客等级 码龄15年 3粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值