このトピックでは、パーティションフィールドの妥当性、分散フィールドのスキュー、およびレプリケートされたテーブルの妥当性についてコンソールで診断を実行する方法について説明します。
パーティションフィールドの合理性に関する診断
AnalyticDB for MySQLでは、テーブルを作成するときに配布キーを指定して、データクエリのパフォーマンスを向上させることができます。 データ特性が不明であるか、ビジネスが進化するにつれて変化する可能性があるため、不当なパーティションフィールドが選択される可能性があります。 さらに、パーティションの妥当性は、クラスターの規模にも関係します。 パーティションフィールドの妥当性診断は、パーティションの変更を監視し、パーティションが不合理な場合にテーブルスキーマを最適化するように促すのに役立ちます。 これにより、クラスターのクエリパフォーマンスが維持または改善されます。
不合理なパーティションフィールドの基準
テーブル内のパーティション行の10% を超える行が不合理な範囲にある場合、関連するパーティションフィールドは不合理と見なされます。 次の表に、基準を示します。
ノード数
パーティション行数
1
1600万から160万
2
6400万から640万
4から6
128万から1,280万
8から14
192万から1,920万
16から30
256万から2,560万
32から62
512万から5,120万
64以上
1.024億から10.24億
少数のパーティション行しか収集されない場合は、パーティションの粒度を上げることを推奨します。 たとえば、日ごとに粒度を変更できます。 多数のパーティション行が収集される場合は、パーティションの粒度を下げることを推奨します。 たとえば、月ごとに粒度を変更できます。 詳細については、「スキーマデザイン」をご参照ください。
手順
AnalyticDB for MySQLコンソールにログインします。
ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
Data Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、診断の最適化 をクリックします。
[データモデリング診断] タブをクリックし、パーティションテーブルの診断 セクションでパーティションフィールドの妥当性診断に関する情報を表示します。
このセクションでは、[テーブル名] 列に不当なパーティションを含むテーブルと、[不合理なパーティション] 列に不当な特定のパーティションを示します。 次に、テーブルまたは不合理なパーティションを最適化できます。 詳細については、「スキーマデザイン」をご参照ください。
分布フィールドのスキューに関する診断
AnalyticDB for MySQLでは、CREATE TABLE文でDISTRIBUTED BY HASH
を指定して、ストレージノード間でデータを均等に分散できます。 ただし、データ特性が不明であるか、ビジネスが進化するにつれて変化する可能性があるため、不合理な配布フィールドが選択される可能性があります。 これにより、ノード間のリソースの不均一性やサブタスクのロングテールなどのデータスキューの問題が発生し、最終的にクエリのパフォーマンスが低下します。 配布フィールド妥当性診断は、不合理な配布フィールドを検出し、データスキューを減らすのに役立ちます。
不合理な流通分野の基準
データスキュー:
最大シャードサイズを削除してから、平均シャードサイズを計算できます。
シャードのサイズが、平均シャードサイズにしきい値を掛けた値より大きい場合、または平均シャードサイズをしきい値で割った値より小さい場合、シャードは歪んでいると見なされます。 しきい値は変更でき、デフォルト値は3です。
手順
AnalyticDB for MySQLコンソールにログインします。
ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
Data Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、診断の最適化 をクリックします。
[データモデリング診断] タブをクリックし、分布場傾斜診断 セクションに配布フィールドスキュー診断に関する情報を表示します。
このセクションでは、スキューされているデータベーステーブルを示します。 次に、配布フィールドを再度選択できます。 詳細については、「スキーマデザイン」をご参照ください。
レプリケートされたテーブルの合理性に関する診断
AnalyticDB for MySQLでは、CREATE TABLEステートメントでDISTRIBUTED BY BROADCASTを指定できます。 レプリケートされたテーブルは、クラスターの各ストレージノードにテーブルデータの完全なコピーを保存できます。 他のテーブルをレプリケートされたテーブルに結合する場合、レプリケートされたテーブルを再配布する必要はありません。 これにより、クエリのパフォーマンスが向上します。 ただし、データが複製テーブルに書き込まれると、書き込み増幅が発生します。 AnalyticDB for MySQLの全体的な書き込みパフォーマンスに影響します。 レプリケートテーブルの妥当性診断は、不当なレプリケートテーブルの検出に役立ちます。
不当なレプリケートされたテーブル
レプリケートされたテーブルに20,000を超えるレコードが含まれている場合、テーブルは不合理と見なされます。
手順
AnalyticDB for MySQLコンソールにログインします。
ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
Data Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスター ID をクリックします。
左側のナビゲーションウィンドウで、診断の最適化 をクリックします。
[データモデリング診断] タブをクリックし、ディメンションテーブルの合理性診断 セクションで、レプリケートされたテーブルの妥当性診断に関する情報を表示します。
このセクションで診断結果を表示するか、複製されたテーブルでCOUNT関数を実行して、複製されたテーブルの行数を照会できます。 次に、結果を推奨値と比較できます。
関連する API 操作
DescribeTablePartitionDiagnose操作を呼び出して、データモデリング診断結果をエクスポートできます。 詳細については、「DescribeTablePartitionDiagnose」をご参照ください。