同期 API#
同期の開始には apps:manage が必要です。進捗ストリームの読み取りには data:read が必要です。
同期を開始#
POST/sources/{id}/sync
ソースの同期リクエストを受け付け、非同期リソースを返します。受付はリクエストの記録を意味し、テーブルのコミットが完了したことを意味しません。
一時停止中または削除済みのソースは拒否されます。ソースですでに処理が進行中の場合は、重複する実行を開始せず、レスポンスで競合を通知します。
レスポンスを受信できずに再試行する場合は、Idempotency-Key を使用してください。キーは、1 つのソースとリクエスト本文に紐づけてください。
進捗をストリーミング#
GET/sources/{id}/sync/stream
Server-Sent Events ストリームは、進捗と永続化された同期結果を通知します。接続が閉じられた場合は、Last-Event-ID を使って再接続してください。再接続後は、ソースリソースの最新の同期を、最終的な判断の根拠にしてください。
イベントには、テーブル名、フェーズ、完了数と合計数、終了結果が含まれる場合があります。クライアントは、追加されたイベントフィールドを無視する必要があります。
完了後#
成功を示す終了イベントは、その実行のテーブルのコミットが完了したことを意味します。関連するテーブルが異なる時刻に完了する場合があるため、データの鮮度が重要な自動化では、終了状態になった後、コミットされた _synced_at の値またはカタログを確認してください。