tKafkaInputの標準プロパティ - Cloud - 8.0

Kafka

Version
Cloud
8.0
Language
日本語 (日本)
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Open Studio for Big Data
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > メッセージングコンポーネント > Kafka
データガバナンス > サードパーティーシステム > メッセージングコンポーネント > Kafka
データクオリティとプレパレーション > サードパーティーシステム > メッセージングコンポーネント > Kafka

このプロパティはStandardジョブフレームワークで実行されているtKafkaInputを設定するために使います。

[Standard] (標準) tKafkaInputコンポーネントは、インターネットファミリーに属しています。

このフレームワーク内のコンポーネントは、ビッグデータ対応のTalend 製品すべて、およびTalend Data Fabricで利用できます。

基本設定

[Schema] (スキーマ)[Edit schema] (スキーマを編集)

スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。

このコンポーネントのスキーマは読み取り専用です。メッセージプロデューサーから送信されたメッセージを保管します。

出力タイプ

ドロップダウンリストから次のコンポーネントに送信するデータの型を選択します。
  • String: コンポーネントは文字列にシリアライズされたメッセージを送信します。
  • byte[]: コンポーネントはシリアライズされたメッセージをバイト配列に送信します。
  • ConsumerRecord: コンポーネントは、キー/値のペアとしてシリアライズされたメッセージを送信します。メッセージキーとメッセージ値はAvroとしてシリアライズできます。

tKafkaInputはKafka byte[]メッセージをジョブが処理できる文字列に自動変換できるので、通常はStringの使用が推奨されます。ただし、Protobufなど、tKafkaInputで認識できないKafkaメッセージ形式の場合は、byteを選択し、次にtJavaRowなどのカスタムコードコンポーネントを使って、同じジョブの他のコンポーネントがこれらのメッセージを処理できるようにメッセージを文字列にデシリアライズできます。

[Use an existing connection] (既存の接続を使用)

定義済みの接続の詳細を再利用するには、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストで目的の接続コンポーネントを選択します。

[Version] (バージョン)

使うKafkaクラスターのバージョンを選択します。

[Zookeeper quorum list] (Zookeeperクォーラムリスト)

使うKafkaクラスターのZookeeperサービスのアドレスを入力します。

このアドレスの形式はhostname:portです。この情報は、このKafkaクラスター内のホスティングノードの名前とポートです。

複数のアドレスを指定する必要がある場合は、コンマ(,)で区切ります。

このフィールドはKafka 0.8.2.0でのみ使えます。

[Broker list] (ブローカーリスト)

使用するKafkaクラスターのブローカーノードのアドレスを入力します。

このアドレスの形式はhostname:portです。この情報は、このKafkaクラスター内のホスティングノードの名前とポートです。

複数のアドレスを指定する必要がある場合は、コンマ(,)で区切ります。

このフィールドはKafka 0.9.0.1以降で使えます。

[Topic name] (トピック名)

tKafkaInputがメッセージフィードを受け取るトピック名を入力します。

[Consumer group ID] (コンシューマーグループID)

現在のコンシューマー(tKafkaInputコンポーネント)が属するようにしたいコンシューマーグループの名前を入力します。

この時点でこのコンシューマーグループが存在していない場合、実行時に作成されます。

[Reset offsets on consumer group] (コンシューマーグループのオフセットをリセット)

あるコンシューマーグループを、メッセージをまったく消費していない新しいグループとして処理できるように、このコンシューマーグループ用に保存されているオフセットをクリアする場合は、このチェックボックスをオンにします。

[New consumer group starts from] (新規コンシューマーグループの開始点)

消費されるトピックメッセージの開始ポイントを選択します。

Kafkaでは、メッセージの増加するID番号はoffsetと呼ばれます。新しいコンシューマーグループが開始すると、このリストから[beginning] (最初から)を選択してトピック全体のうちで最も古いメッセージから消費を開始するか、[latest] (最後から)を選択して新しいメッセージを待機できます。

コンシューマグループは、オフセットコミットされた開始のメッセージのみを考慮します。

各コンシューマーグループには、消費したメッセージの位置を記憶するための独自のカウンターがあります。このため、コンシューマーグループが特定のトピックのメッセージの消費を開始すると、コンシューマグループはトピック全体ではなく、このグループが消費を停止する位置に関してのみ最新のメッセージを認識します。この原則に基づいて、次の動作が予想されます。

  • 既存のコンシューマグループを再開する場合、このオプションは、コミットされた開始点がまだない場合のみ、このコンシューマグループの開始点を決定します。それ以外の場合、このコンシューマグループは、このコミットされた開始点から開始します。たとえば、トピックに100のメッセージがあるとします。既存のコンシューマグループが50のメッセージを正しく処理し、それらのオフセットをコミットした場合、同じコンシューマグループはオフセット51から再開します。

  • 新しいコンシューマーグループを作成するか、既存のコンシューマーグループをリセットした場合(どちらの場合も、このグループがこのトピックのメッセージを消費していないことを意味します)、最新のグループから開始すると、この新しいグループが開始し、オフセット101を待機します。

