BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
jim_toby
Quartz | Level 8

So my main objective is to load up a sas table into netezza. However, I am getting the error: Error terminating Netezza load: Communication link failure.

 

 

I was told here: https://communities.sas.com/t5/SAS-Data-Management/Loading-SAS-To-Netezza-Communication-Link-Failure... that this error could be that my table may be too big. I tried distributing on certain column names and on random but I still get the error.

 

The next plan is to split the table into different smaller tables and than inserting each table into a single table in netezza. The problem is that copying an existing table (even if it is just one record) takes around 30 minutes. Here is my code:

 

LIBNAME ECLIB000 "\path\to\SASTable";
proc sql;
create table ECLIB000.TestTable as
select * from ECLIB000.MySasTable
where ID = 'R988664335710II';
quit;

So there is only one row with the specified ID. The table I need to copy from has over 34 million rows and 50 columns. I'm worried that if copying one records takes this long, how long would it take to copy half of the table? Would it take the same amount of time since it needs to iterate over each row? Is there a better way in accomplishing what I am trying to accomplish? For instance in the link I sent above, it was suggested that I use SAS views? Is that better in order to load the data into Netezza?

 

Thanks in advance!

1 ACCEPTED SOLUTION

Accepted Solutions
andreas_lds
Jade | Level 19

If ID is not indexed all rows have to be read, which is most likely the reason for the amount of time required to extract the observation. Creating an index on a 34 million row dataset is time-consuming, too, but could speed up extracting rows.

 

You should have a look at the log, too. Check real-time and cpu-time of that proc sql step: if real-time is much higher than cpu-time, the sas jobs is waiting to get the data, this could be caused by slow hard-disks.

 

View solution in original post

4 REPLIES 4
VDD
Ammonite | Level 13 VDD
Ammonite | Level 13

Is ID indexed?

 

andreas_lds
Jade | Level 19

If ID is not indexed all rows have to be read, which is most likely the reason for the amount of time required to extract the observation. Creating an index on a 34 million row dataset is time-consuming, too, but could speed up extracting rows.

 

You should have a look at the log, too. Check real-time and cpu-time of that proc sql step: if real-time is much higher than cpu-time, the sas jobs is waiting to get the data, this could be caused by slow hard-disks.

 

jim_toby
Quartz | Level 8

@andreas_lds I don't think ID is indexed. Can you show me how to index it? Would it be like this:

 

proc sql;
   create index ID
      on MySasTable(ID);

Also, does it only make sense to index columns with unique values, or can I index a value that may split the table in half like Identifier column that stores M for male of F for female? 

andreas_lds
Jade | Level 19

I don't use proc sql for such tasks, here is an example using proc datasets:

 

data work.classclone;
   set sashelp.class;
run;

proc datasets library=work noprint;
   modify classclone;
      index create Age;
quit;

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to connect to databases in SAS Viya

Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 4 replies
  • 2605 views
  • 1 like
  • 3 in conversation