> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Apache Kafka

CData Sync アプリケーションからApache Kafka コネクタを使用して、サポートされている任意のデータソースから同期先のApache Kafka へデータを移動できます。これを行うには、コネクタを追加し、コネクタへの認証を行い、接続を完了する必要があります。

**Note：** このコネクタでは、Apache Kafka またはAzure Event Hubs のいずれかに対して認証できます。

## Apache Kafka コネクタを追加

Sync でApache Kafka のデータを使用できるようにするには、まず以下の手順でコネクタを追加する必要があります：

<ol>
  <li>Sync のダッシュボードから**接続**ページを開きます。</li>
  <li>**接続を追加**をクリックして**コネクタを選択**ページを開きます。</li>
  <li>**同期先**タブをクリックして
  **Apache Kafka** 行に移動します。</li>

  <li>
    行末にある**接続を設定**アイコンをクリックして、**新しい接続**ページを開きます。この操作により、
    **接続を追加**ダイアログボックスが開きます。

    **Note：** **接続を設定**アイコンが表示されない場合は、**コネクタをダウンロード**アイコンをクリックして Apache Kafka コネクタをインストールしてください。
  </li>

  <li>**接続を追加**ダイアログボックスに接続名を入力します。</li>
  <li>**追加**をクリックして、コネクタの**設定**タブを開きます。</li>
</ol>

