Csv QlikView-从远程服务器加载特定文件
我一直在努力解决这个问题,但现在我不得不请求你的帮助 我在本地PC上有一个QVD文件,名为server001_CPU.QVD,在远程服务器上,我与许多类型的文件共享文件夹。还有一些文件名为server001_CPU_YYYYMMDD.csv(例如server001_CPU_20140806.csv),它们每天生成,并且与本地qvd文件具有相同的结构。他们有专栏日期。我需要的是(在加载脚本中)检查本地文件中的最后一个日期,并加载从那天开始到今天的远程文件,然后将其连接在一起。大概是这样的:Csv QlikView-从远程服务器加载特定文件,csv,qlikview,Csv,Qlikview,我一直在努力解决这个问题,但现在我不得不请求你的帮助 我在本地PC上有一个QVD文件,名为server001_CPU.QVD,在远程服务器上,我与许多类型的文件共享文件夹。还有一些文件名为server001_CPU_YYYYMMDD.csv(例如server001_CPU_20140806.csv),它们每天生成,并且与本地qvd文件具有相同的结构。他们有专栏日期。我需要的是(在加载脚本中)检查本地文件中的最后一个日期,并加载从那天开始到今天的远程文件,然后将其连接在一起。大概是这样的: CPU
CPU:
LOAD * FROM server001_CPU.qvd
LET vMAX = Max(DATE) FROM CPU
DO WHILE vMAX <= Today()
CPU:
LOAD * FROM serverpath/server001_CPU_$(vMAX).csv
LOOP
CPU:
从server001\u CPU.qvd加载*
让vMAX=来自CPU的最大(日期)
当vMAX时执行,您可以尝试下面的脚本片段,该脚本片段可以执行您需要的操作
这样做的目的是首先打开现有数据集(在QVD中),然后找到最长日期并将其存储在表MaxCPUDate
中。然后将该最大值读入变量,并删除该表
然后从今天的日期中减去该“Max Date”值,以确定加载单个文件时要执行的循环数。循环变量被添加到“Max Date”值上,以创建要加载的文件名
CPU:
LOAD
*
FROM server001_CPU.qvd (qvd);
MaxCPUDate:
LOAD DISTINCT
max(DATE) as MaxDate
RESIDENT CPU;
LET vMaxCPUDate = peek('MaxDate',-1,'MaxCPUDate');
DROP TABLE MaxCPUDate;
FOR vFileNum = 0 TO (num(Today()) - $(vMaxCPUDate))
LET Filename ='serverpath/server001_CPU_' & date($(vMaxCPUDate) + $(vFileNum),'YYYYMMDD') & '.csv';
CONCATENATE (CPU)
LOAD
*
FROM $(Filename) (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
NEXT