はじめに
Management Consoleのデータベースデザイナを使用してプロジェクションの最適化やクエリスペシフィックプロジェクションを作成した場合、デプロイが完了した後もデザイン内容は履歴として保持されます。この内容を参照することで、過去のデザインをどのような設定で作成したか振り返ることができます。
一方で、デザイン内容を保持するためにデータベース上では「v_dbd_デザイン名」という名称のスキーマとそれに関連するテーブルが多数作成されます。
以下のようなケースに該当する場合、デザインと合わせて上記のオブジェクトを削除する方法が用意されているため、その内容を本記事でご紹介します。
なお、デザインを削除してもデプロイ済みのプロジェクションは削除されません。
・デザイン情報を保持するスキーマとテーブルをデータベース上に残したくない場合
・データベースデザイナ(Administration Toolsも含む)の処理が何らかの理由でエラー終了して不要なデザイン情報が残ってしまい、同じデザイン名で再度デザインを作成することができない場合
デザインを削除する方法
デザインを削除する方法は以下の2つがあります。- ①SQLで削除
- ②Management Consoleのデータベースデザイナで削除
SQLでデザインを削除する方法
構文
以下のSQLでデザインを削除します。2つ目のパラメータ「force-drop」は、データベースデザイナがデザイン処理を実行している最中など、強制的に終了する場合に「true」を指定します。
デフォルトは「false」です。
1 |
SQL=> SELECT DESIGNER_DROP_DESIGN ('デザイン名' [, force‑drop ]); |
実行例
以下は、「design1」というデザインを削除する実行例です。「v_dbd_デザイン名」スキーマのオブジェクトが、デザイン情報を格納したテーブルとなっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/*** デザイン削除前の確認 ***/ dbadmin=> \d List of tables Schema | Name | Kind | Owner | Comment -----------------------+-------------------------------------------+-------+---------+--------- public | CUSTOMER | table | dbadmin | public | DATE1 | table | dbadmin | public | LINEORDER | table | dbadmin | public | PART | table | dbadmin | public | SUPPLIER | table | dbadmin | v_dbd_design1 | vs_deployment_projection_statements | table | dbadmin | v_dbd_design1 | vs_deployment_projections | table | dbadmin | v_dbd_design1 | vs_deployments | table | dbadmin | /*** 中略 ***/ v_dbd_design1_design1 | vs_output_query_projections | table | dbadmin | v_dbd_design1_design1 | vs_projection_columns_encoding_storage | table | dbadmin | v_dbd_design1_design1 | vs_segmented_projection_data_distribution | table | dbadmin | /*** デザインの削除 ***/ dbadmin=> SELECT DESIGNER_DROP_DESIGN ('design1'); DESIGNER_DROP_DESIGN ---------------------- 0 /*** デザイン削除後の確認 ***/ dbadmin=> \d List of tables Schema | Name | Kind | Owner | Comment --------+-----------+-------+---------+--------- public | CUSTOMER | table | dbadmin | public | DATE1 | table | dbadmin | public | LINEORDER | table | dbadmin | public | PART | table | dbadmin | public | SUPPLIER | table | dbadmin | |
Management Consoleのデータベースデザイナで削除する方法
以下は、「design2」というデザインを削除する実行例です。実行例
①Management Consoleにログインして「Design」画面を開き、画面左側に表示されているデザイン「design2」をクリックします。②画面上部の「Delete Design」をクリックします。
デザイン削除の確認メッセージが表示されるため、「OK」をクリックします。
③削除が完了すると、元の画面に戻ります。
本実行例では、1つもデザインが存在しないため、デザインの新規作成ウィザードが自動的に表示されています。
以上で完了です。
参考情報
<DESIGNER_DROP_DESIGN関数のマニュアル>https://www.vertica.com/docs/9.3.x/HTML/Content/Authoring/SQLReferenceManual/Functions/VerticaFunctions/DatabaseDesigner/DESIGNER_DROP_DESIGN.htm