我们的组织正在从PADB迁移到Vertica。 我们有一些使用SAS的分析师。 我转换了他们的工具和宏,以便能够从PADB到Vertica。 但是,当涉及到从SAS到Vertica的数据加载时,性能与以前不一样。
我看到执行时间从1-2分钟变成了2-3个小时。
我正在使用ODBC,因为我无法使用其他方法,如:
proc sql exec;
connect to odbc (datasrc=EDW authdomain=VERTICA);
execute(COPY CRM_COMMON.new_load_test FROM local
'/data/saswork/SAS_work765E0000405D_cammsaim238/SAS_workB45C0000405D_cammsaim238/test1.csv' PARSER fcsvparser() ) by odbc;
disconnect from odbc;
quit;
它不起作用,我收到一条注释:注意:未找到/修改数据。
我尝试使用proc追加和proc数据集,而proc复制一切都很缓慢。 我尝试使用批量加载,但不可用。
关于我可以做什么或尝试加快数据传输的任何想法? 让我知道! -------更新---- 我尝试了其他各种方法,但仍然出现错误,当我检查日志时,我的数据中的空值似乎存在问题...知道吗?
proc sql exec;
/* Loading converted csv file to ParAccel */ connect to odbc (datasrc=EDW authdomain=VERTICA); execute(COPY CRM_COMMON.new_load_test FROM local '/data/saswork/SAS_work765E0000405D_cammsaim238/SAS_workB45C0000405D_cammsaim238/test1.csv' DELIMITER ',' ) by odbc;
disconnect from odbc;
quit;
答案 0 :(得分:0)
使用此方法来加载数据:
我使用错误选项中止来获取有关错误的更多详细信息,还使用拒绝选项来查看失败的记录
总的来说,问题在于确切地带有时间戳的空值 我还没有找到一种适合所有解决方案的解决方案,可以在不考虑null和格式的情况下加载任何类型的数据,但是我设法比使用ODBC更快地加载数据
我尝试了尾随nullcols选项,但是使用null值没有帮助
proc sql exec;
/* Loading converted csv file to ParAccel */
connect to odbc (datasrc=EDW authdomain=VERTICA);
execute(COPY CRM_COMMON.test_low FROM local '/data/saswork/SAS_work765E0000405D_cammsaim238/SAS_workB45C0000405D_cammsaim238/test_low.csv' DELIMITER ',' abort on error
rejected data '/data/saswork/SAS_work765E0000405D_cammsaim238/SAS_workB45C0000405D_cammsaim238/reject_low.csv' ) by odbc;
disconnect from odbc;
quit;