HTTP 요청 가져오기(파일 다운로드): 60000밀리초 후에 작업이 시간 초과되었습니다.여러분 모두에게,
내부 서버("http:....")에서 csv 파일을 가져오고 싶습니다.
(JMP 14.0, 윈도우즈)
일반적으로 꽤 잘 작동했지만 파일이 점점 커지고 있습니다.
(모든 데이터 유형을 올바르게 가져오기 위해) 전체 파일을 스캔해야 하므로 좋은 생각이라고 생각했습니다.
먼저 파일을 $TEMP 디렉토리에 다운로드한 다음 가져오는 것입니다.
그래서 http 요청으로 파일 다운로드를 구현했습니다.
더 작은 파일의 경우 다시 잘 작동했지만 더 큰 파일의 경우 시간 초과가 발생합니다.
그리고 JMP에게 해당 제한 시간을 변경하라고 지시할 수 있는 옵션을 찾지 못했습니다.
레지스트리를 변경할 수 있다는 점을 제외하고는 다음을 참조하십시오. @랜든 다음 링크에서:
https://community.jmp.com/message/225323
"http 요청"을 통해 http:...에서 대용량 파일을 다운로드하는 것이 올바른 방법입니까?
레지스트리를 변경하지 않고 시간 초과를 수정하는 다른 방법이 있습니까(내 스크립트는 다른 사용자에서도 작동해야 함)?
가져오기 전에 다운로드(전체 스캔 사용)하는 것이 서버에서 직접 가져오는 것보다 빠릅니까?
감사합니다.
게오르크
Re: HTTP 요청 가져오기(파일 다운로드): 60000밀리초 후에 작업 시간이 초과되었습니다.빠른 답장을 보내 주셔서 감사합니다.
귀하의 접근 방식은 일반적으로 작동하고 유사한 결과를 제공합니다.
그러나 결과 데이터 테이블에서 데이터 유형은 다릅니다(십진수 구분 기호 , / .로 인해).
따라서 귀하의 정보는 제가 일하는 방법을 찾는 데 도움이 됩니다.
BR, 게오르그
Re: HTTP 요청 가져오기(파일 다운로드): 60000밀리초 후에 작업 시간이 초과되었습니다.HTTP 요청에 시간 초과 메시지가 있습니다.기본값은 60초입니다.
Names Default To Here( 1 );
request = New HTTP Request(
Url( "https://community.jmp.com/html/assets/community-icons/community-icon-mastering.png" ),
Method( "GET" ),
Timeout( 120 )
);
bytes = request << Send;
img = Open( bytes, jpg );
obj = New Window( "Mastering JMP", img );
Re: HTTP 요청 가져오기(파일 다운로드): 60000밀리초 후에 작업 시간이 초과되었습니다.파일을 두 번 이상 스캔해야 하는 경우에도(csv 파일의 경우 type이 "text"인 경우) JMP는 open("https...", type)에 대해 파일을 한 번만 다운로드한다고 확신합니다. 파일이 최대 크기를 제한하는 text/csv의 경우 메모리에 보관된다고 생각합니다. 다른 유형의 경우 파일이 임시 파일에 저장될 수 있습니다(엑셀 오프너는 필요 예를 들어 디스크 파일에서 작업하려면).
따라서 csv를 디스크 파일로 다운로드하는 것이 더 느릴 수 있습니다(아마 눈에 띄는 정도는 아닐 것입니다). CSV 파일이 메모리 크기의 절반에 근접하면(16GB 시스템에서 8GB 파일 크기...JMP 테이블에도 메모리가 필요합니다!) 먼저 다운로드해야 할 수 있습니다.
시간 초과가 발생한 위치는 확실하지 않지만 다운로드에 대한 다른 접근 방식은 다음과 같습니다.
// here's a way to download a URL to a local file
filename = Save Text File(
"$temp/sample.csv", // extension is saved as CSV
Load Text File(
"https://data.cityofnewyork.us/api/views/kku6-nxdu/rows.csv?accessType=DOWNLOAD",
blob
)
);
dt1 = Open( filename ); // "text" not needed because extension is CSV
// here's a way to open directly
dt2 = Open(
"https://data.cityofnewyork.us/api/views/kku6-nxdu/rows.csv?accessType=DOWNLOAD",
"text" // here the extension might or might not be CSV, use "text" to make sure
);
// verify both ways make the same table
compare = dt1 << Compare Data Tables(
Compare with( dt2 ),
Compare Data,
Show Difference Summary( 0 ),
Show Difference Plot( 0 )
);
If( compare << Are Data Different,
Write( "\!nwhy are they different?" ),
Write( "\!nResults identical" )
);
Show( N Rows( dt1 ), N Cols( dt1 ), N Rows( dt2 ), N Cols( dt2 ) );
// clean up
compare << closewindow;
Close( dt1, "nosave" );
Close( dt2, "nosave" );
@bryan_boone