sas teradata快速加载问题

时间:2018-08-13 19:15:43

标签: sas teradata

是否有将数据加载到Teradata的快速方法?我需要将350,000个帐号加载到Teradata,并且它已经运行了约4.5个小时。

我只是在使用数据步骤。下面是我的代码。谢谢

libname myid  teradata authdomain=IDWPRD server=IDWPRD database=myid mode=teradata connection=global;

proc delete data=myid.tera1;
run;

proc sql; 
create table out.REQ_1_1_05l as 
select distinct ACCOUNT_NB as ACCT_NB
FROM OUT.REQ_1_1_05;
quit;

data myid.tera1;
set OUT.REQ_1_1_05l ;
run;

3 个答案:

答案 0 :(得分:4)

在您的libname语句中使用bulkload=yes选项:

libname myid  teradata authdomain=IDWPRD server=IDWPRD database=myid mode=teradata connection=global bulkload=yes;

data tera.want;
     set have;
run;

特定于Teradata的其他性能信息可以在这里找到: http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001405937.htm

答案 1 :(得分:1)

这通常是错误做法的结果。如果350,000条记录花费了几分钟甚至没有大容量加载实用程序,那么这也令我感到惊讶(除非表很宽)。

在Teradata中,表行分布在访问模块处理器(AMP)上。行分布取决于定义的主索引列的唯一性。主索引列越独特,数据分布越好,反之亦然。 AMP的表行分配不当会导致数据偏斜。

以下查询将创建以第一列为主索引的Teradata表。如果第一列几乎没有不同的值,则会创建一个倾斜的表。如前所述,偏斜表的影响会导致空间浪费,并且可能需要很长时间才能完成查询。

  data myid.tera1;
 set OUT.REQ_1_1_05l ;
run;                                                                                                                                            

数据集选项dbcreate_table_opts可以显式定义主索引。 dbcreate_table_opts =数据集选项需要一个关键字主索引,后跟括号中的列名。

 data  myid.tera1
    (dbcreate_table_opts= 'primary index(yourcolumn)');  
  set OUT.REQ_1_1_05l; 
 run;

请选择适当的唯一主索引,这在Teradata中通常是最重要的。

请查看下面的论文,该论文解释了SAS程序员在使用Teradata时可能遇到的常见问题。

https://www.lexjansen.com/mwsug/2016/SA/MWSUG-2016-SA11.pdf

您还可以使用快速加载实用程序,如下所示。快速加载确实可以批量加载,因此可以非常快速地将数据从sas迁移到Teradata。

    data  myid.tera1
    (fastload =yes dbcreate_table_opts= 'primary index(yourcolumn)');  
  set OUT.REQ_1_1_05l; 
 run;

如果您想了解SAS和Teradata数据移动的所有知识,请查阅Jeff Bailey的论文。

https://support.sas.com/.../EffectivelyMovingSASDataintoTeradata.pdf

最后检查表myid.tera1是否设置了表,该表不允许重复,但这可能不是主要因素。如果您使用Teradata sql助手来显示表,它将显示是set表还是multiset表。设置表不允许行级重复,并且在插入之前以及加载时间之前检查每一行。

答案 2 :(得分:0)

dbcommit=选项添加到您的libname语句中。默认值为1条记录,即每条记录都会提交。试一试此值,以找到适合您配置的最佳设置。

libname myid teradata authdomain=IDWPRD server=IDWPRD database=myid mode=teradata connection=global dbcommit=5000 ;

https://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001371531.htm