HTTP リクエストの取得 (ファイルのダウンロード): 60000 ミリ秒後に操作がタイムアウトしました親愛なるみんな、
内部サーバー ("http:....") から csv ファイルをインポートしたい。
(JMP14.0、Windows)
通常は非常にうまく機能しましたが、ファイルがどんどん大きくなっています。
(すべてのデータ型を正しく取得するために) ファイル全体をスキャンする必要があるので、それは良い考えだと思いました。
最初にファイルを $TEMP ディレクトリにダウンロードしてからインポートします。
そこで、http リクエストによるファイル ダウンロードを実装しました。
小さいファイルの場合は再びうまく機能しましたが、大きいファイルの場合はタイムアウトになり、
そして、JMPにそのタイムアウトを変更するように指示するオプションが見つかりませんでした.
レジストリを変更できることを除いて、参照してください@降下する次のリンクで:
https://community.jmp.com/message/225323
http:... から「http リクエスト」で大きなファイルをダウンロードするのは正しい方法ですか?
レジストリを変更せずにタイムアウトを変更する別の方法はありますか (私のスクリプトは他のユーザーでも動作する必要があります)?
インポート前のダウンロード (フル スキャンを使用) は、サーバーからの直接インポートよりも高速ですか?
よろしくお願いします、
ゲオルク
Re: HTTP リクエスト get (ファイル ダウンロード): 60000 ミリ秒後に操作がタイムアウトしました迅速な返信をありがとうクレイグ、
あなたのアプローチは一般的に機能し、同様の結果が得られます。
ただし、結果のデータ テーブルでは、データ型が異なります (小数点記号 / . のため)。
あなたの情報は、私が働く方法を見つけるのに役立ちます。
BR、ゲオルグ
Re: HTTP リクエスト get (ファイル ダウンロード): 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 リクエスト get (ファイル ダウンロード): 60000 ミリ秒後に操作がタイムアウトしましたファイルを複数回スキャンする必要がある場合でも(タイプが csv ファイルの「テキスト」の場合)、JMP は open("https...", type) に対してファイルを 1 回だけダウンロードすると確信しています。 テキスト/csvの場合、ファイルはメモリに保持されると思います。これにより、最大サイズが制限されます。他のタイプの場合、ファイルは一時ファイルに保存される場合があります (Excel オープナーは必要たとえば、ディスク ファイルから作業する場合など)。
そのため、ディスク ファイルへの csv のダウンロードが遅くなる可能性があります (おそらくそれほどではありませんが)。 CSV ファイルがメモリ サイズの半分に近づいている場合 (16 GB のマシンでは 8 GB のファイル サイズ... 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" );
@ブライアン_ブーン