すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB for MySQL:データモデリング診断

最終更新日:Jun 07, 2024

このトピックでは、パーティションフィールドの妥当性、分散フィールドのスキュー、およびレプリケートされたテーブルの妥当性についてコンソールで診断を実行する方法について説明します。

パーティションフィールドの合理性に関する診断

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億

    少数のパーティション行しか収集されない場合は、パーティションの粒度を上げることを推奨します。 たとえば、日ごとに粒度を変更できます。 多数のパーティション行が収集される場合は、パーティションの粒度を下げることを推奨します。 たとえば、月ごとに粒度を変更できます。 詳細については、「スキーマデザイン」をご参照ください。

  • 手順

    1. AnalyticDB for MySQLコンソールにログインします。

    2. ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

    3. Data Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスター ID をクリックします。

    4. 左側のナビゲーションウィンドウで、診断の最適化 をクリックします。

    5. [データモデリング診断] タブをクリックし、パーティションテーブルの診断 セクションでパーティションフィールドの妥当性診断に関する情報を表示します。

      このセクションでは、[テーブル名] 列に不当なパーティションを含むテーブルと、[不合理なパーティション] 列に不当な特定のパーティションを示します。 次に、テーブルまたは不合理なパーティションを最適化できます。 詳細については、「スキーマデザイン」をご参照ください。

分布フィールドのスキューに関する診断

AnalyticDB for MySQLでは、CREATE TABLE文でDISTRIBUTED BY HASHを指定して、ストレージノード間でデータを均等に分散できます。 ただし、データ特性が不明であるか、ビジネスが進化するにつれて変化する可能性があるため、不合理な配布フィールドが選択される可能性があります。 これにより、ノード間のリソースの不均一性やサブタスクのロングテールなどのデータスキューの問題が発生し、最終的にクエリのパフォーマンスが低下します。 配布フィールド妥当性診断は、不合理な配布フィールドを検出し、データスキューを減らすのに役立ちます。

  • 不合理な流通分野の基準

    データスキュー:

    1. 最大シャードサイズを削除してから、平均シャードサイズを計算できます。

    2. シャードのサイズが、平均シャードサイズにしきい値を掛けた値より大きい場合、または平均シャードサイズをしきい値で割った値より小さい場合、シャードは歪んでいると見なされます。 しきい値は変更でき、デフォルト値は3です。

  • 手順

    1. AnalyticDB for MySQLコンソールにログインします。

    2. ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

    3. Data Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスター ID をクリックします。

    4. 左側のナビゲーションウィンドウで、診断の最適化 をクリックします。

    5. [データモデリング診断] タブをクリックし、分布場傾斜診断 セクションに配布フィールドスキュー診断に関する情報を表示します。

      このセクションでは、スキューされているデータベーステーブルを示します。 次に、配布フィールドを再度選択できます。 詳細については、「スキーマデザイン」をご参照ください。

レプリケートされたテーブルの合理性に関する診断

AnalyticDB for MySQLでは、CREATE TABLEステートメントでDISTRIBUTED BY BROADCASTを指定できます。 レプリケートされたテーブルは、クラスターの各ストレージノードにテーブルデータの完全なコピーを保存できます。 他のテーブルをレプリケートされたテーブルに結合する場合、レプリケートされたテーブルを再配布する必要はありません。 これにより、クエリのパフォーマンスが向上します。 ただし、データが複製テーブルに書き込まれると、書き込み増幅が発生します。 AnalyticDB for MySQLの全体的な書き込みパフォーマンスに影響します。 レプリケートテーブルの妥当性診断は、不当なレプリケートテーブルの検出に役立ちます。

  • 不当なレプリケートされたテーブル

    レプリケートされたテーブルに20,000を超えるレコードが含まれている場合、テーブルは不合理と見なされます。

  • 手順

    1. AnalyticDB for MySQLコンソールにログインします。

    2. ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

    3. Data Warehouse Edition(3.0) タブで、管理するクラスターを見つけ、クラスター ID をクリックします。

    4. 左側のナビゲーションウィンドウで、診断の最適化 をクリックします。

    5. [データモデリング診断] タブをクリックし、ディメンションテーブルの合理性診断 セクションで、レプリケートされたテーブルの妥当性診断に関する情報を表示します。

      このセクションで診断結果を表示するか、複製されたテーブルでCOUNT関数を実行して、複製されたテーブルの行数を照会できます。 次に、結果を推奨値と比較できます。

関連する API 操作

DescribeTablePartitionDiagnose操作を呼び出して、データモデリング診断結果をエクスポートできます。 詳細については、「DescribeTablePartitionDiagnose」をご参照ください。