主な機能
- リアルタイムデータ配信: Post が公開された瞬間にストリーミングする最低レイテンシーオプション。
- 精密なフィルタリング: オペレーターを使ったブールクエリで、必要なデータだけを正確にフィルタリング。
- 配信: HTTP/1.1 の chunked transfer encoding を用いた JSON レスポンス。
- ローカルデータセンターサポート: レプリケーションラグを回避してレイテンシーをさらに削減するために、ローカルデータセンターからのみ Post を取得。
Powerstream API は、選択された Enterprise プランで利用可能なプレミアムサービスです。Powerstream へのアクセスや Enterprise サービスについて詳しく知りたい方は、Enterprise リクエストフォームを送信して Sales チームまでお問い合わせください。
Powerstream がお客様のニーズをどのようにサポートできるかについて、喜んでご相談いたします。
クイックスタート
このセクションでは、requests ライブラリを使った Python で PowerStream エンドポイントをすぐに始める方法を紹介します。pip install requests でインストールできます。すべての例は OAuth 2.0 Bearer Token 認証を使用します。YOUR_BEARER_TOKEN を実際のトークンに置き換えてください (安全に保管してください。例: os.getenv('BEARER_TOKEN') 経由)。
各エンドポイントをコードスニペット付きで説明します。以下のインポートを冒頭に含めているものとします:
セットアップ
1. ルールを作成 (POST /rules)
ストリームをフィルタリングするためのルールを追加します。例
2. ルールを削除 (POST /rules)
ルールを ID (推奨) または値で削除します。例
3. ルールを取得 (GET /rules)
すべてのアクティブなルールを取得します。4. PowerStream (GET /stream)
リアルタイムで低レイテンシーの Post 用にストリームに接続します。行ごとに読み取るためにstream=True を使用します。堅牢性のために再接続ロジックを実装します。
例
ローカルデータセンターサポート
レイテンシー最適化のために、Powerstream は接続が確立されたローカルデータセンターで発信または作成された Post のみを取得するオプションを提供します。これにより、レプリケーションラグを回避し、他のデータセンターからの Post に比べて高速に配信できます。これを有効にするには、ストリームエンドポイントにクエリパラメーター?localDcOnly=true を付加します (例: /2/powerstream?localDcOnly=true)。接続しているデータセンターは、ストリームの最初のデータペイロードとレスポンスの HTTP ヘッダーの両方で示されます。
コードでの使用例:
localDcOnly パラメーターが有効になっている場合、ストリームが最初に接続すると、使用されているローカルデータセンターを示す次のレスポンスヘッダーが含まれます:
ヒント: レイテンシーを最適化するために、異なる地理的位置 (例えば米国東海岸のアトランタ付近と米国西海岸のポートランド付近) から接続をセットアップし、それぞれで
localDcOnly=true を有効にします。これにより、それぞれのデータセンターからの Post に高速にアクセスできます。データセンターをまたがったデータを結合するために、ストリームをクライアント側で集約してください。オペレーター
フィルタリング用のルールを設定するには、キーワードとオペレーターを使用できます。Powerstream オペレーター
利用可能なオペレーターの完全なリスト
レスポンス
Powerstream API のペイロード形式は、レガシー GNIP Powertrack API と同じです。JSON レスポンスのサンプルは以下のとおりです:レスポンス例
制限とベストプラクティス
- レート制限: ルール管理は 24 時間あたり 50 リクエスト。ストリームには制限はありません (ただし接続制限が適用されます)。
- 再接続: 切断時は指数バックオフを使用。
- モニタリング:
Connection: keep-aliveヘッダーを使用。
ストリーミングの基礎
ストリーミングデータの消費
ストリーミングクライアントのベストプラクティス
切断の処理
優雅に再接続する
大容量対応
高スループットを処理
リカバリと冗長性
レジリエントなアプリケーションを構築