Google Cloud BigTable Sink Connector 構成プロパティ¶
このコネクターを使用するには、connector.class
構成プロパティで、コネクタークラスの名前を指定します。
connector.class=io.confluent.connect.gcp.bigtable.BigtableSinkConnector
コネクター固有の構成プロパティについて、以降で説明します。
接続¶
gcp.bigtable.project.id
BigTable プロジェクトの ID。
- 型: string
- 重要度: 高
gcp.bigtable.instance.id
BigTable インスタンスの ID。
- 型: string
- 重要度: 高
gcp.bigtable.credentials.path
JSON サービスキーファイルへのパス。
gcp.bigtable.credentials.path
とgcp.bigtable.credentials.json
のうち 1 つのみを構成します。- 型: string
- デフォルト: ""
- 重要度: 高
gcp.bigtable.credentials.json
JSON サービスキーファイルのコンテンツ。
gcp.bigtable.credentials.path
とgcp.bigtable.credentials.json
のうち 1 つのみを構成します。- 型: password
- デフォルト: null
- 重要度: 高
書き込み¶
insert.mode
使用する挿入モードを定義します。サポートされるモードを以下に示します。
insert
- 新しいレコードのみを挿入します。書き込む行が既にテーブルに存在する場合は、エラーがスローされます。upsert
- 書き込む行が既に存在する場合は、指定された値でその列の値が上書きされます。
- 型: string
- デフォルト :
INSERT
- 指定可能な値 : [
UPSERT
、INSERT
] のいずれか - 重要度: 高
max.batch.size
アップサートのバッチにまとめることができる最大レコード数。挿入の場合はバッチサイズ 1 のみがサポートされているので、
insert.mode
を INSERT に設定する場合は、max.batch.size
を 1 にする必要があります。- 型: int
- デフォルト: 1
- 指定可能な値: [1,…]
- 重要度: 中
error.mode
書き込みによって発生したエラーの、再試行後の処理方法を指定します。サポートされるモードを以下に示します。
fail
- コネクターは失敗します。手動での再起動が必要です。warn
- コネクターによりログに警告が記録されます。動作は正常に継続されます。ignore
- コネクターではログに警告は記録されませんが、動作は正常に継続されます。
- 型: string
- デフォルト :
FAIL
- 指定可能な値 : [
IGNORE
、FAIL
、WARN
] のいずれか - 重要度: 中
データマッピング¶
table.name.format
送信先テーブルの名前。送信元のトピック名を指定するには、テーブル名内で
${topic}
を使用します。たとえば、
stats
トピックの場合、user_${topic}
は、テーブル名user_stats
にマップされます。- 型: string
- デフォルト: ${topic}
- 指定可能な値 : オプションで代用文字列を使用できます。
${topic}
、または${topic}
を置き換えた後に有効なテーブル名になるものを指定する必要があります。 - 重要度: 中
row.key.definition
Kafka レコードキーフィールド名のコンマ区切りのリスト。行キーを形成する際に、ここで指定した順に Kafka キーフィールドが連結されます。
たとえば、
'username, post_id, time_stamp'
というリストが Kafka キーに適用される場合、{'username' : 'bob','post_id': '213', 'time_stamp' : '123123'}
と区切り文字#
により、行キーは'bob#213#123123'
となります。区切り文字として.
を使用することでも、キー内のネスト化した項目にアクセスできます。この構成を空または未指定にした場合は、Kafka メッセージキーの型に応じて、以下のようになります。- 構造体 の場合、構造体内のすべてのフィールドを使用して行キーが形成されます。
- バイト配列 の場合、行キーにはバイト配列がそのまま設定されます。
- プリミティブ の場合、行キーには、プリミティブの
stringified
が設定されます。
行キーに、プレフィックス、より複雑な区切り文字、文字列定数が必要な場合は、SMT を構成して、関連するフィールドを Kafka レコードキーに追加することを検討してください。
- 型: list
- デフォルト: ""
- 重要度: 中
row.key.delimiter
行キーで Kafka キーフィールドの連結に使用される区切り文字。この構成を空または未指定にした場合は、キーフィールドは直接連結されます。
- 型: string
- デフォルト: ""
- 重要度: 低
auto.create.tables
送信先テーブルが存在しない場合に、テーブルを自動的に作成するかどうかを指定します。
- 型: boolean
- デフォルト: false
- 重要度: 中
auto.create.column.families
レコードスキーマに関連する列ファミリがテーブルに存在しない場合に、列ファミリを自動的に作成するかどうかを指定します。
- 型: boolean
- デフォルト: false
- 重要度: 中
再試行¶
retry.timeout.ms
データベース操作の再試行に割り当てられる最大時間をミリ秒で指定します。これを過ぎると、他のエラー処理メカニズムが試行されます。
- 型: long
- デフォルト: 90000
- 指定可能な値: [0,…]
- 重要度: 中
プロキシ¶
proxy.url
接続に使用するプロキシの URL。このプロパティは、プロキシを介してアクセスする場合にのみ使用します。
- 型: string
- デフォルト: ""
- 重要度: 低
proxy.user
プロキシユーザー。このプロパティは、プロキシを介してアクセスする場合にのみ使用します。proxy.url にユーザー名を埋め込むのではなく、proxy.user を使用することにより、プロキシの認証情報がログに表示されなくなります。
- 型: string
- デフォルト: ""
- 重要度: 低
proxy.password
プロキシパスワード。このプロパティは、プロキシを介してアクセスする場合にのみ使用します。proxy.url にパスワードを埋め込むのではなく、proxy.password を使用することにより、プロキシの認証情報がログに表示されなくなります。
- 型: password
- デフォルト: [hidden]
- 重要度: 低
Confluent Platform ライセンス¶
confluent.topic.bootstrap.servers
ライセンス供与に使用される Kafka クラスターとの初期接続を確立するために使用するホストとポートのペアのリスト。初期接続で、クラスター内のすべてのサーバーが検出されます。このリストは、host1:port1,host2:port2,...
という形式にする必要があります。これらのサーバーは、初期接続ですべてのクラスターメンバーシップを検出するためにのみ使用されます。これは動的に変わる可能性があるので、このリストにすべてのサーバーセットを含める必要はありません(ただし、サーバーの障害に備えて、複数指定しておくこともできます)。
- 型: list
- 重要度: 高
confluent.topic
Confluent Platform の構成で使用される Kafka のトピックの名前。ライセンス情報を含みます。
- 型: string
- デフォルト: _confluent-command
- 重要度: 低
confluent.topic.replication.factor
Confluent Platform の構成(ライセンス情報など)で使用される Kafka のトピックのレプリケーション係数。これは、トピックがまだ存在しない場合にのみ使用されます。デフォルトの 3 は、本稼働環境での使用に適しています。ブローカー数が 3 未満の開発環境で使用する場合は、そのブローカー数をこのプロパティに設定する必要があります(多くの場合、1 です)。
- 型: int
- デフォルト: 3
- 重要度: 低
Confluent ライセンスのプロパティ¶
ちなみに
コネクターの構成にライセンス関連のプロパティを含めることができますが、Confluent Platform バージョン 6.0 以降では、各コネクターの構成ではなく、Connect ワーカーの構成 でライセンス関連のプロパティを設定できるようになりました。
注釈
このコネクターはプロプライエタリであり、ライセンスが必要です。ライセンス情報は、_confluent-command
トピックに保存されています。ブローカーが SSL 接続を必要とする場合は、以下で説明するセキュリティ関連の confluent.topic.*
プロパティを含める必要があります。
confluent.license
Confluent では、各契約者に Confluent エンタープライズライセンスキーを発行します。ライセンスキーはテキストであるため、コピーアンドペーストで
confluent.license
の値として使用できます。試用ライセンスでは、コネクターを 30 日間使用できます。開発者ライセンスでは、ブローカーが 1 つの開発環境で、コネクターを無期限に使用できます。既にご契約されている場合は、詳細について Confluent サポートにお問い合わせください。
- 型: string
- デフォルト: ""
- 指定可能な値: Confluent Platform ライセンス
- 重要度: 高
confluent.topic.ssl.truststore.location
トラストストアファイルの場所。
- 型: string
- デフォルト: null
- 重要度: 高
confluent.topic.ssl.truststore.password
トラストストアファイルのパスワード。パスワードが設定されていなくてもトラストストアにアクセスできますが、整合性チェックが無効になります。
- 型: password
- デフォルト: null
- 重要度: 高
confluent.topic.ssl.keystore.location
キーストアファイルの場所。クライアントでは省略可能です。クライアントの相互認証に使用できます。
- 型: string
- デフォルト: null
- 重要度: 高
confluent.topic.ssl.keystore.password
キーストアファイルのストアパスワード。クライアントでは省略可能です。ssl.keystore.location を構成した場合にのみ必要となります。
- 型: password
- デフォルト: null
- 重要度: 高
confluent.topic.ssl.key.password
キーストアファイル内のプライベートキーのパスワード。クライアントでは省略可能です。
- 型: password
- デフォルト: null
- 重要度: 高
confluent.topic.security.protocol
ブローカーとの通信に使用されるプロトコル。指定可能な値は、PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSL です。
- 型: string
- デフォルト: "PLAINTEXT"
- 重要度: 中
ライセンストピックの構成¶
Confluent エンタープライズライセンスは、_confluent-command
トピックに保管されています。このトピックは、デフォルトで作成され、confluent.license
プロパティで指定されたライセンスキーに対応するライセンスが含まれます。
注釈
パブリックキーは Kafka のトピックには保管されません。
以下では、デフォルトの _confluent-command
トピックがさまざまなシナリオでどのように生成されるかを説明します。
confluent.license
プロパティを追加していない場合、またはこのプロパティを(confluent.license=
などで)空にした場合は、_confluent command
トピックに、30 日間の試用ライセンスが自動的に生成されます。- 有効なライセンスキーを(
confluent.license=<valid-license-key>
などで)追加すると、有効なライセンスが_confluent-command
トピックに追加されます。
以下は、開発およびテストのための最小限のプロパティの例です。
_confluent-command
トピックの名前は confluent.topic
プロパティを使用して変更できます(たとえば、環境に厳格な命名規則がある場合など)。以下の例は、この変更と、構成された Kafka ブートストラップサーバーを示しています。
confluent.topic=foo_confluent-command
confluent.topic.bootstrap.servers=localhost:9092
上の例は、開発およびテストで使用できるブートストラップサーバーの必要最小限のプロパティを示しています。本稼働環境の場合は、プレフィックスとして confluent.topic.
を付けて、通常のプロデューサー、コンシューマー、およびトピックの各構成プロパティをコネクターのプロパティに追加します。
ライセンストピックの ACL¶
_confluent-command
トピックには、confluent.license
プロパティで指定されたライセンスキーに対応するライセンスが含まれます。このトピックはデフォルトで作成されます。このトピックにアクセスするコネクターには、以下の ACL を構成する必要があります。
コネクターでトピックの作成が必要な場合は、リソースクラスターでの CREATE および DESCRIBE。
_confluent-command
トピックでの DESCRIBE、READ、および WRITE。重要
You may also use DESCRIBE and READ without WRITE to restrict access to read-only for license topic ACLs. If a topic exists, the LicenseManager will not try to create the topic.
ライセンスを使用する各プリンシパルに個別にアクセス許可を付与することができます。または、 ワイルドカード入力 を使用すると、すべてのクライアントを許可できます。以下の例は、リソースクラスターおよび _confluent-command
トピックの ACL を構成するために使用できるコマンドを示しています。
リソースクラスターの CREATE および DESCRIBE の ACL を設定します。
kafka-acls --bootstrap-server localhost:9092 --command-config adminclient-configs.conf \ --add --allow-principal User:<principal> \ --operation CREATE --operation DESCRIBE --cluster
_confluent-command
トピックの DESCRIBE、READ、および WRITE の ACL を設定します。kafka-acls --bootstrap-server localhost:9092 --command-config adminclient-configs.conf \ --add --allow-principal User:<principal> \ --operation DESCRIBE --operation READ --operation WRITE --topic _confluent-command
デフォルトの構成プロパティのオーバーライド¶
confluent.topic.replication.factor
を使用することにより、レプリケーション係数をオーバーライドできます。たとえば、(開発およびテスト用の)ブローカー数 3 未満の環境で送信先として Kafka クラスターを使用する場合、confluent.topic.replication.factor
プロパティに 1
を設定する必要があります。
プロデューサー固有のプロパティは、confluent.topic.producer.
プレフィックスを使用することによりオーバーライドできます。コンシューマー固有のプロパティは、confluent.topic.consumer.
プレフィックスを使用することによりオーバーライドできます。
デフォルト値を使用することも、他のプロパティをカスタマイズすることもできます。たとえば、confluent.topic.client.id
プロパティのデフォルトは、コネクターの名前に -licensing
サフィックスを付けたものです。クライアント接続に SSL または SASL を必要とするブローカーの構成設定では、このプレフィックスを使用します。
トピックのクリーンアップのポリシーはオーバーライドできません。トピックは、常に 1 パーティションであり、圧縮されるからです。また、このプレフィックスを使用してシリアライザーおよびデシリアライザーを指定しないでください。追加されても無視されます。