DataSetAPIとStreamAPI

ユーザー04127
編集済: 5月 2023 仲間に相談

データセットAPIとストリームAPIの違いを教えてください。

膨大で変化するデータはストリームAPI推奨のようですが、具体的にどの程度の大きさだと膨大という判断になるのでしょうか。

タグ付けされた:

ベストアンサー

  • Kenny
    Kenny Domo Employee
    回答済み✓

    Stream APIは複数のHTTP通信で一つの更新を行えるのに対してDataset APIは一つの更新を一つのHTTP通信で行わねばなりません。そのため、ここでの大きさはレコード数ではなく一度に送信するデータのバイト数によって判断していただくのが適切です。

    HTTPサーバのデフォルトのタイムアウト値は300秒ですので、お使いの回線がの上り速度が100Mbpsだとした場合に、一度のHTTP通信で送れる最大データ量は
    (100Mbps/8)*300=3.75GB
    となります。

    ここでTCP/IPオーバーヘッドと暗号化オーバーヘッドは考慮していないのと、インターネット回線の遅延などを考えると1-2GBを超える更新を1度に行う必要がある場合はStream APIを使用することをお勧めします。

  • Kenny
    Kenny Domo Employee
    回答済み✓

    以下のような点でStream APIを用いたデータアップロードのほうが開発工数がかかりますが、それ以外に特にデメリットはございません。(USの大手小売り企業もこのAPIを使用してデータ更新をしています)
    ・Stream APIのほうがステップが多い(ストリームを開く・データをアップロードする・コミットするなど)
    ・データの分割および複数のアップロードプロセスの管理が必要

  • Kenny
    Kenny Domo Employee
    回答済み✓

    今後もその限りかはわかりませんが、現状では特にAPIコール数に制限は設けてありません。

答え

  • Kenny
    Kenny Domo Employee
    回答済み✓

    Stream APIは複数のHTTP通信で一つの更新を行えるのに対してDataset APIは一つの更新を一つのHTTP通信で行わねばなりません。そのため、ここでの大きさはレコード数ではなく一度に送信するデータのバイト数によって判断していただくのが適切です。

    HTTPサーバのデフォルトのタイムアウト値は300秒ですので、お使いの回線がの上り速度が100Mbpsだとした場合に、一度のHTTP通信で送れる最大データ量は
    (100Mbps/8)*300=3.75GB
    となります。

    ここでTCP/IPオーバーヘッドと暗号化オーバーヘッドは考慮していないのと、インターネット回線の遅延などを考えると1-2GBを超える更新を1度に行う必要がある場合はStream APIを使用することをお勧めします。

  • ご返答有難うございます。

    StreamAPIを使おうと思うのですが、DataSetAPIと比較して何かデメリットはあるのでしょうか。

  • Kenny
    Kenny Domo Employee
    回答済み✓

    以下のような点でStream APIを用いたデータアップロードのほうが開発工数がかかりますが、それ以外に特にデメリットはございません。(USの大手小売り企業もこのAPIを使用してデータ更新をしています)
    ・Stream APIのほうがステップが多い(ストリームを開く・データをアップロードする・コミットするなど)
    ・データの分割および複数のアップロードプロセスの管理が必要

  • ご返答有難うございます。

    コール数の制限はありますでしょうか。

  • Kenny
    Kenny Domo Employee
    回答済み✓

    今後もその限りかはわかりませんが、現状では特にAPIコール数に制限は設けてありません。