[Auto-commit offsets] (自動コミットのオフセット)

このチェックボックスをオンにすると、tKafkaInputは、指定された各時間間隔の終了時に消費状態を自動的に保存します。表示される[Interval] (間隔)フィールドでこの間隔を定義する必要があります。

オフセットは、各間隔の最後にコミットされます。ジョブがこの時間間隔の途中で停止した場合、この間隔内におけるメッセージの消費状態はコミットされません。

[Stop after a maximum total duration (ms)] (最長処理時間(ミリ秒)に達したら停止)

このチェックボックスをオンにして、tKafkaInputの実行が終了するまでの期間(ミリ秒)をポップアップフィールドに入力します。

[Stop after receiving a maximum number of messages] (最大数のメッセージを受信したら停止)

このチェックボックスをオンにして、tKafkaInputが自動的に実行を停止するまでに受信するメッセージの最大数をポップアップフィールドに入力します。

[Stop after maximum time waiting between messages (ms)] (メッセージ間の最大待機時間(ミリ秒)が経過した後に停止)

このチェックボックスをオンにして、tKafkaInputによる新しいメッセージの待機時間(ミリ秒単位)をポップアップフィールドに入力します。tKafkaInputは、この待機時間が終了するまでに新しいメッセージを受信しなかった場合、自動的に実行を停止します。

[Use SSL/TLS] (SSL/TLSを使用)

SSLまたはTLS暗号化接続を有効にする場合は、このチェックボックスをオンにします。

このチェックボックスはKafka 0.9.0.1以降で使えます。

[Set keystore] (キーストアを設定)

このチェックボックスをオンにすると、tSetKeystoreコンポーネント経由のSSLまたはTLS暗号化接続が有効になります。

次に、同じジョブ内のtSetKeystoreコンポーネントを使用して暗号化情報を指定する必要があります。

このチェックボックスは、[Use SSL/TLS] (SSL/TLSを使用)チェックボックスをオンにすると使用できます。

注: このオプションは、Talend 8.0.1 R2022-05以降のStudio月次アップデートをインストールした場合に利用できます。詳細は管理者にお問い合わせください。

[Use Kerberos authentication] (Kerberos認証を使用)

使用するKafkaクラスターをKerberosで保護する場合は、このチェックボックスをオンにして、定義する関連パラメーターを表示します。

  • JAAS configuration path (JAAS設定パス): パスを入力するか、Kafkaへのクライアントの認証を実行するジョブによって使われるJAAS設定ファイルを参照します。

    このJAASファイルには、kinitモードまたはkeytabモードのいずれかを使用して、クライアント(TalendによるKafka関連ジョブ)をKafkaブローカーノードに接続する方法が指定されています。JAASファイルは、これらのジョブが実行されるマシンに保管されている必要があります。

    Talend、Kerberos、またはKafkaはこのJAASファイルを提供していません。ユーザーの組織のセキュリティ戦略に応じて、Configuring Kafka clientの説明に従ってJAASファイルを作成する必要があります。

  • Kafka brokers principal name (Kafkaブローカーのプリンシパル名): ブローカークラスターの作成時にブローカーのために定義したKerberosのプリンシパルの主要部分を入力します。たとえばkafka/kafka1.hostname.com@EXAMPLE.COMというプリンシパルの場合、このフィールドへの入力に使用する主要部分はkafkaになります。

  • Set kinit command path (kinitコマンドパス): Kerberosは、そのkinit実行可能ファイルへのデフォルトのパスを使用します。このパスを変更した場合は、このチェックボックスをオンにしてカスタムアクセスパスを入力します。

    このチェックボックスをオフにする場合は、デフォルトのパスが使用されます。

  • Set Kerberos configuration path (Kerberos設定パス): Kerberosは、たとえば、Kerberos 5の設定ファイルであるkrb5.confファイル(または、Windowsの場合はkrb5.ini)へのデフォルトのパスを使用します。このパスを変更した場合は、このチェックボックスをオンにして、Kerberos設定ファイルへのカスタムアクセスパスを入力します。

    このチェックボックスをオフにすると、必要な設定情報を見つけるために、Kerberosによって所定の戦略が適用されます。この戦略の詳細は、Kerberos requirementsLocating the krb5.conf Configuration Fileをご覧ください。

