このトピックでは、標準的かつ安全な方法でテーブルスキーマを公開する方法について説明します。 研究開発 (R&D) プロセスは、スキーマ設計、テスト、および本番環境へのスキーマ公開の3つの段階で構成されています。
背景情報
プロジェクトの作成、新しいビジネス要件の満たす、ビジネス操作の最適化などのシナリオでは、テーブルの作成またはテーブルスキーマの変更が必要になる場合があります。 たとえば、フィールドまたはインデックスを追加または削除したり、フィールド属性を調整したり、インデックスの構成を調整したりすることができます。 この場合、データ管理 (DMS) のスキーマ設計機能を使用できます。
DMSのスキーマ設計機能は、複数のR&D環境セットをサポートします。 開発プロセス中、スキーマ設計機能は、テーブルスキーマの設計で従う必要があるR&D仕様を自動的に検出し、webページでの共同開発をサポートします。
スキーマ設計機能を使用すると、ビジネス要件に基づいてテーブルスキーマを変更できます。 さらに、この機能は、さまざまな仕様に基づいて、または異なる環境で設計された関連テーブルスキーマの一貫性を保証します。 これにより、テーブルスキーマを本番環境に公開する成功率が大幅に向上します。
次の表に、スキーマデザイン機能を示します。
メリット | 説明 |
テーブルスキーマを本番環境に公開する成功率を確保します。 | 新しいテーブルスキーマを本番環境に公開する前に、スキーマ設計機能は、R&Dプロセスの各ノードでテーブルスキーマを検証します。 これにより、未検証のスクリプトによって引き起こされる公開の失敗を防ぎます。 これにより、テーブルスキーマの公開の成功率も保証されます。 |
さまざまな環境でテーブルスキーマの一貫性を確保します。 | DMSは、R&Dプロセスに基づいて、各環境のテーブルスキーマを変更します。 これにより、テストの遅延やプロジェクトのリリースの遅延など、一部の環境で失敗したスキーマの変更によって引き起こされる遅延が防止されます。 |
データ構造の標準化を保証します。 | セキュリティルールは、テーブルの作成、テーブルフィールドの変更、テーブルインデックスの変更など、複数の操作に40近くのR&D仕様を提供します。 これらの仕様により、開発者は企業のR&D仕様を満たすテーブルスキーマを設計できます。 これにより、パブリッシュされたテーブルスキーマが仕様を満たしていないために発生する運用障害が防止されます。 さらに、この機能により、O&Mスタッフが仕様をチェックする際の作業負荷が軽減され、R&Dパフォーマンスが向上し、プロジェクトの迅速な反復とリリースがサポートされます。 |
準備
Schema_Design-dev、Schema_Design-test、およびSchema_Design-productという名前の3つのApsaraDB RDS for MySQLインスタンスを作成します。 詳細については、「ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。
3つのインスタンスをDMSに登録します。 インスタンスを登録するときは、インスタンス名に基づいて、[制御モード] パラメーターを [セキュリティコラボレーション] に設定し、[環境タイプ] パラメーターを [Dev] 、[テスト] 、または [プロダクト] に設定します。 ApsaraDBインスタンスの登録方法の詳細については、「Alibaba Cloudデータベースインスタンスの登録」をご参照ください。 データベースインスタンスの環境タイプの詳細については、「インスタンスの環境タイプの変更」をご参照ください。
各データベースインスタンスにデータベース (dev_database、test_database、product_database) を作成します。
次の表に、データベースインスタンスとR&Dプロセスのノード間のマッピングを示します。
R&Dノード | スキーマデザイン | テスト | 本番環境へのスキーマ公開 |
データベースインスタンス名 | Schema_Design-dev | Schema_Design-test | Schema_Design-product |
環境タイプ | dev | test | product |
データベース名 | dev_database | test_database | product_database |
ステップ1: R&Dルールの設定
デフォルトでは、DMSのR&Dプロセスは、スキーマ設計と本番環境へのスキーマ公開で構成されます。 このセクションでは、セキュリティルールを作成し、スキーマ設計、テスト、および本番環境へのスキーマ公開のR&Dプロセスを構成する方法について説明します。
DMSコンソールV5.0 にログインします。
上部のナビゲーションバーで、 を選択します。
説明DMSコンソールをシンプルモードで使用する場合は、左上隅のアイコンの上にポインターを移動し、
を選択します。左側のナビゲーションウィンドウで、[セキュリティルール] をクリックします。 このページで、[ルールセットの作成] をクリックします。 [ルールセットの作成] ダイアログボックスで、新しいルールセットを作成するために必要なパラメーターを設定します。
説明ルールセットのカスタム名を指定できます。 この例では、SD-DTが使用されます。
、詳細ページのの左側のペインで、スキーマデザイン をクリックします。
スキーマデザインタブで、名前がR & Dプロセスをクリックし、アクション列で編集をクリックします。
設定アイテムの変更ダイアログボックスで、パラメーターを設定します。
2番目のノードの名前を
テスト
に変更し、データベース環境をテスト
に変更します。3番目のノードを追加し、3番目のノードの名前を
公開
、データベース環境をプロダクト
としてノードを設定し、ノードをアンカー に設定します。説明アンカー: R&Dプロセスを停止するために使用されるポイント。 ノードをアンカーとして設定し、そのノードにチケットを入力すると、チケットは発行済み状態になり、編集できなくなります。
[设定项目の変更] ダイアログボックスを次の図に示します。
クリック送信.
手順2: データベースインスタンスのセキュリティルールの設定
ここでは、環境タイプがdevのSchema_Design-devデータベースインスタンスの制御モードをSecurity Collaborationに設定し、手順1で作成したSD-DTルールセットを選択する方法について説明します。
DMSコンソールV5.0 にログインします。
DMSコンソールのホームページで、左側のインスタンスリストでSchema_Design-devデータベースインスタンスを右クリックします。
表示されるショートカットメニューで、 を選択します。
ステップ3: テーブルスキーマの設計、テスト、公開
このセクションでは、構成されたR&Dプロセスを使用して、データベースのテーブルスキーマを設計、テスト、および公開する方法について説明します。
DMSコンソールV5.0 にログインします。
上部のナビゲーションバーで、 を選択します。
説明DMSコンソールをシンプルモードで使用する場合は、コンソールの左上隅にあるアイコンの上にポインターを移動し、
を選択します。スキーマデザインページの右上隅で、スキーマデザイン をクリックします。
パラメーターを設定してスキーマデザインチケットを作成し、送信 をクリックします。
チケットが作成されると、チケットホームページページに移動します。 プロジェクトには5つのノードがあります。 以下の図は一例です。
スキーマデザインノードを設定します。
SQL文のインポート をクリックします。
[SQL文のインポート] ダイアログボックスで、次の文を入力し、OK をクリックします。
CREATE TABLE `teacher` ( `teacher_id` varchar(20) NOT NULL COMMENT 'Teacher ID', `teacher_name` varchar(20) NULL COMMENT 'Teacher name', `phonenumber` varchar(20) NULL COMMENT 'Teacher phone number', PRIMARY KEY (`teacher_id`) ) DEFAULT CHARACTER SET=utf8 COMMENT='Teacher table';
[物理テーブルの作成] ページで、テーブルに関する情報を確認します。基本情報,コラム情報、およびインデックス情報タブを使用します。
[保存] をクリックします。 [結果の事前チェック] ダイアログボックスで、[変更の確認と送信] をクリックします。
ベースデータベースへの変更の実行 をクリックします。
表示されるダイアログボックスで、[実行戦略] パラメーターを [今すぐ実行] に設定します。 SQL文が正しいことを確認したら、[Submit for Execution] をクリックします。
実行が承認されるまで待機すると、DMSは新しいテーブルスキーマをdev_databaseデータベースに書き込みます。
オプション: dev_databaseデータベースのSQLConsoleタブでdev_databaseデータベースをテストするか、データ変更チケットを送信します。
次のサンプルコードは、テストデータを挿入する方法を示しています。
insert into teacher (teacher_id, teacher_name, phonenumber) values ('t001', 'teacher001', '1380000001'), ('t002', 'teacher002', '1380000002'), ('t003', 'teacher003', '1380000003');
スキーマ設計ノードが検証されたら、次のノードに移動できます。
[チケットホームページ] ページで、次のノードに移動 をクリックします。
説明次のノードに移動する前に、同僚と協力してdev_databaseデータベースのテーブルスキーマを複数回変更し、変更を確認できます。 [次のノードに移動] をクリックすると、DMSは
create
スクリプトを生成し、次のノードに公開します。[次のノードに移動] ダイアログボックスで、次のノードに移動 をクリックします。
テストノードを設定します。
[チケットホームページ] ページで、ターゲットデータベースへの変更の実行.
[ターゲットデータベースへの変更の実行] ダイアログボックスで、test_databaseデータベースを選択し、実行戦略パラメーターを今すぐ実行をクリックし、実行のために提出 をクリックします。
説明実行が承認されるまで待機すると、DMSは変更されたテーブルスキーマをtest_databaseデータベースに書き込みます。
オプション: test_databaseデータベースのSQLConsoleタブでtest_databaseデータベースをテストするか、データ変更チケットを送信します。
説明テストノードが検証されたら、次のノードに移動できます。
[チケットホームページ] ページで、次のノードに移動 をクリックします。
[次のノードに移動] ダイアログボックスで、次のノードに移動 をクリックします。
本番環境へのスキーマ公開のノードを設定します。
[チケットホームページ] ページで、ターゲットデータベースへの変更の実行 をクリックします。
[ターゲットデータベースへの変更の実行] ダイアログボックスで、product_databaseデータベースを選択し、実行戦略パラメーターを今すぐ実行をクリックし、実行のために提出 をクリックします。
実行が承認されるまで待機すると、DMSは変更されたテーブルスキーマをproduct_databaseデータベースに書き込みます。 product_databaseデータベースにデータを書き込むこともできます。
[チケットホームページ] ページで、次のノードに移動 をクリックします。
[次のノードに移動] ダイアログボックスで、次のノードに移動 をクリックします。
スキーマ設計プロセスが終了し、チケットが閉じられます。
関連ドキュメント
スキーマデザインモジュールのデザインルールの詳細については、「スキーマデザイン」をご参照ください。
スキーマ設計機能のシナリオと利点の詳細については、「スキーマの設計」をご参照ください。
API操作を呼び出してスキーマデザインチケットの発行の詳細を取得する方法の詳細については、
「ListDDLPublishRecords」をご参照ください。