Kafka は、高スループットと高スケーラビリティを特徴とする分散メッセージキューサービスです。Kafka は、ログ収集、モニタリングデータ集約、ストリーミング処理、オンラインおよびオフライン分析などのビッグデータ分析に広く使用されています。ビッグデータエコシステムにとって重要です。このトピックでは、Data Transmission Service (DTS) を使用して、Express Connect、VPN ゲートウェイ、または Smart Access Gateway 経由で接続された自己管理 MySQL データベースから自己管理 Kafka クラスターにデータを同期する方法について説明します。データ同期機能により、メッセージ処理能力を拡張できます。
前提条件
- ご利用の Kafka クラスターのバージョンは 0.10.1.0 から 2.7.0 の範囲内である必要があります。
- 自己管理 MySQL データベースのエンジンバージョンは 5.1、5.5、5.6、5.7、または 8.0 である必要があります。
- 自己管理 MySQL データベースは Alibaba Cloud VPC に接続されている必要があります。手順については、「CEN 経由でオンプレミスから DTS に接続」をご参照ください。
注意事項
-
初期完全同期中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを消費するため、データベースの負荷が増加します。データベースパフォーマンスが低い、インスタンスの仕様が低い、またはビジネストラフィックが重い (たとえば、ソースデータベースに多くの低速 SQL クエリやプライマリキーのないテーブルがある、またはターゲットデータベースでデッドロックが発生するなど) 場合、データベースの負荷が増加し、サービスが利用できなくなる可能性さえあります。データを同期する前に、ソースインスタンスと宛先インスタンスのパフォーマンスを評価してください。両方のインスタンスの CPU 使用率が 30% 未満の場合など、オフピーク時にデータ同期を実行することを推奨します。
- ソーステーブルにプライマリキーまたは一意性制約がなく、その列の組み合わせが一意でない場合、重複データがターゲットデータベースに書き込まれる可能性があります。
課金
同期タイプ | 料金 |
スキーマ同期と完全データ同期 | 無料です。 |
増分データ同期 | 有料です。詳細については、「課金概要」をご参照ください。 |
制限事項
- テーブルのみが同期可能です。他のオブジェクトタイプはサポートされていません。
- 同期オブジェクトの自動調整はサポートされていません。同期対象のテーブルを改名し、新しい名前が同期オブジェクトのリストに含まれていない場合、そのテーブルからのデータはターゲットの Kafka クラスターに同期されなくなります。改名したテーブルの同期を続けるには、オブジェクトの再選択 を行う必要があります。詳細については、「同期オブジェクトの追加」をご参照ください。
サポートされる同期トポロジ
- 一方向 1 対 1 同期
- 一方向 1 対多同期
- 一方向多対 1 同期
- 一方向カスケード同期
事前準備
同期タスクを設定する前に、「自己管理 MySQL データベースのアカウントを作成し、バイナリロギングを設定する」必要があります。
操作手順
- データ同期タスクを購入します。詳細については、「購入手順」をご参照ください。
説明 タスクを購入する際、ソースインスタンスを MySQL、宛先インスタンスを Kafka、同期トポロジを 一方向同期 に設定します。
-
DTS コンソールにログインします。
説明Data Management (DMS) コンソールに自動的にリダイレクトされた場合は、右下隅の
アイコンをクリックし、
をクリックして従来の DTS コンソールに戻ることができます。 -
左側のナビゲーションウィンドウで、データ同期 をクリックします。
-
[同期タスク] ページの上部で、宛先インスタンスが配置されているリージョンを選択します。
-
購入したデータ同期タスクを見つけ、[タスクの設定] をクリックします。
- ソースインスタンスと宛先インスタンスを設定します。
セクション パラメーター 説明 なし 同期タスク名 DTS が自動的に生成するタスク名です。タスクを簡単に識別できるように、わかりやすい名前を指定することを推奨します。タスク名は一意である必要はありません。 ソースインスタンスの詳細 インスタンスタイプ Express Connect、VPN Gateway、または Smart Access Gateway 経由で接続されたユーザー作成データベース を選択します。 インスタンスリージョン 購入ページで選択したソースリージョンです。このパラメーターの値は変更できません。 ピア VPC 自己管理 MySQL データベースに接続されている VPC の ID。 データベースタイプ 値は MySQL に固定されており、変更できません。 IP アドレス 自己管理 MySQL データベースのサーバー IP アドレス。 ポート番号 自己管理 MySQL データベースのサービスポート番号。デフォルト値:3306。 データベースアカウント 自己管理 MySQL データベースのアカウント。アカウントには、必要なオブジェクトに対する SELECT 権限、および REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW 権限が必要です。 データベースパスワード データベースアカウントのパスワード。 宛先インスタンスの詳細 インスタンスタイプ Kafka クラスターがデプロイされている場所に基づいてインスタンスタイプを選択します。このトピックでは、例として [ECS インスタンス内のユーザー作成データベース] を使用します。 説明 他のインスタンスタイプを選択した場合は、追加の準備が必要です。詳細については、「準備の概要」をご参照ください。インスタンスリージョン 購入ページで選択した宛先リージョンです。このパラメーターの値は変更できません。 ECS インスタンス ID Kafka クラスターがデプロイされている Elastic Compute Service (ECS) インスタンスの ID。 データベースタイプ Kafka を選択します。 ポート番号 Kafka クラスターのサービスポート番号。デフォルト値:9092。 データベースアカウント Kafka クラスターへのログインに使用するユーザー名。Kafka クラスターで認証が有効になっていない場合は、ユーザー名を入力する必要はありません。 データベースパスワード ユーザー名のパスワード。Kafka クラスターで認証が有効になっていない場合は、パスワードを入力する必要はありません。 トピック トピック一覧の取得 をクリックし、ドロップダウンリストからトピック名を選択します。 Kafka バージョン 宛先 Kafka クラスターのバージョン。 暗号化 要件に応じて 非暗号化 または SCRAM-SHA-256 を選択します。 -
ページの右下隅にある [ホワイトリストを設定して次へ] をクリックします。
ソースデータベースまたはターゲットデータベースが、ApsaraDB RDS for MySQL インスタンスや ApsaraDB for MongoDB インスタンスなどの Alibaba Cloud データベースインスタンスである場合、DTS はインスタンスの IP アドレスホワイトリストに DTS サーバーの CIDR ブロックを自動的に追加します。 ソースデータベースまたはターゲットデータベースが Elastic Compute Service (ECS) インスタンスでホストされている自己管理データベースである場合、DTS は ECS インスタンスのセキュリティグループルールに DTS サーバーの CIDR ブロックを自動的に追加します。また、ECS インスタンスがデータベースにアクセスできることを確認する必要があります。 自己管理データベースが複数の ECS インスタンスでホストされている場合、各 ECS インスタンスのセキュリティグループルールに DTS サーバーの CIDR ブロックを手動で追加する必要があります。 ソースデータベースまたはターゲットデータベースが、データセンターにデプロイされているか、サードパーティのクラウドサービスプロバイダーによって提供されている自己管理データベースである場合、DTS がデータベースにアクセスできるように、データベースの IP アドレスホワイトリストに DTS サーバーの CIDR ブロックを手動で追加する必要があります。 詳細については、「DTS サーバーの IP アドレスをホワイトリストに登録する」をご参照ください。
警告DTS サーバーのパブリック IP アドレスの CIDR ブロックを自動または手動で追加すると、セキュリティリスクが生じる可能性があります。本製品を使用することにより、お客様はこれらの潜在的なリスクを認識し、受け入れるものとします。基本的なセキュリティ保護を実装する必要があります。これらの保護には、パスワードセキュリティの強化、CIDR ブロックのオープンポートの制限、内部 API 通信での認証の使用、不要な CIDR ブロックの定期的な確認と制限などが含まれますが、これらに限定されません。または、専用回線、VPN ゲートウェイ、Smart Access Gateway などの内部ネットワーク経由でデータベースに接続することもできます。
- 同期ポリシーと同期オブジェクトを設定します。
パラメーター 説明 Kafka のデータ形式 Kafka クラスターに同期されたデータは、Avro または Canal JSON 形式で保存されます。詳細については、「メッセージキューのデータ形式」をご参照ください。 [Kafka パーティションへのデータ転送ポリシー] ビジネス要件に合ったポリシーを選択してください。詳細な説明については、「Kafka パーティションへのデータ同期ポリシー」をご参照ください。 同期オブジェクト [ソースオブジェクト] ボックスで、同期するオブジェクト (テーブルが最も細かい粒度です) を選択し、
アイコンをクリックして [選択済み] ボックスに移動します。説明 DTS は、テーブル名をステップ 6 で選択したトピック名に自動的にマッピングします。テーブルの宛先トピックを変更するには、オブジェクト名マッピング機能を使用します。詳細については、「宛先インスタンスでのオブジェクト名の設定。オブジェクト名マッピング 宛先インスタンスで同期されるオブジェクトの名前を変更します。詳細については、「データベース、テーブル、および列のマッピング」をご参照ください。
接続失敗時のリトライ時間 DTS がソースまたは宛先インスタンスに接続できない場合、デフォルトで 720 分 (12 時間) リトライします。カスタムのリトライ時間を指定することもできます。指定した時間内に DTS がソースまたは宛先インスタンスに再接続した場合、同期タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
説明接続リトライ中のタスク実行時間に対して課金されます。ビジネスニーズに基づいてリトライ時間をカスタマイズするか、ソースインスタンスと宛先インスタンスがリリースされたらすぐに DTS インスタンスをリリースしてください。
- 上記の設定が完了したら、ページの右下隅にある 次へ をクリックします。
- 初期同期の詳細設定を行います。
パラメーター 説明 [初期同期] デフォルトでは、[初期スキーマ同期] と [初期完全データ同期] の両方が選択されています。増分データを同期する前に、DTS は選択したオブジェクトのスキーマと既存のデータを宛先に同期します。 フィルターオプション デフォルトでは、[増分同期フェーズで DDL を無視] が選択されています。これは、増分データ同期中にソースデータベースで実行された DDL 操作を DTS が同期しないことを意味します。 -
上記の設定が完了したら、ページの右下隅にある [事前チェックして開始] をクリックします。
説明-
同期タスクが開始される前に事前チェックが実行され、事前チェックに合格した後にのみタスクを開始できます。
-
事前チェックが失敗した場合は、失敗した項目の横にある
アイコンをクリックして詳細を表示します。-
原因に基づいて問題を修正し、再度事前チェックを実行できます。
-
警告をトリガーした項目を修正する必要がない場合は、無視 または [警告を無視して事前チェックを再実行] をクリックして警告をスキップし、再度事前チェックを実行できます。
-
-
- [事前チェック] ダイアログボックスに 事前チェック完了 と表示されたら、[事前チェック] ダイアログボックスを閉じます。データ同期タスクが開始されます。
データ同期 ページでは、タスクリストに [インスタンス ID/タスク名]、[ステータス] (例: 同期中)、[同期の概要] (レイテンシーと速度を含む)、[課金方法]、および [同期トポロジ] などの主要な情報が表示されます。[操作] 列には、[同期の一時停止]、[サブスクリプションへの変換]、[アップグレード] などのオプションが用意されています。