KafkaクラスターをKerberosで保護する方法は、SASLを使用した認証をご覧ください。

このチェックボックスはKafka 0.9.0.1以降で使えます。

詳細設定

[Kafka properties] (Kafkaのプロパティ)

カスタマイズする必要があるKafkaコンシューマープロパティをこのテーブルに追加します。たとえば、ZkTimeoutExceptionを避けるために特定のzookeeper.connection.timeout.ms値を設定できます。

また、SSL暗号化などのセキュリティプロパティはssl.truststore.locationssl.keystore.locationで設定することもできます。

このテーブルで定義できるコンシューマプロパティの詳細は、次のWebサイトにあるKafkaのドキュメンテーションでコンシューマ設定について説明しているセクション(http://kafka.apache.org/documentation.html#consumerconfigs)をご覧ください。

[Apply security properties after advanced Kafka properties] (Kafkaの詳細プロパティの後にセキュリティのプロパティを適用)

このチェックボックスを選択すると、[Advanced settings] (基本設定)ビューで[Use SSL/TLS] (SSL/TLSを使用)チェックボックスが選択されている場合に、tSetKeyStoreコンポーネントで設定されているセキュリティプロパティではなく、[Advanced settings] (基本設定)ビューの[Kafka properties] (Kafkaのプロパティ)テーブルで設定されているセキュリティプロパティが最初に考慮されます。

[Timeout precision(ms)] (タイムアウト精度(ミリ秒))

消費できるメッセージがない場合に、その最後にタイムアウト例外が返される期間をミリ秒で入力します。

-1はタイムアウトの設定がないことを示します。

[Use schema registry] (スキーマレジストリーを使用)

このチェックボックスをオンにすると、Confluent Schema Registryが使用され、定義する次の関連パラメーターが表示されます。
  • URL: スキーマレジストリーのインスタンスURLを入力します。
  • [Basic authentication] (基本認証): このチェックボックスをオンにして[Username] (ユーザー名)[Password] (パスワード)に認証情報を入力します。
  • [Set schema registry keystore] (スキーマレジストリーのキーストアを設定): このチェックボックスをオンにすると、SSLまたはTLS暗号化接続が有効になります。次に、同じジョブ内のtSetKeystoreコンポーネントを使用して暗号化情報を指定する必要があります。Kafka SSL設定がスキーマレジストリーに再利用されるため、このチェックボックスは、コンポーネントの[Basic settings] (基本設定)ビューでtSetKeystoreが既に設定されている場合には利用できません。
  • [Key deserializer] (キーデシリアライザー)[Value deserializer] (値デシリアライザー): キーと値に使用するスキーマ形式をドロップダウンリストから選択します。デフォルトのカスタムシリアライザーはorg.apache.kafka.common.serialization.ByteArraySerializerです。

スキーマレジストリーの詳細は、Confluentのドキュメンテーションをご覧ください。

このオプションは、[Basic settings] (基本設定)ビューで[Output type] (出力タイプ)ドロップダウンリストからConsumerRecordが選択されている場合のみ利用できます。

注: このオプションは、Talend 8.0.1 R2022-01以降のStudio月次アップデートをインストールした場合に利用できます。詳細は管理者にお問い合わせください。

[Load the offset with the message] (メッセージでオフセットをロード)

このチェックボックスをオンにすると、次のコンポーネントに、消費済みメッセージのオフセットが出力されます。このパラメーターを選択すると、offsetという名前の読み取り専用カラムがスキーマに追加されます。

このプロパティは、[Basic settings] (基本設定)ビューの[Output type] (出力タイプ)ドロップダウンリストでStringByte[]が選択されている場合のみ利用できます。

[Custom encoding] (カスタムエンコーディング)

保管データを処理する際、エンコーディングの問題が発生することがあります。このような場合は、チェックボックスをオンにして[Encoding] (エンコーディング)リストを表示します。

リストからエンコーディングを選択するか、[CUSTOM] (カスタム)を選択して、手動で定義します。

このプロパティは、[Basic settings] (基本設定)ビューの[Output type] (出力タイプ)ドロップダウンリストでStringByte[]が選択されている場合のみ利用できます。

[tStatCatcher Statistics] (tStatCatcher統計)

このチェックボックスをオンにすると、ジョブレベルおよび各コンポーネントレベルで処理メタデータが収集されます。

[Global Variables] (グローバル変数)

ERROR_MESSAGE

エラー発生時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。

使用方法

[Usage rule] (使用ルール)

このコンポーネントは開始コンポーネントとして使用され、出力リンクを必要とします。使う必要のあるKafkaトピックが存在しない場合は、tKafkaCreateTopicコンポーネントと共に使って、後者のコンポーネントによって作成されたトピックを読み取ることができます。