SAS 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;

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

libname myid teradata bulkload=yes 
authdomain=IDWPRD 
server=IDWPRD 
database=myid 
mode=teradata 
connection=global;
data tera.want;
set have;
run;

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

这通常是不良做法的结果。 如果 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 表不允许行级重复,并在插入和加载时间之前检查每一行。

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

最新更新