将文件加载到Teradata

用户名

每天,我目前必须:

  1. 下载50个文件,40个为.csv(逗号分隔值)格式,10个为.txt。
  2. 在每个.csv文件中,有5列(分别称为B,A,D,C,E),在.txt文件中有5列不同的列(称为G,H,I,J,K)。
  3. 然后,我必须在Excel中手动打开,并为40个文件中的每个文件将.csv列重新排列为(A,B,C,D,E)。.txt文件已经是必需的格式。
  4. 然后,我在UNIX上使用BTEQ将所有这些加载到15个Teradata表中

大约有3000行数据

我已经在stackoverflow和我的尝试和错误的帮助下创建了VBA,它可以:

  1. 下载全部50个文件,
  2. 为csv文件正确重新排列列,
  3. 然后在包含.csv文件的“插入DBNAME.TABLENAME值(A,B,C,D,E,F)”和“插入DBNAME.TABLENAME值(G,H,I,J, .txt文件中的“ K)”,将所有50个文件中的实际值从A替换为K
  4. 创建与teradata的ODBC连接,以遍历所有3000条创建的语句。

它可以工作,但是速度很慢,因为它会循环遍历约3000行。由于Teradata数据库始终被大量人员访问,因此每次发生错误时,我的insert语句都必须转到队列的末尾,从而增加了完成该过程所需的时间。

是否可以创建将批量加载50个文件的VBA,而不是我当前的方法来创建3000个insert语句并循环?我已经读过有关使用“ Jet Provider”导入Teradata的过程,但对此我知之甚少,到目前为止,我的努力失败了。

任何人都知道这种方法或任何其他更快的方法?我想避免BTEQ,MLOAD以及不能FLOAD(因为我加载到的表不是空的)。谢谢大家。

圭多·莱德斯

无论有多少用户,Teradata都能轻松处理大量插入。但是,Teradata在插入小刀片时非常不好。您需要将它们捆绑成一大堆,然后一次性加载。Teradata(mload)提供了一些工具。然后,您将获得最佳性能。

另一种选择是,也许速度较慢,请确保在SQL中使用绑定变量而不是显式值。解析可能需要很多时间。您可能需要考虑使用诸如Kettle-ETL工具Invantive Control-Excel加载项之类的工具(警告,我在那儿工作)从Excel加载到Teradata中。它们还可以并行加载,从而提高性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章