新しいコネクタのインストールについての詳細は、
[接続](https://docs.sync.cdata.com/26.4/ja/connections/connections.md)を参照してください。

## Apache Kafka への認証

コネクタを追加したら、必要なプロパティを設定します。

**Bootstrap Servers：** 接続先のApache Kafka ブートストラップサーバーのアドレスを入力します。

CData Sync では、複数の方法でApache Kafka に対して認証できます。以下から認証方法を選択し、認証の詳細が記載された該当セクションに進んでください。

* [**None**](#none)（デフォルト）
* [**Plain**](#plain)
* [**SCRAM**](#scram)
* [**SCRAM-SHA-512**](#scram-sha-512)
* [**Kerberos**](#kerberos)

### None

認証なしで接続するには、**Auth Scheme** で**None** を選択します。追加のプロパティは必要ありません。

### Plain

プレーンテキストログインで接続するには、以下のプロパティを指定します：

<ul><li>\*\*Auth Scheme：\*\***Plain** を選択。</li>
<li>\*\*User：\*\*Apache Kafka アカウントへの認証に使用するユーザー名を入力。</li>
<li>\*\*Password：\*\*Apache Kafka アカウントへの認証に使用するパスワードを入力。</li></ul>

### SCRAM

SCRAM（SHA-256）資格情報で接続するには、以下のプロパティを指定します：

* **Auth Scheme：** **SCRAM** を選択します。
* **User：** Apache Kafka アカウントへの認証に使用するユーザー名を入力します。
* **Password：** Apache Kafka アカウントへの認証に使用するパスワードを入力します。

### SCRAM-SHA-512

SCRAM（SHA-512）資格情報で接続するには、以下のプロパティを指定します：

* **Auth Scheme：** SCRAM-SHA-512 を選択します。
* **User：** Apache Kafka アカウントへの認証に使用するユーザー名を入力します。
* **Password：** Apache Kafka アカウントへの認証に使用するパスワードを入力します。

### Kerberos

Kerberos で接続するには、以下のプロパティを指定します：

* **Auth Scheme：** **Kerberos** を選択します。
* **Kerberos SPN：** Kerberos ドメインコントローラーのサービスプリンシパル名（SPN）を入力します。
* **Kerberos Service Name：** 認証に使用するKerberos サービスの名前を入力します。
* （オプション）**Kerberos Keytab File：** Kerberos プリンシパルと暗号化キーのペアを含むキータブファイルを入力します。
* （オプション）**Use Kerberos Ticket Cache：** キータブファイルの代わりにログインユーザーのチケットキャッシュを使用するには、**True** を選択します。デフォルト値は**False** です。

## Azure Event Hubs への認証

コネクタを追加したら、Azure Event Hubs に接続するために以下の必須プロパティを設定します：

**Bootstrap Servers** には、接続先のApache Kafka ブートストラップサーバーのアドレスを入力します。

CData Sync では、複数の方法でApache Event Hubs に対して認証できます。以下から認証方法を選択し、認証の詳細が記載された該当セクションに進んでください。

* [**SSL Certificate**](#ssl-certificate)
* [**Azure Active Directory**](#azure-active-directory)
* [**Azure Managed Service Identity**](#azure-managed-service-identity)
* [**Azure Service Principal**](#azure-service-principal)
* [**Azure Service Principal Certificate**](#azure-service-principal-certificate)

### SSL Certificate

Secure Sockets Layer（SSL）クライアント証明書で接続するには、以下のプロパティを指定します：

* **Auth Scheme：** **SSLCertificate** を選択します。
* **SSL Client Cert：** Apache Kafka ブローカーへの検証に使用するSSL クライアント証明書を入力します。
* **SSL Client Cert Type：** Apache Kafka ブローカーへの接続に使用するSSL クライアント証明書の形式を選択します：
  * **JKSFILE**
  * **PFXFILE**
  * **PEMKEY\_FILE**（デフォルト）
  * **PEMKEY\_BLOB**
* （オプション）**SSL Client Cert Password：** SSL クライアント証明書の復号化に使用するパスワードを入力します。

### Azure Active Directory

Azure Active Directory（AD）資格情報で接続するには、以下のプロパティを指定します：

* **Azure Tenant：** データへのアクセスに使用するMicrosoft Online テナントを入力します。テナントを指定しない場合、Sync はデフォルトのテナントを使用します。
* **OAuth Client Id：** OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントId を入力します。
* **OAuth Client Secret：** OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントシークレットを入力します。

### Azure Managed Service Identity

Azure 仮想マシン上でCData Sync が実行されている場合にAzure マネージドサービスID（MSI）を利用するには、**Auth Scheme** で**Azure MSI** を選択します。追加のプロパティは必要ありません。

### Azure Service Principal

Azure サービスプリンシパルとクライアントシークレットで接続するには、次のプロパティを設定します：

<ul><li>\*\*Auth Scheme：\*\***AzureServicePrincipal** を選択。</li>
<li>\*\*Azure Tenant：\*\*接続するMicrosoft Online テナントを入力。</li>
<li>\*\*OAuth Client Id：\*\*OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントId を入力。</li>
<li>\*\*OAuth Client Secret：\*\*OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントシークレットを入力。</li></ul>

アプリケーションのOAuth クライアントId およびクライアントシークレットを取得するには：

<ol><li>[Azure ポータル](https://portal.azure.com)にログインします。</li>
<li>左ナビゲーションペインで**すべてのサービス**を選択します。次に**アプリの登録**を検索し選択します。</li>
<li>**新規登録**をクリックします。</li>
<li>アプリケーションの名前を入力して**任意のAzure AD ディレクトリ - マルチテナント**を選択します。</li>
<li>アプリケーションを作成したら、**概要**セクションに表示されるアプリケーション (クライアント) ID の値をコピーします。この値をOAuth クライアントId として使用します。</li>
<li>**証明書とシークレット**セクションに移動して、アプリケーションの**新しいクライアント シークレット**を選択します。</li>
<li>有効期間を指定してクライアントシークレットを保存します。保存するとキーの値が表示されます。</li>
<li>値は一度しか表示されないので、コピーしておきます。この値をOAuth クライアントシークレットとして使用します。</li>
<li>**認証**タブで、必ず**アクセストークン (暗黙的なフローに使用)** を選択します。</li></ol>

### Azure Service Principal Certificate

Azure サービスプリンシパルとクライアント証明書で接続するには、次のプロパティを設定します：

<ul><li>\*\*Auth Scheme：\*\***AzureServicePrincipalCert** を選択。</li>
<li>\*\*Azure Tenant：\*\*接続するMicrosoft Online テナントを入力。</li>
<li>\*\*OAuth Client Id：\*\*OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントId を入力。</li>
<li>\*\*OAuth JWT Cert：\*\*Java web token（JWT）証明書ストアを入力。</li>
<li>**OAuth JWT Cert Type：**JWT 証明書を格納するキーストアの種類を入力。デフォルトの種類は**PEMKEY\_BLOB** です。</li>
<li>（オプション）\*\*OAuth JWT Cert Password：\*\*OAuth JWT 証明書のパスワードを入力。</li>
<li>（オプション）\*\*OAuth JWT Cert Subject：\*\*OAuth JWT 証明書のサブジェクトを入力。</li></ul>

アプリケーションのOAuth 証明書を取得するには：

<ol><li>[Azure ポータル](https://portal.azure.com)にログインします。</li>
<li>左ナビゲーションペインで**すべてのサービス**を選択します。次に**アプリの登録**を検索し選択します。</li>
<li>**新規登録**をクリックします。</li>
<li>アプリケーションの名前を入力して**任意のAzure AD ディレクトリ - マルチテナント**を選択します。</li>
<li>アプリケーションを作成したら、**概要**セクションに表示されるアプリケーション (クライアント) ID の値をコピーします。この値をOAuth クライアントId として使用します。</li>
<li>**証明書とシークレット**セクションに移動して、**証明書のアップロード**を選択します。次に、ローカルマシンからアップロードする証明書を選択します。</li>
<li>有効期間を指定してクライアントシークレットを保存します。保存するとキーの値が表示されます。</li>
<li>値は一度しか表示されないので、コピーしておきます。この値をOAuth クライアントシークレットとして使用します。</li>
<li>**認証**タブで、必ず**アクセストークン (暗黙的なフローに使用)** を選択します。</li></ol>

## GCP Kafka への認証

コネクタを追加したら、GCP Kafka に接続するために以下の必須プロパティを設定します：

**Bootstrap Servers** には、接続先のApache Kafka ブートストラップサーバーのアドレスを入力します。

CData Sync では、複数の方法でGCP Kafka に対して認証できます。以下から認証方法を選択し、認証の詳細が記載された該当セクションに進んでください。

* [**OAuth JWT**](#oauth-jwt)
* [**GCP Instance Account**](#gcp-instance-account)
* [**AWS Workload Identity**](#aws-workload-identity)

### OAuth JWT

OAuth JWT を使用してApache Kafka アカウントに接続するには、以下のプロパティを指定します：

* **Auth Scheme：** **OAuthJWT** を選択します。
* **OAuth Client Id：** OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントId を入力します。
* **OAuth Client Secret：** OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントシークレットを入力します。
* **OAuth JWT Cert：** JSON Web Token（JWT）証明書ストアを入力します。
* **OAuth JWT Cert Type：** JWT 証明書を格納するキーストアの種類を入力します。デフォルトの種類は**PEMKEY\_BLOB** です。
* **OAuth JWT Cert Password：** パスワードで保護された証明書ストアへのアクセスに使用するOAuth JWT 証明書のパスワードを入力します。証明書ストアにパスワードが不要な場合は、このプロパティを空白のままにします。
* （オプション）**OAuth JWT Cert Subject：** OAuth JWT 証明書のサブジェクトを入力します。

### GCP Instance Account

GCP 仮想マシンでCData Sync を実行すると、Sync は仮想マシンに紐づけられたサービスアカウントを使用して認証できます。そのアカウントを使用するには、**Auth Scheme** で**GCPInstanceAccount** を選択します。追加のプロパティは必要ありません。

### AWS Workload Identity

AWS Workload Identity フェデレーション資格情報で接続するには、次のプロパティを設定します：

<ul>
  <li>\*\*Auth Scheme：\*\***AWSWorkloadIdentity** を選択。</li>

  <li>
    \*\*AWS Workload Identity Config：\*\*以下の例のように、セミコロン区切りの`Key=Value` プロパティのリストを入力：

    `AWSWorkloadIdentityConfig="AuthScheme=AwsRootKeys;AccessKey='AKIAABCDEF123456';SecretKey=...;Region=us-east-1"`

    値を引用符で囲むかどうかは任意です。
  </li>

  <li>\*\*Workload Pool Id：\*\*Workload Identity Federation プールの識別子（Id）を入力。</li>
  <li>\*\*Workload Project Id：\*\*Workload Identity Federation プールをホストするGoogle Cloud プロジェクトのId を入力。</li>
  <li>\*\*Workload Provider Id：\*\*Workload Identity Federation プールプロバイダーのId を入力。</li>
</ul>

## Extracting Metadata from Topics

Sync は、Apache Kafka のトピックをテーブル、メッセージを行としてモデル化します。
**Type Detection Scheme** プロパティは、Sync が各トピックからスキーマ情報を読み取る方法を制御します。**Type Detection Scheme** の詳細は、[接続を完了する](#接続を完了する)で説明します。

### Schema Registry

スキーマレジストリには、スキーマが登録されているトピックの一覧が含まれます。テーブルとカラムの一覧は、スキーマレジストリから直接読み取られます。

スキーマレジストリを持つサービスに接続するには、以下のプロパティを指定します：

* **Bootstrap Servers：** Apache Kafka ブートストラップサーバーのサーバー（ホスト名またはIPアドレス）とポート（*Server:Port* の形式）を入力します。
* **Type Detection Scheme：** 使用する検出スキームを選択します。このスキームの詳細は、[接続を完了する](#接続を完了する)を参照してください。
* （オプション）**Schema Merge Mode：** 複数のスキーマをマージするモードを選択します。
  * **None**（デフォルト）
  * **Simple**

#### Confluent Schema Registry

Confluent Cloud に接続する場合、レジストリURL は、**Schemas > Schema Registry > Instructions** にあるSchema Registry エンドポイントの値に対応します。

Confluent スキーマレジストリは、複数の認証オプションをサポートしています。通常、Confluent Cloud のデプロイメントでは、レジストリユーザーおよびレジストリパスワードとともに、**Registry Auth Scheme** プロパティを**Basic** に設定する必要があります。ユーザーとパスワードを確認するには、**Schemas > Schema Registry > API Access** に移動し、アクセスキーとシークレットキーの値を確認します。

オンプレミスのデプロイメントでは、認証が不要な場合があります。その場合は、**Registry Auth Scheme** を**None** に設定します。これらのデプロイメントでは、SSL クライアント証明書も必要になる場合があります。その場合は、**SSL Certificate** レジストリ認証スキームに加えて、**Registry Client Cert** および**Registry Client Cert Type** オプションを設定する必要があります。

#### Amazon Web Services (AWS) Glue Schema Registry

AWS Glue に接続する場合、レジストリURL は、レジストリのAmazon Resource Name（ARN）の値に対応します。

AWS Glue スキーマレジストリは、**Basic** レジストリ認証スキームのみをサポートしています。**Registry User** と**Registry Password** には、それぞれレジストリにアクセスできるユーザーのアクセスキーとシークレットキーを設定してください。

## Topic Routing

Apache Kafka 宛先を使用するジョブの作成時に、ソーステーブルをApache Kafka のトピックにマッピングする方法を制御できます。そのためには、ジョブの作成時に**ジョブを追加** ダイアログで次のオプションのいずれかを選択します：

* **ソーステーブルごとに1つのトピック：** 各ソーステーブルは専用のトピックに書き込まれます。Sync は、*SchemaName*\_*TableName* の形式でトピック名を自動的に付けます。ソースにスキーマがない場合、トピック名は単にテーブル名になります。
* **すべてのデータを単一の指定トピックへ：** テーブルのすべてのソースデータが1つのトピックに書き込まれます。このオプションを選択すると、以下に示すように**トピック** フィールドが表示されます。フィールドにトピック名を入力するか、トピックの一覧が利用可能な場合はトピックを検索して選択できます。

  ![単一の指定トピック用のトピックフィールドを表示した「ジョブを追加」ダイアログ](https://mintcdn.com/cdata-sync/4njnJgdQs2eFHAEE/26.4/images/Apache-Kafka-Destination_topic-routing_1.png?fit=max\&auto=format\&n=4njnJgdQs2eFHAEE\&q=85\&s=4936454faa241768715c3c7451da15b7)

> [!NOTE]
>
> ジョブの実行時にターゲットトピックが存在しない場合、ブローカーの構成に応じて、Sync がトピックを自動的に作成するか、エラーを返します。

## Message Partitioning

Sync では、新しいApache Kafka 宛先ジョブは、ソーステーブルの主キーによってメッセージを自動的にパーティション分割します。この動作により、メッセージがターゲットトピックのパーティション間でどのように分散されるかが制御されます。

* **主キーが1つの場合：** Sync は、主キーの値をApache Kafka のメッセージキーとして使用します。同じキー値を持つすべてのメッセージは同じパーティションに書き込まれるため、ダウンストリームのコンシューマーは、特定のキーに対する変更を書き込まれた順序で確認できます。
* **主キーがない場合：** Sync は、ラウンドロビン方式（各メッセージが順番に次のパーティションに送られる方式）でメッセージをパーティション間に分散します。Apache Kafka のメッセージキーは割り当てられません。

> [!NOTE]
>
> * 自動的なキーベースのパーティション分割は、複合主キー（複数カラムの主キー）を持つテーブルをサポートしません。単一のキーでパーティション分割するには、クエリを変更して主キーのカラムを1つだけ含めます。
> * 既存のApache Kafka 宛先ジョブ（リリース26.3より前）は、この変更の影響を受けません。

## 接続を完了する

接続を完了するには：

1. 次のプロパティを指定します：
   * **Type Detection Scheme：** 使用する検出スキームを選択します。
     * （デフォルト）**RowScan**—トピックのメッセージをスキャンして、カラム名とデータ型を推測します。追加の構成は不要です。
     * **SchemaRegistry**—Confluent 互換のスキーマレジストリからスキーマ定義を読み取ります。このオプションを選択すると、スキーマレジストリの追加プロパティが表示されます。このスキームでは、以下のプロパティを指定します：
       * **Registry Url：** スキーマレジストリのサーバーのURL を入力します。このプロパティを指定すると、Sync はサーバーからApache Kafka のスキーマを読み取ります。
       * **Registry Service：** トピックスキーマの操作に使用するSchema Registry サービスを選択します。
         * **Confluent**（デフォルト）
         * **AWSGlue**
       * **Registry Auth Scheme：** スキーマレジストリへの認証に使用するスキームを選択します。
         * （デフォルト）**None：** このスキームは、認証を使用しないことを指定します。
         * **Basic：** このスキームでは、以下のプロパティを指定します：
           * **Registry User：** **Registry Url** に以前指定したサーバーへの認証に使用するユーザー名を入力します。
           * **Registry Password：** **Registry Url** に以前指定したサーバーへの認証に使用するパスワードを入力します。
         * **SSLCertificate：** このスキームは、SSL クライアント証明書認証を使用することを指定します。この設定では、以下を指定する必要があります：
           * **Registry Client Cert：** スキーマレジストリとのSSL クライアント認証（双方向SSL）に使用するTLS/SSL クライアント証明書ストアを入力します。
           * （オプション）**Registry Client Cert Password：** TLS/SSL クライアント証明書のパスワードを入力します。
           * （オプション）**Registry Client Cert Subject：** TLS/SSL クライアント証明書のサブジェクトを入力します。
   * **Use SSL：** Secure Sockets Layer（SSL）を有効にするかどうかを選択します。デフォルトでは、**Enable** チェックボックスは選択されていません。

<ol start="2"><li>**Advanced** タブで詳細な接続設定を定義します。（ただし、ほとんどの場合、これらの設定は不要です。）</li>
<li>AzureAD で認証する場合は、**Apache Kafka への接続**をクリックして Apache Kafka アカウントに接続します。</li>
<li>**作成およびテスト**をクリックして接続を作成します。</li></ol>

## 詳細について


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.