DataSetAPIとStreamAPI

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

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

Tagged:

Best Answers

  • Kenny
    Accepted Answer

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

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

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

  • Kenny
    Accepted Answer

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

  • Kenny
    Accepted Answer

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

Answers

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

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

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

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