この記事では、分析クラスタのデータベース/テーブルマッピング設定に関する説明と操作についてご紹介します。
注意:
設定されていないテーブルマッピングのオブジェクトは、分析エンジンでクエリを実行できません。したがって、オブジェクトのロード設定が完了した後、手動でテーブルマッピングを設定する必要があります。
操作シナリオ
分析クラスタでは、複数のデータソースのデータを分析クラスタに同期することをサポートしています。データが分析クラスタにロード完了した後、デフォルトではクエリを実行できません。これは、すべてのオブジェクトにマッピング名が存在する必要があり、マッピング名を通じてのみクエリを実行できるためです。したがって、テーブルマッピングの設定が必要です。
前提条件
クラスタの状態は稼働中です。
マッピング名称の説明
分析クラスタでは、すべてのオブジェクトはTDSQL-C for MySQL分析クラスタによってソースデータベースから自動的に同期されます。ただし、分析クラスタに同期されたオブジェクトは、マッピング名を使用してテーブルオブジェクトのデータを参照する必要があります。マッピング名は変更をサポートしており、例えばソース側のデータベース/テーブル名が「db1.ta2」の場合、分析クラスタに同期後は「db3.ta3」という名前に設定できます。
マッピング名を確認する方法
2. 左側のクラスタリストでターゲットクラスタをクリックすると、クラスタ管理ページに移動します。
3. クラスタ詳細ページのコンピュートノードで詳細をクリックし、インスタンス詳細ページに移動します。
4. オブジェクト情報の下で、分析クラスタに同期されたすべてのデータベース/テーブル情報を表示できます。マッピングデータベース名とマッピングテーブル名がそのマッピング名です。マッピングデータベース名とマッピングテーブル名のフィールドが空の場合、マッピングが設定されていないことを示し、データベースでクエリを実行できません。
説明:
同期済みオブジェクトにマッピング名がない場合、マッピングデータベース名とマッピングテーブル名の前に赤い感嘆符マークが表示されます。このマークでマッピング設定の有無を素早く確認できます。
オブジェクト変更時にテーブルマッピングを設定する
1. データオブジェクトページで、同期とマッピング設定をクリックし、設定ページに移動します。
2. ステップ3のアドバンストマッピング設定では、高度なマッピング設定ポリシーを設定できます。異なるLibraDBカーネルバージョンにおける設定項目は以下の通りです。
4.2509.xより前のバージョン
デフォルトルールに基づきすべてのデータベース/テーブルマッピング名を強制設定:デフォルトルールでは、分析クラスタに同期されるすべてのデータベースは「データベース名_インスタンスID」形式で命名されます。例:データベースdatabase1のソースインスタンスがcdb-af321a3の場合、このボタンを有効にすると、このデータベースのマッピング名は「database1_cdb-af321a3」となります。
ソース側のデータベース・テーブル名と一致させ、重複オブジェクトは自動的にマッピング解除:同期リストに追加されたオブジェクトのマッピング名をソース側のデータベース・テーブル名と同じに設定します。ただし、マルチソースデータマージシナリオではデータベース・テーブル名が重複する可能性があり、この問題が発生した場合、重複したデータベース・テーブルのマッピング名は空になります。後で手動でデータベース・テーブルマッピングを設定する必要があります。
説明:
上記2つのオプションはデフォルトで無効になっています。いずれかのボタンを有効にすると、マッピング名を変更したすべてのオブジェクトが対応するルールのマッピング名に更新されます。これらのオプションを選択するのは初期設定時のみにすることをおすすめします。
4.2509.x以降のバージョン:
注意:
4.2509.x以降のバージョンではアドバンストマッピング設定をサポートしています。このバージョンより前ではベーシックマッピング設定のみサポートしており、新しく追加されたオブジェクトに対して自動的にマッピングマッチを行うことはできません。
マッピングポリシーはいつでも追加・変更が可能であり、テーブル同期に影響を与えません。マッピングを変更してもオブジェクトの再同期は発生しません。
基本ポリシー
デフォルトの基本ポリシーは有効状態であり、有効化された基本ポリシーは下部のポリシーテーブルの先頭行に新しいポリシー情報を追加します。ルールとして、分析クラスターに同期されるすべてのオブジェクトは元のデータベース名とテーブル名でマッピングされます。データベース名とテーブル名が同じテーブルが存在する場合、自動的に統合されます。テーブル構造が不一致の場合、クエリ時にエラーが発生します。指定したインスタンスのデータベース/テーブルを他の名前にマッピングさせるため、手動で他のアドバンストポリシーを追加することができます。
既存オブジェクトマッピングポリシー
有効にすると、分析クラスターに同期されたすべてのオブジェクトのマッピング名が、ポリシーテーブルのルールに従って更新されます。現在マッピング名を手動で変更したかどうかに関わらず適用されます。
アドバンストポリシー
ポリシー追加をクリックすると、現在の分析クラスターに新しいポリシーが自動的に追加され、ポップアップウィンドウで設定を行うことができます。ポリシーが下位にあるほど、ルールの優先度が高くなります。その適用ロジックは上から順にマッチングを行い、2つのルールが競合するシナリオでは、最下部のルールが優先されます。
ポリシー追加ポップアップウィンドウの設定項目は以下の通りです:
|
ソースインスタンス | 「すべて」または「指定されたインスタンスID」の選択に対応しており、現在のルールが適用されるインスタンス範囲を表します。 |
マッチングモード | デフォルトでは正規表現マッチングモードとなります。 |
ソースデータベース | ソースデータベースの正規表現の入力をサポートしており、正規表現にヒットしたすべてのソースデータベースにこのルールが適用されます。例えば「.*」はすべてのデータベースを表します。 |
ソーステーブル | ソーステーブルの正規表現の入力をサポートしており、正規表現にヒットしたすべてのソーステーブルにこのルールが適用されます。例えば「.*」はすべてのテーブルを表します。 |
ターゲットデータベース | マッピングが必要なデータベース名の入力をサポートします。「元のオブジェクト名と同じにする」にチェックを入れる場合、このオプションはデフォルトで * となり、分析エンジンに同期されるマッピングされたデータベース名は変更されないことを表します。 |
ターゲットテーブル | マッピングが必要なテーブル名の入力をサポートします。「元のオブジェクト名と同じにする」にチェックを入れる場合、このオプションはデフォルトで * となり、分析エンジンに同期されるマッピングされたテーブル名は変更されないことを表します。 |
ポリシールールのシナリオ例
|
基本ルール:元の名前によるマッピング | すべて | .* | .* | * | * |
すべての XX_ で始まるデータベースを XX データベースにマージします。 | すべて | ^XX_.* | .* | XX | * |
すべての XX で始まるテーブルを XX.XX_TEST にマージします。 | すべて | .* | ^XX_.* | XX | XX_TEST |
A.A を B.B にマッピングします。 | インスタンスID | A | A | B | B |
A データベースを B データベースにマッピングします。 | すべて | A | .* | B | * |
すべてのインスタンスのすべてのデータベーステーブルをまとめます。 | すべて | .* | .* | DB2 | * |
指定されたインスタンスのすべての T_ で始まるデータベースを XX データベースにマージします。 | インスタンスID | ^T_.* | .* | XX | * |
指定されたインスタンスのすべての T_ で始まるテーブルを XX.T_TEST にマージします。 | インスタンスID | .* | ^T_.* | XX | T_TEST |
指定されたインスタンスのすべてのデータベース名を xx_1 にマッピングします。 | インスタンスID | .* | .* | *_1 | * |
指定されたインスタンスのAデータベースのテーブル名をB.xxx_1にマッピングします。 | インスタンスID | A | .* | B | *_1 |
オブジェクトリストでのデータベース/テーブルマッピング設定
オブジェクト情報リスト内にマッピング名がないオブジェクトがある場合、オブジェクトリストのマッピングデータベース名列とマッピングテーブル名列に赤い感嘆符マークが表示されます。この場合、該当テーブルの操作列にあるマッピング設定をクリックすると、選択したテーブルに対してマッピング名の設定が行えます。
注意:
自動マッピングポリシーと手動でのテーブルマッピング設定は競合しません。手動設定は一時的な変更であり、自動マッチングが有効になった後に実施される一回限りの操作です。「既存オブジェクトマッピングポリシー」にチェックを入れると、手動マッピングが無効化されます。オブジェクトのマッピング名を恒久的に設定する必要がある場合は、自動マッピングポリシーでマッピングルールを設定してください。
一括でオブジェクトのマッピング名を設定する
複数のオブジェクトに同時にマッピング名を設定する必要がある場合、複数選択機能で対象オブジェクトをチェックしてください。その後、オブジェクト情報の後ろにあるマッピング設定をクリックします。マッピング設定画面の右上に、現在選択されているオブジェクト数が表示されます。
説明:
数量表示をクリックすると、ポップアップで選択済みオブジェクトをクリアできます。
データベース/テーブルオブジェクトのマッピング名が設定済みかどうかを判断する方法
オブジェクトにマッピング名が設定されていない場合、そのデータベース名とテーブル名がデフォルトでマッピングデータベース名とマッピングテーブル名のテキストボックスに入力されます。
オブジェクトにマッピング名が既に設定されている場合、変更後のデータベース名とテーブル名がそれぞれマッピングデータベース名とマッピングテーブル名のテキストボックスに表示されます。