ServiceNow Source Connector for Confluent Cloud¶
注釈
If you are installing the connector locally for Confluent Platform, see ServiceNow Source Connector for Confluent Platform.
Kafka Connect ServiceNow Source Connector は、ServiceNow テーブル(ServiceNow のドキュメント を参照)での追加や変更をポーリングし、これらの変更を Apache Kafka® にリアルタイムで移動するために使用されます。コネクターは、ServiceNow Table API に対する範囲クエリを使用して ServiceNow テーブルからデータを消費し、Kafka のトピックを追加またはアップデートします。
機能¶
ServiceNow Source Connector では、次の機能がサポートされています。
- トピックの自動作成: このコネクターは Kafka トピックを自動的に作成できます。
- 少なくとも 1 回のデリバリー: コネクターによって、レコードが Kafka のトピックに少なくとも 1 回は配信されることが保証されます。
- 自動再試行: ネットワーク障害が発生した場合、コネクターは自動的にリクエストを再試行します。再試行の回数はプロパティ
retry.max.times
で管理します。各再試行間隔には指数関数的バックオフが毎回追加されます。 - 柔軟性: スループットの制限を強制する 2 つのパラメーター
batch.max.rows
とpoll.interval.s
を構成できます。10000
件のレコードと30
秒のポーリング間隔がデフォルトです。所定の間隔内に大量のアップデートが発生した場合は、構成可能なバッチサイズに従ってレコードのページネーションがコネクターにより行われます。ServiceNow での精度は 1 秒単位であるため、ServiceNow コネクターではpoll.interval.s
構成プロパティの最小設定として 1 秒がサポートされています。 - Supports one task: コネクターは、1 つのタスクのみの実行をサポートしています。つまり、1 つのテーブルが 1 つのタスクにより処理されます。
- サポートされるデータフォーマット: このコネクターは、Avro、JSON スキーマ(JSON-SR)、Protobuf、および JSON(スキーマレス)出力フォーマットをサポートします。スキーマレジストリ ベースのフォーマット(Avro、JSON スキーマ、Protobuf など)を使用するには、Schema Registry を有効にしておく必要があります。詳細については、「環境の制限」を参照してください。
Cloud コネクターの制限事項 も参照してください。
クイックスタート¶
このクイックスタートを使用して、Confluent Cloud ServiceNow Source Connector の利用を開始することができます。このクイックスタートでは、コネクターを選択し、イベントをストリーミングするようにコネクターを構成するための基本的な方法について説明します。
- 前提条件
- アマゾンウェブサービス (AWS)、Microsoft Azure (Azure)、または Google Cloud Platform (GCP)上の Confluent Cloud クラスターへのアクセスを許可されていること。
- Confluent CLI がインストールされ、クラスター用に構成されていること。「Confluent CLI のインストール」を参照してください。
- スキーマレジストリ ベースのフォーマット(Avro、JSON_SR(JSON スキーマ)、Protobuf など)を使用するには、Schema Registry を有効にしておく必要があります。詳細については、「環境の制限」を参照してください。
- ServiceNow インスタンスの URL、テーブル名、およびコネクターの認証の詳細情報が必要です。詳細については、ServiceNow のドキュメント を参照してください。
Confluent Cloud Console の使用¶
ステップ 1: Confluent Cloud クラスターを起動します。¶
インストール手順については、「Confluent Cloud を使用した Apache Kafka のクイックスタート」を参照してください。
ステップ 2: コネクターを追加します。¶
左のナビゲーションメニューの Data integration をクリックし、Connectors をクリックします。クラスター内に既にコネクターがある場合は、+ Add connector をクリックします。
ステップ 4: 接続をセットアップします。¶
注釈
- すべての 前提条件 を満たしていることを確認してください。
- アスタリスク ( * ) は必須項目であることを示しています。
- Name にコネクター名を入力します。
- Kafka Cluster credentials で Kafka クラスターの認証情報の指定方法を選択します。サービスアカウントのリソース ID を選択するか、API キーとシークレットを入力できます(または、Cloud Console でこれらを生成します)。
- データの送信先とする Kafka トピックの名前を入力します。トピックが存在しない場合、トピックが自動的に作成されます。
- Output Kafka record value で、Kafka 出力レコード値のフォーマット(Kafka トピックに送られるデータ)を AVRO、JSON_SR(JSON スキーマ)、PROTOBUF、または JSON(スキーマレス)から選択します。スキーマレジストリ ベースのフォーマット(Avro、JSON_SR(JSON スキーマ)、Protobuf など)を使用するには、Schema Registry を有効にしておく必要があります。詳細については、「環境の制限」を参照してください。
- ServiceNow Details に入力します。
- インスタンスの URL、テーブル名、およびコネクターの(ユーザー)認証の詳細情報を入力します。詳細については、ServiceNow のドキュメント を参照してください。インスタンスの URL は、
https://dev1000.service-now.com/
のように入力します。 - HTTP request timeout に HTTP リクエストのタイムアウトを入力します。デフォルト値は 50000 ミリ秒(50 秒)です。
- retry requests にリクエストの再試行の最大回数を入力します。デフォルト値は 3 回です。
- poll interval を入力します。これは、コネクターが ServiceNow テーブルで新規データとアップデートされたデータをポーリングする間隔です。デフォルト値は 30 秒です。ポーリング間隔の最小値は 1 秒、最大値は 60 秒です。
- インスタンスの URL、テーブル名、およびコネクターの(ユーザー)認証の詳細情報を入力します。詳細については、ServiceNow のドキュメント を参照してください。インスタンスの URL は、
- ServiceNow query details に入力します。
- maximum rows per batch を入力します。これは、新しいデータのポーリング時に単一のバッチに含める最大行数です。デフォルトは 10000 行です。
- starting time in UTC を入力します。これは、ServiceNow テーブルからすべての追加およびアップデートのフェッチを開始する時刻です。必要なフォーマットは YYYY-MM-DD です。開始時刻は、現在のタイムゾーンの 00:00 UTC です。空白にした場合は、このプロパティは、デフォルトでこのコネクターの起動日時に設定されます。
- このコネクターで使用する タスク の数を入力します。このコネクターは、1 つのタスクのみの実行をサポートしています。つまり、1 つのテーブルが 1 つのタスクにより処理されます。
- Transforms and Predicates: 詳細については、Single Message Transforms(SMT) のドキュメントを参照してください。
See 構成プロパティ for all property values and descriptions.
ステップ 7: レコードを確認します。¶
レコードが Kafka のトピックに生成されていることを確認します。
Connect 用の Confluent Cloud API の使用に関する詳細とサンプルについては、「Confluent Cloud API for Connect」セクションを参照してください。
Confluent CLI の使用¶
以下の手順に従うと、Confluent CLI を使用してコネクターをセットアップし、実行できます。
注釈
- すべての 前提条件 を満たしていることを確認してください。
- コマンド例では Confluent CLI バージョン 2 を使用しています。詳細については、「Confluent CLI v2 への移行 <https://docs.confluent.io/confluent-cli/current/migrate.html#cli-migrate>`__」を参照してください。
ステップ 2: コネクターの必須の構成プロパティを表示します。¶
以下のコマンドを実行して、コネクターの必須プロパティを表示します。
confluent connect plugin describe <connector-catalog-name>
例:
confluent connect plugin describe ServiceNowSource
出力例:
Following are the required configs:
connector.class: ServiceNowSource
name
kafka.auth.mode
kafka.api.key
kafka.api.secret
kafka.topic
output.data.format
servicenow.url
servicenow.table
servicenow.user
servicenow.password
tasks.max
ステップ 3: コネクターの構成ファイルを作成します。¶
コネクター構成プロパティを含む JSON ファイルを作成します。以下の例は、コネクターの必須プロパティを示しています。
{
"connector.class": "ServiceNowSource",
"name": "ServiceNowSource_0",
"kafka.auth.mode": "KAFKA_API_KEY",
"kafka.api.key": "****************",
"kafka.api.secret": "************************************************",
"kafka.topic": "<topic-name>",
"output.data.format": "AVRO",
"servicenow.url": "<instance-URL>",
"servicenow.table": "<table-name>",
"servicenow.user": "<username>",
"servicenow.password": "<password>",
"tasks.max": "1",
}
以下のプロパティ定義に注意してください。
"connector.class"
: コネクターのプラグイン名を指定します。"name"
: 新しいコネクターの名前を設定します。
"kafka.auth.mode"
: 使用するコネクターの認証モードを指定します。オプションはSERVICE_ACCOUNT
またはKAFKA_API_KEY
(デフォルト)です。API キーとシークレットを使用するには、構成プロパティkafka.api.key
とkafka.api.secret
を構成例(前述)のように指定します。サービスアカウント を使用するには、プロパティkafka.service.account.id=<service-account-resource-ID>
に リソース ID を指定します。使用できるサービスアカウントのリソース ID のリストを表示するには、次のコマンドを使用します。confluent iam service-account list
例:
confluent iam service-account list Id | Resource ID | Name | Description +---------+-------------+-------------------+------------------- 123456 | sa-l1r23m | sa-1 | Service account 1 789101 | sa-l4d56p | sa-2 | Service account 2
"kafka.topic"
: データの送信先となるトピック名を入力します。"output.data.format"
: 出力データフォーマット( Kafka トピックに送られるデータ)として AVRO、JSON_SR(JSON スキーマ)、PROTOBUF、または JSON(スキーマレス)を入力します。スキーマレジストリ ベースのフォーマット(Avro、JSON_SR(JSON スキーマ)、Protobuf など)を使用するには、Schema Registry を有効にしておく必要があります。詳細については、「環境の制限」を参照してください。"servicenow.<>"
: インスタンスの URL、テーブル名、およびコネクターの認証の詳細情報を入力します。詳細については、ServiceNow のドキュメント を参照してください。インスタンスの URL は、https://dev1000.service-now.com/
のように入力します。"tasks.max"
: このコネクターで使用する タスク の数を入力します。このコネクターは、1 つのタスクのみの実行をサポートしています。つまり、1 つのテーブルが 1 つのタスクにより処理されます。
Single Message Transforms: CLI を使用する SMT の追加の詳細については、Single Message Transforms(SMT) のドキュメントを参照してください。
See 構成プロパティ for all property values and descriptions.
ステップ 4: プロパティファイルを読み込み、コネクターを作成します。¶
以下のコマンドを入力して、構成を読み込み、コネクターを起動します。
confluent connect create --config <file-name>.json
例:
confluent connect create --config servicenow-source-config.json
出力例:
Created connector ServiceNowSource_0 lcc-do6vzd
ステップ 5: コネクターのステータスを確認します。¶
以下のコマンドを入力して、コネクターのステータスを確認します。
confluent connect list
出力例:
ID | Name | Status | Type | Trace
+------------+-------------------------------+---------+--------+-------+
lcc-do6vzd | ServiceNowSource_0 | RUNNING | source | |
ステップ 6: レコードを確認します。¶
レコードが Kafka のトピックに生成されていることを確認します。
Connect 用の Confluent Cloud API の使用に関する詳細とサンプルについては、「Confluent Cloud API for Connect」セクションを参照してください。
構成プロパティ¶
Use the following configuration properties with this connector.
How should we connect to your data?¶
name
Sets a name for your connector.
- 型: string
- Valid Values: A string at most 64 characters long
- 重要度: 高
Kafka Cluster credentials¶
kafka.auth.mode
Kafka Authentication mode. It can be one of KAFKA_API_KEY or SERVICE_ACCOUNT. It defaults to KAFKA_API_KEY mode.
- 型: string
- Default: KAFKA_API_KEY
- Valid Values: SERVICE_ACCOUNT, KAFKA_API_KEY
- 重要度: 高
kafka.api.key
- 型: password
- 重要度: 高
kafka.service.account.id
The Service Account that will be used to generate the API keys to communicate with Kafka Cluster.
- 型: string
- 重要度: 高
kafka.api.secret
- 型: password
- 重要度: 高
Which topic do you want to send data to?¶
kafka.topic
Identifies the topic name to write the data to.
- 型: string
- 重要度: 高
Output messages¶
output.data.format
Sets the output Kafka record value format. Valid entries are AVRO, JSON_SR, PROTOBUF, or JSON. Note that you need to have Confluent Cloud Schema Registry configured if using a schema-based message format like AVRO, JSON_SR, and PROTOBUF
- 型: string
- 重要度: 高
ServiceNow details¶
servicenow.url
ServiceNow Instance URL.
- 型: string
- 重要度: 高
servicenow.table
ServiceNow table name.
- 型: string
- 重要度: 高
servicenow.user
ServiceNow basic authentication username.
- 型: string
- 重要度: 高
servicenow.password
ServiceNow basic authentication password.
- 型: password
- 重要度: 高
connection.timeout.ms
HTTP request timeout in milliseconds.
- 型: int
- Default: 50000 (50 seconds)
- 重要度: 低
retry.max.times
Maximum number of times to retry request.
- 型: int
- デフォルト: 3
- 重要度: 低
poll.interval.s
Frequency in seconds to poll for new data in each table. The minimum poll interval is 1 second and the maximum poll interval is 60 seconds.
- 型: int
- デフォルト: 30
- 重要度: 中
ServiceNow query details¶
batch.max.rows
新しいデータのポーリング時に単一のバッチに含める最大行数。この設定を使用して、コネクターの内部にバッファリングするデータの量を制限できます。
- 型: int
- デフォルト: 10000
- Valid Values: [1,...,10000]
- 重要度: 低
servicenow.since
Time to start fetching all updates/creation. Default uses the time connector launched. Note that the time is in UTC and has required format: yyyy-MM-dd.
- 型: string
- 重要度: 中
Number of tasks for this connector¶
tasks.max
- 型: int
- Valid Values: [1,...,1]
- 重要度: 高
次のステップ¶
参考
フルマネージド型の Confluent Cloud コネクターが Confluent Cloud ksqlDB でどのように動作するかを示す例については、「Cloud ETL のデモ」を参照してください。この例では、Confluent CLI を使用して Confluent Cloud のリソースを管理する方法についても説明しています。