キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
Qiitaクリスマスアドベントカレンダー実施中

PythonからAIカタログへのアップロードで失敗する

Highlighted
イメージセンサー

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)

 

 

ラベル(2)
0 件の賞賛
7件の返信7
Highlighted
データロボット従業員
データロボット従業員

ご連絡ありがとうございます。

DataRobotインフラエンジニアの妹尾です。

1>小さいファイルに変えてUploadする場合は問題がないですか?

例:kickcars-sample-200.csv  (添付)

2>下記のファイルサイズはどのくらいですか?

./hoge.csv

3>TimeOutエラーでアップロードがうまくいっていないようですが、

  A>お客様の環境は弊社Cloud向けで今回のエラーになっている?

  B>お客様Networkの実測値はさほど低くないにもかかわらず複数回、今回の現象がみられる?

 

1、2、3うかがった上ですが、ヒアリング上で問題がないようでしたら、別途お客様に弊社サポート窓口をご案内させていただきますので、そちらにお客様のアカウント情報とともにお問い合わせいただき、可能なWorkAroundを検討という流れでご案内させていただけばと思います。

よろしくお願いいたいします。

0 件の賞賛
Highlighted
イメージセンサー

妹尾さん、ご返信ありがとうございます!

 

1>小さいファイルに変えてUploadする場合は問題がないですか?

問題ないです。400GBくらいのファイルではアップロード成功していました。

おそらく1GBくらいでも成功していたと思われる履歴があったので1GBくらいまではアップロード成功していたと思います(こちら正確に確認できていないのですが,)

 

2>下記のファイルサイズはどのくらいですか?

1.93GBになります

 

3>TimeOutエラーでアップロードがうまくいっていないようですが、

  A→弊社Cloud向けでエラーになっております

  B→はい。容量が小さいファイルと大きいファイルとの閾値は分かっていないのですが、大きいファイルでは必ずTimeOutエラーになっております。

 

0 件の賞賛
Highlighted
データロボット従業員
データロボット従業員

青色LEDさん

 

ご情報ありがとうございます。

少し切り分けが必要なようですので、代理店様窓口にお問い合わせいただき

弊社サポートチームで対応させていただければと存じます。

 

今後ともよろしくお願い申し上げます。

妹尾

0 件の賞賛
Highlighted
データロボット従業員
データロボット従業員

@h_ono1117 

もしまだ解決されていない状況でしたら、read_timeoutオプションを設定して解決するかご確認いただけますでしょうか?

dr.Dataset.create_from_file(file_path='xxxxxxx',
                                              read_timeout=2000
                                              )

0 件の賞賛
Highlighted
イメージセンサー

こちらシグマクシスさんに対応してもらっております。

今後ともよろしくお願いいたします。

0 件の賞賛
Highlighted
イメージセンサー

@satoshi_yamada 

ご回答ありがとうございます。

こちらの方法についてシグマクシスさん経由でご教示いただきました。

 

こちらのオプションを使用してみたところ下記のエラーが出てしまいます。

TypeError: create_from_file() got an unexpected keyword argument ‘read_timeout’

h_ono1117_0-1600312368278.png

datarobot 2.21.1を使用しております。

 

 

0 件の賞賛
Highlighted
イメージセンサー

@satoshi_yamada 

こちら2.22での話とのことだったのでライブラリをアップデートして試してみます。

ご回答ありがとうございました。