For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.
Confluent(Kafka REST)
Amplitude DataのConfluent連携は、Confluent Kafka REST v3プロデュースAPIを使用してAmplitudeイベントデータをKafkaトピックにストリーミングします。これを使用して、独自のコネクターを実行することなく、AmplitudeイベントをConfluent Cloudまたは自己管理型のConfluent RESTプロキシに送信できます。
考慮事項
- この送信先はConfluentのKafka REST v3 APIに対応しています。これは Confluent Cloud や、自己管理型の Confluent REST プロキシまたは Confluent サーバーと連携します。 これは古い v2 ルートのみを提供する Redpanda や、HTTP プロデュース API をまったく公開していない Amazon MSK やオープンソースの Apache Kafka では動作しません。
- REST エンドポイントは、パブリック インターネットに接続し、パブリック IP アドレスに解決する必要があります。 Amplitudeは
localhost、内部専用のホスト名およびプライベートアドレス範囲を拒否するため、この送信先をVPC内部プロキシやローカルにホストされているRESTプロキシに向けることはできません。 - Amplitudeは、Amplitude Export APIがドキュメント化したものと同じJSONをレコード
valueに格納します。 - Confluent はほぼリアルタイムのストリーミング送信先であるため、イベントストリーミングの使用状況にカウントされます。
- この送信先は ID 転送をサポートしています。AmplitudeにIdentifyコールを発信するたびに、Amplitudeはそのユーザー情報を転送します。 詳細については、Identify のドキュメントを参照してください。
- Amplitudeはリクエストごとに1レコードを生成します。 Confluent は非ストリーミングプロデュースモードを、接続あたり 1 秒あたり 100 リクエスト未満で記録しているため、この送信先にルーティングするボリュームをそれに応じて計画してください。
- AmplitudeはAPIキーとシークレットを静止状態で暗号化し、それらをすべてのプロデュースリクエストでHTTP基本認証資格情報として送信します。
連携を設定する
Confluent の設定
Amplitudeで送信先を作成する前に、Confluent Cloud(または自己管理型クラスター)でこれらの手順を完了してください。
1. トピックを作成する
Amplitudeイベントを受信するトピックを作成するか、既存のトピックを選択します。Amplitudeはトピックを作成しません。そのため、クラスターでトピックの自動作成が有効になっている場合を除き、Amplitudeが最初のイベントを送信する前にトピックが存在している必要があります。
予想されるボリュームに基づいてパーティション数を選択してください。Amplitudeはすべてのイベントにレコードキーを設定するため、同じユーザーのイベントは常に同じパーティションに送信されます。
2. サービスアカウントとAPIキーを作成する
- Amplitudeのサービスアカウントを作成します。
- そのサービスアカウント用の Kafka API キーとシークレットを作成します。このキーとシークレットは、トピックをホストするクラスターにスコープされます。
- シークレットを安全な場所に保管してください。Confluent ではこの値を 1 回しか表示しません。
3. トピックへの書き込みアクセスを許可する
サービスアカウントに、トピックへのプロデュース権限を付与します。Confluent CLI を使用する場合:
confluent kafka acl create \
--allow \
--service-account sa-xxxxxx \
--operations write \
--topic your-topic-name \
--cluster lkc-xxxxxx \
--environment env-xxxxxx
Amplitudeはプロデュースのみを行うため、送信先が必要とする操作はこれだけですwrite。
4. 接続の詳細を収集する
Amplitudeに入力する次の値を収集します。
| 値 | どこで入手できますか | 例 |
|---|---|---|
| REST エンドポイント | クラスタ設定の「エンドポイント」セクション | https://pkc-xxxxx.us-west-2.aws.confluent.cloud:443/kafka/v3 |
| クラスタ ID | クラスタ設定 | lkc-xxxxxx |
| トピック | あなたが作成したトピック | amplitude.events |
| API キーとシークレット | 作成した認証情報 | ABC123... |
エンドポイントに API バージョンを含めます。 Confluent Cloud と Confluent Server は /kafka/v3を提供し、スタンドアロン REST プロキシは /v3を提供しています。Amplitude はクラスタとトピックパスのセグメントのみを追加します。
Amplitude設定
- Amplitudeデータで、**[カタログ]をクリックし、[宛先]**タブを選択します。
- 「イベントストリーミング」セクションで、「Confluent (Kafka REST)」をクリックします。
- 同期名を入力し、[同期を作成] をクリックします。
- [Edit] をクリックし、次のように入力します。
- Kafka REST エンドポイント: Confluent からのエンドポイント。サフィックス
/v3または/kafka/v3を含む。 - Kafka クラスター ID: 例:
lkc-xxxxxx。 - トピック:イベントを受信するトピックです。
- API キーと API シークレット: サービスアカウント用に作成した認証情報です。 REST プロキシが認証なしで実行されている場合に限り、両方を空白のままにしてください。
- レコードキーとして使用するイベントフィールド:オプションです。 デフォルトを使用するには空白のままにしておきます
user_id。
- Kafka REST エンドポイント: Confluent からのエンドポイント。サフィックス
- [イベントを送信] フィルタを使用して、送信するイベントを選択します。 すべてのイベントを送信できますが、Amplitudeでは最も重要なイベントを選択することをお勧めしています。
- 完了したら、送信先を有効にして保存します。
記録形式
Amplitude はイベントごとに 1 つのプロデュースリクエストを送信先に送信します。ボディは以下の{endpoint}/clusters/{clusterId}/topics/{topic}/recordsようになります:
{
"key": {"type": "STRING", "data": "user-123"},
"value": {"type": "JSON", "data": {"user_id": "user-123", "event_type": "Checkout Completed", "...": "..."}}
}
valueこれは、Export API スキーマと一致する、JSON オブジェクトとしての完全な Amplitude イベントです。
これはkeyパーティショニングを制御します。Amplitudeは、イベントフィールドで指定されたフィールドをレコードキーとして使用します。その設定が空白の場合は、デフォルトuser_idを使用します。イベントで選択されたフィールドが欠落しているか空の場合、Amplitude は device_id にフォールバックし、匿名トラフィックを安定したパーティションに維持します。 どちらのフィールドにも値がない場合、Amplitude はそのキーを省略し、Confluent はそのパーティションを割り当てます。
トラブルシューティング
| 症状 | 原因と修正 |
|---|---|
401 Unauthorized | API キーまたはシークレットが間違っているか、キーが別のクラスターに属しています。 Kafka クラスター ID でクラスターに対してキーを再作成します。 |
403 Forbidden | サービス アカウントには、トピックに関する writeACL がありません。 ステップ 3 の ACL を追加します。 |
404 Not Found | エンドポイントに /v3または /kafka/v3サフィックスがないか、クラスタ ID またはトピック名が間違っています。 |
| 保存時に同期がエンドポイントを拒否する | ホストは localhost です。これは内部専用名です。またはプライベート IP に解決されます。 クラスタのパブリックエンドポイントを使用します。 |
| 存在するトピックに関する配信エラー | Confluent は HTTP 200 レスポンス内でレコードごとに失敗を返します。 Amplitudeで宛先のエラー詳細を確認し、スキーマ検証の失敗やレコードサイズが大きすぎるなどのレコードレベルのエラーコードがないか確認してください。 |
これは役に立ちましたか?