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

Amazon Aurora MySQL

Doris のストリーミング取り込みは、Amazon Aurora MySQL 互換エディションのバージョン 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 クラスターパラメータグループ(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: ROW になるように binlog_format を変更したのに、値が反映されないのはなぜですか?

A: Aurora MySQL では、実行時パラメータを直接変更できません。ステップ 2の説明に従って DB クラスターパラメータグループを作成して関連付け、変更を有効にするためにライターインスタンスを再起動する必要があります。デフォルトのパラメータグループを変更しても反映されません。

Q2: 確認と設定はライターインスタンスで行う必要がありますか?

A: はい。Binlog は Aurora のライターインスタンスでのみ生成されるため、SQL による確認と同期ユーザーの作成はすべてライターインスタンスで行ってください。

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

A: ストレージの使用量が増えます。実際に必要な障害復旧のための時間幅に基づき、72 時間を下限として設定することを推奨します。

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

症状考えられる原因対処方法
log_bin がまだ OFF のままカスタムクラスターパラメータグループが関連付けられていない、またはライターインスタンスが再起動されていないステップ 3に従ってパラメータグループを関連付け、ライターインスタンスを再起動する
binlog_format が ROW ではないクラスターパラメータグループではなく、インスタンスパラメータグループを変更したDB クラスターパラメータグループで binlog_format = ROW に設定する
Doris の同期で Binlog ファイルが見つからないと報告されるbinlog retention hours が短すぎて、Binlog が削除されたmysql.rds_set_configuration を使用して保持期間を 72 時間以上に延ばす
同期ユーザーの認証に失敗するユーザーの接続元ホストの制限、または権限の不足ユーザーの接続元ホストが '%' または Doris BE の送信元 IP アドレスであり、REPLICATION SLAVE, REPLICATION CLIENT が付与されていることを確認する