Openflow Connector for Kinesis の維持

注釈

このコネクタは、 Snowflakeコネクタ規約 に従うものとします。

このトピックでは、状態の管理とリセットの方法を含む Openflow Connector for Kinesis コネクタを維持する方法について説明します。

コネクタの状態を管理する

Openflow Connector for Kinesis はDynamoDBを使用してコンシューマーアプリケーションの状態を保存します。

コネクタによって作成されたDynamoDBテーブル

コネクタで設定された各Kinesisアプリケーション名に対して、KCLは3つのDynamoDBテーブルを作成します。

<Kinesis Application Name>

ストリーム内の各シャードのチェックポイント指定されたシーケンス番号を格納します。これは、どの記録が処理されたかを追跡します。

<Kinesis Application Name>-CoordinatorState

複数のプロセッサーが同じアプリケーション名を共有している場合に、ワーカー間の調整に使用されます。

<Kinesis Application Name>-WorkerMetricStats

ワーカーが作業割り当て中に使用するメトリックをレポートするために使用します。

これらのテーブル名で、 <Kinesis Application Name> は、コネクタの設定時に提供される値です。

複数のプロセッサーが同じアプリケーション名を使用する場合、それらは協調してストリームからデータを消費し、これらのテーブルを共有します。プロセッサーのアプリケーション名が異なる場合、それぞれが独自のテーブルのセットを作成し、消費された記録を独立して追跡します。

DynamoDBテーブルの詳細については、 AWS Kinesisクライアントライブラリのドキュメント をご参照ください。

コネクタの状態をリセットする

DynamoDBのコネクタの状態が破損するか、一貫性が失われた場合は、リセットする必要があります。コネクタの状態をリセットするには、2つのアプローチがあります。

アプリケーション名を変更してリセットする

コネクタの状態をリセットする最も簡単な方法は、Kinesis Application Nameパラメーターを変更することです。

  1. コネクタを停止します。

  2. コネクタのパラメーターコンテキストに移動します。

  3. Kinesis Application Name パラメーター値を新しい値に変更します。

  4. コネクタを起動します。

コネクタは新しいアプリケーション名を持つDynamoDBテーブルを作成し、 Kinesisの初期ストリーム位置 パラメーターで指定された位置からの記録の消費を開始します。

注釈

IAMポリシーによってDynamoDBが特定のテーブル名にアクセスすることが制限されている場合は、ポリシーを更新して新しいテーブル名へのアクセスを許可する必要があります。IAM権限の構成の詳細については、 Openflow Connector for Kinesis の JSON データ形式を設定する をご参照ください。

DynamoDBテーブルを削除してリセットする

または、既存のDynamoDBテーブルを削除して、状態をリセットできます。

  1. コネクタを停止します。

  2. AWSコンソールまたはAWS CLIを使用して、アプリケーション名に関連付けられた3つのDynamoDBテーブルを削除します。

    • <Kinesis Application Name>

    • <Kinesis Application Name>-CoordinatorState

    • <Kinesis Application Name>-WorkerMetricStats

  3. コネクタを起動します。

コネクタはテーブルを再作成し、 Kinesisの初期ストリーム位置 パラメーターで指定された位置から記録の消費を開始します。

警告

コネクタの状態をリセットすると、コネクタは最初のストリーム位置で指定された位置からの記録を再処理します。Kinesisの初期ストリーム位置 の設定に応じて、重複データがSnowflakeにインジェストされるか、データがまったくインジェストされない可能性があります。