ストリームのオブジェクトのバックフィルを管理する

データストリームのストリームでは、過去のデータをバックフィルすることや、進行中の変更を宛先にストリーミングすることが可能です。ストリームの作成の一環として、ストリームのソース データベースに関する情報を構成しました。

[バックフィル履歴データ] チェックボックスをオンにした場合、Datastream はデータへの変更に加えて、既存のデータをすべてソースから宛先にストリーミングします。

このチェックボックスをオンにしなかった場合、Datastream はデータへの変更のみをストリーミングします。Datastream ですべてのソースのスナップショットをソースから宛先にストリーミングするには、そのデータを含むオブジェクトのバックフィルを開始する必要があります。オブジェクトは、データベース スキーマ、テーブル、列の形式で存在します。

オブジェクトのバックフィルを開始するもう一つの理由は、データがソースと宛先の間で同期していない場合です。たとえば、ユーザーが誤って宛先のデータを削除してしまうと、そのデータが失われています。この場合、オブジェクトのバックフィルを開始することが「リセットの仕組み」として機能します。これは、すべてのデータが一度に宛先へストリーミングされるためです。その結果、ソースと宛先の間でデータが同期します。

オブジェクトのバックフィルを開始した後は、そのバックフィルを停止できます。上記の例では、ユーザーがデータベース スキーマを変更し、スキーマまたはデータが破損しています。このスキーマやデータが宛先にストリーミングされないようにするには、オブジェクトのバックフィルを停止します。

また、ロード バランシングのためにオブジェクトのバックフィルを停止することもできます。データストリームは、複数のバックフィルを並行して実行できます。これにより、ソースの負荷が増加する可能性があります。負荷が著しく大きい場合は、オブジェクトのバックフィルを停止してから、オブジェクトのバックフィルを 1 つずつ開始します。

オブジェクトのステータス

オブジェクトのバックフィルの開始と停止のライフサイクルのさまざまなステータスには次のものがあります。

  • ステータスなし(UI では - として表示): オブジェクトがこのステータスになる理由は次のとおりです。
    • ストリームはまだ開始していません。
    • [バックフィル履歴データ] チェックボックスがオンになっていません(そのため、バックフィルが手動として定義されています)。
    • このオブジェクトは、自動的にバックフィルから明示的に除外されています。
    • ストリームは、将来のテーブルが含まれるように構成されています。この場合、新しいテーブルがソースに追加されても、自動バックフィル タスクは作成されません(通常、新しいテーブルにはバックフィルする「過去」のデータがないためです)。

      詳細については、ストリームのソース データベースに関する情報の構成をご覧ください。

  • Pending: オブジェクトのバックフィルはまだ開始されていません。
  • Active: オブジェクトのバックフィルが進行中です。
  • Completed: オブジェクトのバックフィルが完了しました。
  • Stopped: オブジェクトのバックフィルが停止しています。オブジェクトのバックフィルが再度開始されると、Datastream はオブジェクトに関連付けられている既存のデータをすべてソースから宛先にストリーミングします。
  • Failed: オブジェクトのバックフィルが失敗したため、バックフィルを再度開始する必要があります。

バックフィルを開始

  1. Google Cloud Console の [ストリーム] ページに移動します。

    [ストリーム] ページに移動

  2. バックフィルを開始するオブジェクトを含むストリームをクリックします。

  3. [オブジェクト] タブをクリックします。

  4. バックフィルを開始するオブジェクトのチェックボックスをオンにします。

  5. [バックフィルを開始] をクリックします。

  6. オブジェクトを 1 つだけ選択した場合は、ダイアログで [オブジェクトのバックフィルを開始] をクリックします。複数のオブジェクトを選択した場合は、[オブジェクトのバックフィルを開始] をクリックします。

    Datastream が選択したオブジェクトのバックフィルを開始し、各オブジェクトのステータスが Pending から Active に変わり、最終的に Completed に変わります。オブジェクトのステータスが Completed の場合、Datastream はオブジェクトのすべてのデータを読み取りましたが、データは宛先にまだ読み込まれていない可能性があります。

バックフィルを停止

  1. Google Cloud Console の [ストリーム] ページに移動します。

    [ストリーム] ページに移動

  2. バックフィルを停止するオブジェクトを含むストリームをクリックします。

  3. [オブジェクト] タブをクリックします。

  4. バックフィルを停止するオブジェクトのチェックボックスをオンにします。

  5. [バックフィルを停止] をクリックします。

  6. オブジェクトを 1 つだけ選択した場合は、ダイアログ ボックスで [オブジェクトのバックフィルを停止] をクリックします。複数のオブジェクトを選択した場合は、[オブジェクトのバックフィルを停止] をクリックします。

    Datastream が選択したオブジェクトのバックフィルを停止し、各オブジェクトのステータスが Stopped に変わります。

    オブジェクトがこのステータスになると、オブジェクトのバックフィルは停止しています。オブジェクトのバックフィルが再度開始されると、Datastream はオブジェクトに関連付けられている既存のデータをすべてソースから宛先にストリーミングします。

次のステップ