メインコンテンツまでスキップ

Azure Database for MySQL の取り込みを構成する

備考

プレビュー

MySQL コネクタはパブリック プレビュー段階です。アクセスをリクエストするには、Databricks アカウント チームにお問い合わせください。

Databricks への取り込み用に Azure Database for MySQL を構成する方法について説明します。変更データ キャプチャをサポートするには、バイナリ ログを有効にし、バイナリ ログ保持を構成する必要があります。

要件

  • Azure Database for MySQL バージョン 5.7.44 以降、または 8.0 以降 (フレキシブル サーバー)。
  • サーバーを変更する権限。

サーバーを構成する

バイナリ ログは、Azure Database for MySQL のサーバー パラメーターを通じて制御されます。これらの問題は、 Azure portal を通じて構成する必要があります。

必要なサーバー

次のサーバーを構成します。

パラメーター

Value

説明

log_bin

ON

バイナリ ログを有効にします。log_binはAzure MySQLフレキシブル サーバーで一応有効になっており、構成できません。 このオプションが利用可能な場合は、 ONに設定します。

binlog_format

ROW

バイナリ ログ形式を行ベースのレプリケーションに設定します。チェンジデータキャプチャに必要です。

binlog_row_image

FULL

変更された列だけでなく、すべての列をバイナリ ログに記録します。

binlog_expire_logs_seconds

604800 (7日間)

自動的に消去されるまでバイナリ ログを保持する期間を指定します。

Azureポータル

Azure portal を使用してサーバーを構成するには:

  1. Azure ポータルにサインインし、Azure Database for MySQL サーバーに移動します。
  2. 左側のメニューの [ 設定] で、 [サーバー] を選択します。
  3. binlog_formatを検索し、値をROWに設定します。
  4. binlog_row_imageを検索し、値をFULLに設定します。
  5. binlog_expire_logs_secondsを検索し、値を604800 (7 日間) 以上に設定します。
  6. ページ上部の 「保存」 をクリックします。
  7. プロンプトが表示されたら、変更を有効にするためにサーバーを再起動します。

バイナリログの保持に関する考慮事項

Databricks では、binlog の保持期間を 7 日間 (168 時間または 604,800 秒) にすることを推奨しています。より低い値を設定すると、取り込みゲートウェイがバイナリログを再生する前にバイナリログがクリーンアップされ、すべてのテーブルを完全に更新する必要が生じる可能性があります。

binlog設定を確認する

サーバーを構成してサーバーを再起動した後、バイナリ ログが適切に構成されていることを確認します。

SQL
-- Check if binary logging is enabled
SHOW VARIABLES LIKE 'log_bin';

-- Should return:
-- +---------------+-------+
-- | Variable_name | Value |
-- +---------------+-------+
-- | log_bin | ON |
-- +---------------+-------+

-- Check binlog format
SHOW VARIABLES LIKE 'binlog_format';

-- Should return:
-- +---------------+-------+
-- | Variable_name | Value |
-- +---------------+-------+
-- | binlog_format | ROW |
-- +---------------+-------+

-- Check binlog row image
SHOW VARIABLES LIKE 'binlog_row_image';

-- Should return:
-- +------------------+-------+
-- | Variable_name | Value |
-- +------------------+-------+
-- | binlog_row_image | FULL |
-- +------------------+-------+

-- Check retention in seconds
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

リードレプリカのサポート

MySQL コネクタは、Azure Database for MySQL の読み取りレプリカからの取り込みをサポートしています。読み取りレプリカを使用すると、プライマリ データベースの負荷を軽減できます。

読み取りレプリカを使用するには:

  1. Azure ポータルでプライマリ サーバーの読み取りレプリカを作成します。
  2. 読み取りレプリカでバイナリ ログが有効になっていることを確認します (プライマリ サーバーから継承)。
  3. Databricks 接続を作成するときは、読み取りレプリカの接続文字列を使用します。
注記

プライマリ サーバーとレプリカの間でレプリケーションの遅延が発生する可能性があり、データの鮮度に影響する可能性があります。Azure Monitor メトリクスを使用してレプリケーション ラグを監視します。

ネットワーク構成

Azure Database for MySQL サーバーが Databricks からアクセス可能であることを確認します。

  • Databricks IP 範囲からの受信トラフィックを許可するようにファイアウォール ルールを構成します。
  • プライベート エンドポイントを使用する場合は、適切な仮想ネットワーク ピアリングまたは接続を確認してください。
  • 安全な接続のために Azure Private Link の使用を検討してください。

ファイアウォール ルールを追加するには:

  1. Azure ポータルで、MySQL サーバーに移動します。
  2. [設定][ネットワーク] を選択します。
  3. Databricks IP 範囲を使用して新しいファイアウォール ルールを追加します。
  4. 保存 をクリックします。

次のステップ

管理者は次のいずれかを実行できるようになりました。