PythonのdatarobotクライアントからAIカタログへ大容量のデータをアップロードする際に`socket.timeout`のエラーで失敗してしまいます。
こちら解決方法ありますでしょうか?
よろしくお願いします。
Python 3.8.3
datarobot 2.21.1
>>> dataset = dr.Dataset.create_from_file(file_path='./hoge.csv')
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 426, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 421, in _make_request
httplib_response = conn.getresponse()
File "/usr/local/lib/python3.8/http/client.py", line 1332, in getresponse
response.begin()
File "/usr/local/lib/python3.8/http/client.py", line 303, in begin
version, status, reason = self._read_status()
File "/usr/local/lib/python3.8/http/client.py", line 264, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/local/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
File "/usr/local/lib/python3.8/ssl.py", line 1241, in recv_into
return self.read(nbytes, buffer)
File "/usr/local/lib/python3.8/ssl.py", line 1099, in read
return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 724, in urlopen
retries = retries.increment(
File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py", line 403, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/usr/local/lib/python3.8/site-packages/urllib3/packages/six.py", line 735, in reraise
raise value
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
httplib_response = self._make_request(
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 428, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 335, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='app.datarobot.com', port=443): Read timed out. (read timeout=60)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.8/site-packages/datarobot/models/dataset.py", line 136, in create_from_file
response = cls._client.build_request_with_file(
File "/usr/local/lib/python3.8/site-packages/datarobot/rest.py", line 208, in build_request_with_file
return self.request(method, url, headers=headers, data=encoder,
File "/usr/local/lib/python3.8/site-packages/datarobot/rest.py", line 106, in request
response = super(RESTClientObject, self).request(method, url, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 529, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.datarobot.com', port=443): Read timed out. (read timeout=60)
解決済! 解決策の投稿を見る。
ご連絡ありがとうございます。
DataRobotインフラエンジニアの妹尾です。
1>小さいファイルに変えてUploadする場合は問題がないですか?
例:kickcars-sample-200.csv (添付)
2>下記のファイルサイズはどのくらいですか?
./hoge.csv
3>TimeOutエラーでアップロードがうまくいっていないようですが、
A>お客様の環境は弊社Cloud向けで今回のエラーになっている?
B>お客様Networkの実測値はさほど低くないにもかかわらず複数回、今回の現象がみられる?
1、2、3うかがった上ですが、ヒアリング上で問題がないようでしたら、別途お客様に弊社サポート窓口をご案内させていただきますので、そちらにお客様のアカウント情報とともにお問い合わせいただき、可能なWorkAroundを検討という流れでご案内させていただけばと思います。
よろしくお願いいたいします。
妹尾さん、ご返信ありがとうございます!
1>小さいファイルに変えてUploadする場合は問題がないですか?
問題ないです。400GBくらいのファイルではアップロード成功していました。
おそらく1GBくらいでも成功していたと思われる履歴があったので1GBくらいまではアップロード成功していたと思います(こちら正確に確認できていないのですが,)
2>下記のファイルサイズはどのくらいですか?
1.93GBになります
3>TimeOutエラーでアップロードがうまくいっていないようですが、
A→弊社Cloud向けでエラーになっております
B→はい。容量が小さいファイルと大きいファイルとの閾値は分かっていないのですが、大きいファイルでは必ずTimeOutエラーになっております。
青色LEDさん
ご情報ありがとうございます。
少し切り分けが必要なようですので、代理店様窓口にお問い合わせいただき
弊社サポートチームで対応させていただければと存じます。
今後ともよろしくお願い申し上げます。
妹尾
もしまだ解決されていない状況でしたら、read_timeoutオプションを設定して解決するかご確認いただけますでしょうか?
dr.Dataset.create_from_file(file_path='xxxxxxx',
read_timeout=2000
)
こちらシグマクシスさんに対応してもらっております。
今後ともよろしくお願いいたします。
ご回答ありがとうございます。
こちらの方法についてシグマクシスさん経由でご教示いただきました。
こちらのオプションを使用してみたところ下記のエラーが出てしまいます。
TypeError: create_from_file() got an unexpected keyword argument ‘read_timeout’
datarobot 2.21.1を使用しております。