このトピックでは、コンソールでワンクリックで ApsaraDB for ClickHouse Community-compatible Edition クラスターのメジャーエンジンバージョンをアップグレードする方法について説明します。
背景
サービスエクスペリエンスを向上させるため、古いクラスターを速やかに最新バージョンにアップグレードすることをお勧めします。ApsaraDB for ClickHouse Community-compatible Edition は、コンソールでワンクリックアップグレード機能を提供します。アップグレードプロセスは、クラスターアーキテクチャによって異なります。
旧アーキテクチャのクラスター: システムは最新バージョンを実行する新しいクラスターを自動的に作成し、ソースクラスターから新しいクラスターにデータを移行してアップグレードを完了します。
新アーキテクチャのクラスター: システムはインスタンスをクローンし、カーネルをアップグレードすることで、インスタンスのバージョンを直接更新します。
スムーズなトランジションを確保するために、クラスターのバージョンに基づいて適切なアップグレード操作を選択してください。
準備: クラスターアーキテクチャの確認
アップグレードする前に、コンソールでクラスターアーキテクチャを確認し、適切な検証メソッドとプロシージャを選択します。クラスターアーキテクチャを確認するには、次のステップを実行します。
[インスタンスリスト] ページで、ターゲットクラスターの ID をクリックして [クラスター情報] ページに移動します。
[クラスタープロパティ] セクションで、[メジャーバージョンアップグレード] の横にある [バージョン] をクリックします。
[メジャーバージョンのアップグレード] ダイアログボックスで、[メジャーバージョンアップグレード]3 番目 の設定項目を表示します。
[バージョンアップグレード実行時間]: 新アーキテクチャのクラスターを示します。
書き込み中断時間: 旧アーキテクチャのクラスターを示します。
新アーキテクチャのクラスターをアップグレードするには、「新アーキテクチャのクラスターのアップグレード」をご参照ください。
旧アーキテクチャのクラスターをアップグレードするには、「旧アーキテクチャのクラスターのアップグレード」をご参照ください。
新アーキテクチャのクラスターのアップグレード
前提条件
クラスターが実行中状態であること。
使用上の注意
ワンクリックでのメジャーエンジンバージョンのアップグレードプロセスが開始されると、キャンセルすることはできません。
説明ワンクリックでのメジャーエンジンバージョンのアップグレード後は、バージョンのロールバックはサポートされていません。アップグレード後に以前のバージョンにロールバックする機能が必要な場合は、クラスターをクローンしてアップグレードできます。詳細については、「クローンによるメジャーエンジンバージョンのアップグレード」をご参照ください。
ワンクリックでのメジャーエンジンバージョンのアップグレードは 1 つのクラスターのみを対象とし、アップグレード後にソースバージョンにロールバックすることはできません。
スムーズなアップグレードを確保するために、アップグレードを開始する前にビジネスからの書き込み操作を停止してください。アップグレード中、クラスターは自動的に書き込みを停止します。ただし、ビジネスが事前に書き込みを停止しない場合、同期の待機時間が過度に長くなったり、同期が時間内に完了しなかったりする可能性があります。これは、アップグレードの適時性に影響を与える可能性があります。
アップグレードがビジネスに与える影響を軽減するために、アップグレードを開始する前に以下の検証を実行してください。
互換性とパフォーマンスの検証: 書き込みおよびクエリ操作の機能、構文、パフォーマンスの違いを検証します。
アップグレード期間の検証: バージョンアップグレード中にインスタンスは複数回再起動します。一部のインスタンスは、多くのデータベース、テーブル、またはパーティション (Parts) があるため、再起動に時間がかかる場合があります。
重要クラスターにコールドストレージのデータが大量にあり、クローン検証を使用する場合、ワンクリックアップグレードはクローン検証よりも時間がかかります。これは、クローン操作にコールドデータが含まれないためです。
検証の実行方法の詳細については、「バージョン互換性の検証」をご参照ください。
クラスターへの影響
バージョンアップグレード中、クラスターは複数回再起動し、読み取りおよび書き込み操作には使用できなくなります。オフピーク時にアップグレードを実行することをお勧めします。
バージョン互換性の検証
ワンクリックでのメジャーエンジンバージョンのアップグレードは 1 つのクラスターのみを対象とし、ロールバックできないため、最初にアップグレードをテストする必要があります。続行する前に、新しいバージョンがソースバージョンの機能と完全に互換性があることを確認し、アップグレード期間を検証してください。以下のステップで手順を説明します。
クラスターでホットデータとコールドデータの階層型ストレージが有効になっている場合、クローン操作にはホットデータのみが含まれます。新しいクラスターではコールドデータをクエリできません。
ターゲットインスタンスの [クラスター情報] ページに移動します。左側のナビゲーションウィンドウで、[バックアップとリカバリ] をクリックします。インスタンスがバックアップされたら、[インスタンスの復元] をクリックします。
リアルタイムレプリカからクローンすることを選択し、宛先カーネルバージョンをターゲットのアップグレードバージョンに設定します。
クローンされたクラスターを作成します。
互換性検証を実行します。
新しいバージョンとビジネスクエリの互換性を検証します。詳細については、「SQL 互換性の検証」をご参照ください。
ビジネス機能の回帰テストを実行します。
手順
Alibaba Cloud アカウントで ApsaraDB for ClickHouse コンソールにログインします。
ページの左上隅で、ターゲットクラスターが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで、[Community Edition インスタンスリスト] をクリックします。
ターゲットクラスターを見つけてクラスター ID をクリックし、[クラスター情報] ページに移動します。
[クラスタープロパティ] セクションで、[バージョン] をクリックします。これは [メジャーバージョンアップグレード] の右側にあります。
プロンプトに従って次のパラメーターを設定し、[OK] ボタンをクリックします。
設定項目
説明
例
インスタンスカーネルバージョンのアップグレード先
ターゲットクラスターのバージョン。アップグレード後にバージョンをロールバックすることはできません。
現在、バージョン 25.3 のみがサポートされています。
23.8 (LTS バージョン)
[バージョンアップグレード実行時間]
クラスターバージョンのアップグレードの実行時間。
重要指定した時刻を選択するか、メンテナンスウィンドウ内でアップグレードすると、クラスターのステータスが [実行中] から [アップグレード中] に変わります。指定した時刻またはメンテナンスウィンドウが到来するまで、クラスターは通常どおり読み取りおよび書き込みリクエストを処理できますが、スペックアップ、スペックダウン、スケーリング、移行などの O&M 操作は実行できません。
指定時刻: 将来の時点を選択してメジャーバージョンのアップグレードを実行します。
メンテナンスウィンドウ内でアップグレード: 現在のクラスターのメンテナンスウィンドウがデフォルトで選択されます。
今すぐアップグレード: アップグレード操作をすぐに実行します。
2024-05-29 14:46
クローン検証の実行
[クローン検証を実行済み] または [クローン検証をスキップ (非推奨)] を選択します。
クローン検証を実行済み
旧アーキテクチャのクラスターのアップグレード
前提条件
クラスターが実行中状態であること。
使用上の注意
ワンクリックでのメジャーエンジンバージョンのアップグレードは 1 つのクラスターのみを対象とし、アップグレード後にソースバージョンにロールバックすることはできません。
説明ワンクリックでのメジャーエンジンバージョンのアップグレード後は、バージョンのロールバックはサポートされていません。アップグレード後に以前のバージョンにロールバックする機能が必要な場合は、データを移行してアップグレードできます。詳細については、「移行によるアップグレード」をご参照ください。
クラスターをアップグレードする際は、データベースとテーブルに関する次の点に注意してください。
MergeTree ファミリーのエンジンを使用するテーブルの場合、既存データは新しいクラスターに移行され、アップグレード中に自動的に再配布されます。
外部テーブルや Log テーブルなど、MergeTree ファミリーのエンジンを使用しないテーブルの場合、テーブルスキーマのみが移行されます。データは移行されません。
マテリアライズドビューの場合、スキーマのみが移行されます。データは移行されません。
Kafka または RabbitMQ エンジンを使用するテーブルは、移行がサポートされていません。アップグレード前にこれらのテーブルを削除する必要があります。
アップグレード後、内部ノードの IP アドレスが変更されます。データの書き込みとアクセスがノードの IP アドレスに依存している場合は、クラスターの VPC CIDR ブロックを再度取得する必要があります。詳細については、「クラスターの VPC CIDR ブロックの取得」をご参照ください。
アップグレードがビジネスに与える影響を軽減するために、アップグレードを開始する前に以下の検証を実行してください。
互換性とパフォーマンスの検証: 書き込みおよびクエリ操作の機能、構文、パフォーマンスの違いを検証します。
アップグレード期間の検証: バージョンアップグレード中にインスタンスは複数回再起動します。一部のインスタンスは、多くのデータベース、テーブル、またはパーティション (Parts) があるため、再起動に時間がかかる場合があります。
検証の実行方法の詳細については、「バージョン互換性の検証」をご参照ください。
クラスターへの影響
Community-compatible Edition クラスターのアップグレード中、書き込みが許可されない移行の最後の 10 分間を除き、クラスターは読み取りおよび書き込み操作に利用できます。残りの移行時間を表示するには、「アップグレードの進捗状況の表示」をご参照ください。
バージョン互換性の検証
ワンクリックでのメジャーエンジンバージョンのアップグレードは 1 つのクラスターのみを対象とし、ロールバックできないため、最初にアップグレードをテストする必要があります。続行する前に、新しいバージョンがソースバージョンの機能と完全に互換性があることを確認し、アップグレード期間を検証してください。以下のステップで手順を説明します。
新しいクラスターを購入して移行検証を実行します。詳細については、「データ移行によるメジャーエンジンバージョンのアップグレード」をご参照ください。
新しいクラスターで、SQL 互換性の検証を実行します。詳細については、「SQL 互換性の検証」をご参照ください。
ビジネス機能の回帰テストを実行して検証します。
クラスターのアップグレード
Alibaba Cloud アカウントで ApsaraDB for ClickHouse コンソールにログインします。
ページの左上隅で、ターゲットクラスターが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで、[Community Edition インスタンスリスト] をクリックします。
ターゲットクラスターを見つけてクラスター ID をクリックし、[クラスター情報] ページに移動します。
[クラスタープロパティ] セクションで、[バージョン] ([メジャーバージョンアップグレード] の右側) をクリックします。
プロンプトに従って次のパラメーターを設定し、[OK] ボタンをクリックします。
設定項目
説明
例
インスタンスカーネルバージョンのアップグレード先
ターゲットクラスターのバージョン。アップグレード後にバージョンをロールバックすることはできません。
現在、バージョン 23.8 のみがサポートされています。
23.8 (LTS バージョン)
書き込み中断時間
アップグレード前後のデータ整合性を確保するために、クラスターはアップグレードの最後の 10 分間に書き込み操作を自動的に停止します。書き込み中断時間を設定する際には、以下のルールが適用されます。
アップグレードを成功させるために、書き込み中断時間を少なくとも 30 分に設定してください。
アップグレードは 5 日以内に完了する必要があります。したがって、[書き込み中断時間] の終了日は、
現在の日付 + 5 日以下でなければなりません。ビジネスへの書き込み中断の影響を軽減するために、書き込み中断時間をオフピーク時に設定してください。
2025-03-20 10:08-2025-03-25 10:08インスタンス移行検証の実行
[インスタンス移行検証を実行済み] または [インスタンス移行検証をスキップ (非推奨)] を選択します。
インスタンス移行検証を実行済み
次のステップ
アップグレードの進捗状況を表示するには、「アップグレードの進捗状況の表示」をご参照ください。
指定した書き込み中断時間が経過してもクラスターのステータスが [アップグレード中] のままである場合は、移行を完了するために 書き込み中断時間を変更する 必要があります。
アップグレードがビジネスに影響を与え、迅速に停止したい場合は、アップグレードをキャンセルする ことができます。
アップグレードの進捗状況を表示する
Alibaba Cloud アカウントで ApsaraDB for ClickHouse コンソールにログインします。
ページの左上隅で、ターゲットクラスターが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで、[Community Edition インスタンスリスト] をクリックします。
ターゲットクラスターを見つけてクラスター ID をクリックし、[クラスター情報] ページに移動します。
[クラスターのステータス] セクションで、[バージョンアップグレードの進捗状況の表示] の右側にある [ステータス] をクリックします。
表示される [書き込み中断ウィンドウの変更] ダイアログボックスで、アップグレードの進捗状況を表示できます。たとえば、MergeTree スキーマ移行、データ移行の進捗状況、データ移行の推定残り時間、その他のスキーマ移行の進捗状況などを表示できます。
書き込み一時停止時間を変更する
指定した書き込み中断時間が経過してもクラスターのステータスが [アップグレード中] のままである場合、データ移行はまだ完了していません。アップグレードを正常に完了させるために、書き込み中断時間を調整する必要があります。
Alibaba Cloud アカウントで ApsaraDB for ClickHouse コンソールにログインします。
ページの左上隅で、ターゲットクラスターが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで、[Community Edition インスタンスリスト] をクリックします。
ターゲットクラスターを見つけてクラスター ID をクリックし、[クラスター情報] ページに移動します。
[クラスターのステータス] セクションで、[バージョンアップグレードの進捗状況の表示] の右側にある [ステータス] をクリックします。
表示される [書き込み中断ウィンドウの変更] ダイアログボックスで、[書き込み中断時間] を変更し、[確認] をクリックします。
説明[書き込み中断時間] の設定ルールは、「クラスターのアップグレード」で説明されている [書き込み中断時間] パラメーターのルールと同じです。
アップグレードのキャンセル
アップグレードがビジネスに影響を与え、迅速に停止したい場合は、アップグレードをキャンセルして操作を終了できます。
Alibaba Cloud アカウントで ApsaraDB for ClickHouse コンソールにログインします。
ページの左上隅で、ターゲットクラスターが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで、[Community Edition インスタンスリスト] をクリックします。
ターゲットクラスターを見つけてクラスター ID をクリックし、[クラスター情報] ページに移動します。
[クラスターのステータス] セクションで、[バージョンアップグレードの進捗状況の表示] の右側にある [ステータス] をクリックします。
表示される [書き込み中断ウィンドウの変更] ダイアログボックスで、[アップグレードのキャンセル] をクリックします。
説明[アップグレードのキャンセル] をクリックしても、アップグレードタスクはすぐには停止しません。タスクが完全に停止するまで約 5 分かかります。
FAQ
Q: メジャーエンジンバージョンのアップグレード中にエラー "Unsupported Kafka table definition" が報告された場合はどうすればよいですか?
A: 現在のバージョンの Kafka テーブルでは、DEFAULT キーワードを使用したデフォルトのフィールド値の定義がサポートされていません。これにより、カーネルパッケージの起動に失敗します。この問題を解決するには、次のステップを実行します。
select create_table_query from system.tables where engine = 'Kafka'文を実行して、すべての Kafka テーブルを検索します。見つかったテーブルのデータ定義言語 (DDL) 文をバックアップします。
見つかったテーブルを削除します。
テーブルを再作成します。
重要テーブルを再作成する際、
DEFAULTキーワードを使用してデフォルトのフィールド値を定義しないでください。
Q: メジャーエンジンバージョンのアップグレード中にエラー "Unsupported MaterializedMySQL table definition" が報告された場合はどうすればよいですか?
A: 現在のバージョンの MaterializedMySQL エンジンの設定パラメーターは、ソースクラスターのバージョンのパラメーターと互換性がありません。この問題を解決するには、次のステップを実行します。
select name from system.databases where engine = 'MaterializedMySQL'文を実行して、MaterializedMySQL エンジンを使用するデータベースを検索します。見つかったデータベースの DDL 文をバックアップします。
見つかったデータベースを削除します。
カーネルバージョンをアップグレードします。
バックアップした DDL 文をターゲットバージョンと互換性があるように調整し、MaterializedMySQL エンジンを使用するデータベースを再作成します。
Q: メジャーエンジンバージョンのアップグレード中にエラー "Unsupported table definition other than 20.3: Nullable(Array(*))/SecondaryIndex(KEY definition exists)" が報告された場合はどうすればよいですか?
A: クラスターのバージョンが 20.3 の場合、次のような Alibaba Cloud によって開発されたいくつかの機能を使用している可能性があります:
Nullable(Array(*)) 型のテーブルフィールドを定義する。
KEY キーワードを使用して定義されたセカンダリインデックス。
これらの機能はオープンソースの ClickHouse にマージバックされていないため、20.8 より後のインスタンスバージョンには含まれていません。アップグレードする前に関連するテーブルを調整する必要があります。次の操作を実行できます。
ソースクラスターのバージョンとターゲットバージョンの間の互換性を検証します。
重要20.3 と現在のバージョンの間のバージョン差が大きいため、ビジネスに影響を与えないように、アップグレードを実装する前に徹底的な検証を実行する必要があります。
Nullable(Array(*))で修飾されたフィールドを削除し、その後フィールドを再度追加します。KEY キーワードで定義されたセカンダリインデックスを削除します。アップグレードが完了したら、テーブルにスキッピングインデックスを再度追加します。
重要2 種類のインデックスは実装原理が異なるため、パフォーマンスに違いが生じる可能性があります。