メインコンテンツまでスキップ
に最終更新

Amazon Aurora MySQL

実験的機能

Doris の継続ロードは実験的機能で、Doris 4.1.5 以降でサポートされます。

Doris ストリーミング取り込みは、Amazon Aurora MySQL-Compatible Edition の 5.6、5.7、8.0.x バージョンをサポートします。Aurora MySQL ではデフォルトで Binlog が有効になっていないため、データを同期する前に Aurora クラスター上で Binlog の有効化と構成、同期ユーザーの作成、Binlog 保持期間の設定などの前提作業を完了する必要があります。

このドキュメントは、Aurora MySQL のデータを Doris ストリーミング取り込みに取り込む予定のユーザーを対象とし、エンドツーエンドの構成ワークフローを提供します。

前提条件チェックリスト​

Doris への接続を開始する前に、Aurora クラスターが次の条件を満たしていることを確認してください。

確認項目期待値確認方法
Binlog が有効かどうかlog_bin = ONSHOW VARIABLES LIKE 'log_bin';
Binlog 形式binlog_format = ROWSHOW VARIABLES LIKE 'binlog_format';
Binlog 行イメージbinlog_row_image = FULLSHOW VARIABLES LIKE 'binlog_row_image';
同期ユーザー専用アカウントが存在し、レプリケーション権限を持っているSHOW GRANTS FOR ...; を実行
Binlog 保持期間少なくとも 72 時間CALL mysql.rds_show_configuration;

すべての条件を満たしていれば、Doris 側のストリーミング取り込み構成に直接進めます。いずれかの項目を満たしていない場合は、以下の手順に従って構成してください。

ステップ 1: 現在の Binlog 構成を確認する​

Aurora 書き込みインスタンスに接続し、次の SQL を実行して Binlog の状態を確認します。

-- Check if binlog is enabled
SHOW VARIABLES LIKE 'log_bin';

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

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

結果に基づいて、次の手順を選択します。

  • 三つの条件(log_bin = ON、binlog_format = ROW、binlog_row_image = FULL)をすべて満たす場合は、次の手順へ直接進めます: ステップ 4: 同期ユーザーを作成する。
  • それ以外の場合は、ステップ 2 に進み、クラスターパラメータグループを介して Binlog を有効にします。

ステップ 2: クラスターパラメータグループを構成する​

Aurora MySQL ではランタイムパラメータを直接変更できないため、DB Cluster Parameter Group を介して変更する必要があります。

手順:

  1. AWS RDS コンソールにログインします。

  2. 左側のナビゲーションペインで Parameter groups を選択し、Create parameter group をクリックします。

  3. タイプとして DB Cluster Parameter Group を選択し、対象クラスターに一致する Aurora MySQL のバージョンファミリーを選択します。

  4. 新しく作成したクラスターパラメータグループを編集し、binlog_format を検索して、値を ROW に設定します。

    MySQL Binlog フォーマット設定

  5. binlog_row_image を検索し、値を FULL に設定します。

  6. Save Changes をクリックして保存します。

変更が必要な主なパラメータの概要は次のとおりです。

パラメータ推奨値説明
binlog_formatROWCDC 同期には行レベルのロギングが必要です
binlog_row_imageFULLBinlog にすべての列の完全なイメージが含まれるようにします

ステップ 3: クラスターパラメータグループを適用して再起動する​

新しく作成したパラメータグループを対象クラスターにバインドし、変更を有効にする前に書き込みインスタンスを再起動する必要があります。

  1. RDS コンソールで対象の Aurora クラスターを選択し、Modify をクリックします。
  2. DB cluster parameter group で、ステップ 2 で作成したクラスターパラメータグループを選択します。
  3. Apply immediately にチェックを入れて、変更を直ちに適用します。
  4. Aurora の 書き込みインスタンスを再起動して、構成を有効にします。
注意

binlog_format パラメータの変更を有効にするには、Aurora の書き込みインスタンスを再起動する必要があります。この操作は業務の閑散時間帯に行ってください。

再起動後、ステップ 1 の SQL をもう一度実行して確認します。三つのパラメータがすべて期待値と一致している必要があります。

ステップ 4: 同期ユーザーを作成する​

権限管理と監査を容易にするため、Doris ストリーミング取り込み専用のアカウントを作成します。

  1. ユーザーを作成します。

    CREATE USER 'doris_sync'@'%' IDENTIFIED BY '<password>';
  2. 同期に必要な権限を付与します。

    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'doris_sync'@'%';

必要な権限の説明:

権限用途
SELECT全量ロードフェーズで業務テーブルのデータを読み取る
REPLICATION SLAVEレプリケーションクライアントとして Binlog ストリームを読み取る
REPLICATION CLIENTBinlog ファイルの位置情報などのメタデータを照会する

ステップ 5: Binlog 保持期間を構成する​

Aurora はデフォルトで Binlog を比較的早く回収するため、障害発生後にレプリケーションを再開できなくなる可能性があります。障害時にもバイナリログを利用できるよう、Binlog 保持期間を 少なくとも 72 時間 に設定することを推奨します。

mysql.rds_set_configuration ストアドプロシージャを使用して設定します。

CALL mysql.rds_set_configuration('binlog retention hours', 72);

次の SQL を使用して現在の構成を確認できます。

CALL mysql.rds_show_configuration;
注意

この構成項目を設定しない、または間隔を短く設定しすぎると、バイナリログに欠落が生じ、Doris がレプリケーションを再開できなくなる可能性があります。

よくある質問​

Q1: binlog_format を変更した後も値が ROW にならないのはなぜですか?

A: Aurora MySQL ではランタイムパラメータを直接変更できません。ステップ 2 の説明に従って DB Cluster Parameter Group を作成してバインドし、その後 書き込みインスタンスを再起動して変更を有効にする必要があります。デフォルトのパラメータグループを変更しても機能しません。

Q2: 確認と構成は書き込みインスタンスで行う必要がありますか?

A: はい。Binlog は Aurora の書き込みインスタンスでのみ生成されるため、すべての SQL 確認と同期ユーザーの作成は書き込みインスタンスで行う必要があります。

Q3: binlog retention hours を高く設定しすぎると、どのような影響がありますか?

A: より多くのストレージ容量を消費します。実際の障害復旧時間枠に基づいてこの値を設定し、最低でも 72 時間にすることを推奨します。

トラブルシューティング​

症状考えられる原因解決策
log_bin がまだ OFFカスタムクラスターパラメータグループがバインドされていない、または書き込みインスタンスが再起動されていないステップ 3 に従ってパラメータグループをバインドし、書き込みインスタンスを再起動します
binlog_format が ROW ではないインスタンスパラメータグループを変更し、クラスターパラメータグループを変更していないDB Cluster Parameter Group で binlog_format = ROW に設定します
Doris の同期で Binlog ファイルが見つからないというエラーが報告されるbinlog retention hours が小さすぎ、Binlog が回収されたmysql.rds_set_configuration を使用して保持期間を少なくとも 72 時間に延長します
同期ユーザーの認証に失敗するユーザーのホスト制限または権限不足ユーザーのホストが '%' または Doris BE のエグレス IP であり、REPLICATION SLAVE, REPLICATION CLIENT が付与されていることを確認します