本記事では、ODCにおけるSQL開発と運用保守時によく使われるコツを紹介します。
背景
OceanBase Developer Center(ODC)は、オープンソースのエンタープライズ向けデータベース協働開発ツールであり、SQL開発におけるセキュリティ、効率、チーム連携の課題解決に特化しています。ODCはOceanBaseエコシステムの核心コンポーネントであり、OceanBase、MySQL、Oracleなどのマルチデータソースをサポートし、SQLの作成・実行から変更管理までの全ライフサイクル管理機能を提供します。また、データベースの開発・保守にも多くの便利な機能を備えています。
SQL文のクイック再利用
組み込みコードスニペットの再利用
ODCには30種類以上のコードスニペットが組み込まれており、SQLウィンドウでquery_、create_、stats_などの文字を入力すると関連する組み込みスニペットが表示されます。対応するスニペットを選択すると、SQLウィンドウにその内容が表示されます。組み込みコードスニペットは、データベース内のテーブルデータサイズの統計、クラスタの利用可能リソースの確認、テナントリソースプールの作成などに使用できます。

カスタムコードスニペットの再利用
日常業務では、組み込みスニペット以外に、自分で定義したスニペットを頻繁に参照する必要がある場合があります。コードスニペット管理ページに切り替え、「新規作成」をクリックすると、必要なスニペット内容を追加できます。定義済みのコードスニペットは組み込みスニペットと同様に、SQLウィンドウでキーワードを入力して検索し、参照することができます。

SQLウィンドウ内容のクイック再利用
スクリプトファイルの管理
日常のSQL開発業務において、SQLウィンドウで編集した内容は、他の人と共有したり、他の環境で再利用したりする必要がよくあります。毎回コピー&ペーストでやると、SQLウィンドウが複数ある場合、非常に大きな作業量になります。この問題に対処するため、ODCはスクリプト管理機能を提供しており、SQLウィンドウの内容をスクリプトとして保存できるほか、スクリプトの一括ダウンロードと一括インポートもサポートしており、スクリプトの再利用を容易にします。

スクリプトファイルの実行
保存済みのスクリプトファイルは、スクリプト名をダブルクリックしてSQLウィンドウで開いて実行操作を行うだけでなく、コマンドラインウィンドウで直接実行することもできます。対象スクリプトを右クリックし、**パスをコピー**を選択すると、コマンドラインウィンドウでsourceコマンドを使用してスクリプトを実行できます。

SQLウィンドウでのオブジェクトDDLのクイック表示
日常のSQL開発業務では、SQLを作成する際に特定のオブジェクトの定義ステートメントを確認する必要がよくあります。そのオブジェクトを検索して詳細を開くと、パスが長すぎることがあります。ODC V4.3.4バージョンでは、オブジェクト名にカーソルを合わせるとそのオブジェクトのDDLが表示される機能を提供しており、オブジェクトの構造情報を素早く取得できるようになります。

結果セット管理
結果セット管理モジュールでは、ODCは非常に多くの機能を提供しています。本章では、見落とされがちですが非常に便利な小さな機能ポイントを主に紹介します。
固定結果セットタブ
特定のSQLを複数回実行し、毎回の実行結果を比較して確認する必要がある場合は、各実行に対応するSQL結果タブにマウスカーソルを合わせます。カーソルを合わせると、その結果セットタブに対応するSQL文が表示されます。右クリックすると「固定」または「固定解除」を選択でき、「固定」を選択すると、その実行結果を結果セット表示領域に固定できます。固定された結果セットは、後続のSQL実行による結果セットで上書きされません。

結果セットツールバーの便利な機能
結果セットツールバーでは、編集、ダウンロード、リアルタイム分析表示、検索、列フィルタリング、列モードなどの機能が提供されています。その中でも、リアルタイム分析表示はSQL問題を診断するための非常に有用な機能です。詳細については、OceanBase APのリアルタイムSQL診断機能の解説をご参照ください。以下では、列フィルタリングと列モードについて詳しく説明します。
列フィルタリング:クエリ結果で表示する列をすべて表示する必要がない場合は、列フィルタリングを使用して関連する列を非表示にできます。

列モード:列が非常に多いクエリ結果では、列モードを使用して行フォーマットを列フォーマットに変換し、特定の行のデータを見やすく表示できます。

結果セットの内容処理
列名のコピー
クエリ結果で、列名をダブルクリックするとコピーできます。

列プロパティの表示
クエリ結果で、列を選択し、ステータスバーでその列の備考、フィールドタイプなどの情報を確認できます。

一部の結果を選択して出力する
結果セットの一部の内容、例えば特定の行、列、またはセルのデータを他のプラットフォームに出力する必要がある場合は、出力したい内容を選択し、右クリックして「クリップボードに出力」を選択すると、結果セットをSQL形式またはCSV形式でコピーできます。その後、ターゲットファイルに貼り付けることができます。

行データの比較
結果セットの固定行機能を使用して比較する行を固定し、結果セットをスクロールして、比較する2つのデータ行を並べると、データの差異を直感的に確認できます。

複数列・複数行の選択
クエリ結果では、Shiftキーを使用すると連続する複数行・複数列を選択できます。Command/Ctrlキーを使用すると、不連続な複数行・複数列を選択できます。

結果セット内の画像の表示
結果セットに大文字列が含まれている場合、ODCは大文字列ビューアーを提供しており、画像データを直接閲覧できます。

クエリ結果の日付フォーマットの設定
クエリで取得した日付形式のデータでは、しばしば日付フォーマットを調整する必要があります。毎回SQL実行前に SET SESSION nls_date_format='YYYY-MM-DD'; ステートメントを実行してフォーマットを設定するのは面倒です。データソースレベルで、データソースを編集し、詳細設定の 接続初期化スクリプト 内容を調整することで、日付フォーマットを変更できます。

結果セットの一部列値をWHERE条件に変換
クエリ結果に対して、一部の結果セットに対して二次クエリやデータ修正処理を行いたい場合、条件を満たすレコードをWHERE条件に記述する必要があります。これらの値に手動で引用符を追加してカンマで区切ると、作業量が大幅に増加します。ODCのIN値変換機能を利用すると、結果セットをWHERE条件互換形式に素早く変換できます。

チケットの迅速な発行
SQL開発プロセスでは、開発中のデータベースに対してチケット操作を行う必要がよくあります。例えば、データベース変更タスクの開始、特定のデータのインポートまたはエクスポートなどです。現在、チケットを発行するパスは複数あります。例えば:
- チケットモジュールで対応するチケットタイプを選択して発行する。
- プロジェクトモジュールでチケットサブクラスに移動し、対応するチケットタイプを選択して発行する。
- ワークベンチの最近使用したデータベースモジュールで対応するチケットタイプを選択して発行する。
- SQLコンソールのチケットモジュールで対応するチケットタイプを選択して発行する。
この記事では、リソースツリー上で直接チケットを発行する方法を紹介します。例えば、legendデータベースの開発を行っている際に、そのデータベースに対してデータベース変更チケットを発行したい場合、リソースツリー上でそのデータベースを直接クリックして位置づけ、右クリックするだけでチケットを発行できます。

オブジェクトをドラッグしてSQL文を生成
SQL開発プロセスで、特定のテーブルのクエリ文を迅速に生成したい場合、そのテーブルをSQLウィンドウに直接ドラッグすると、そのテーブルに関するSELECT文が自動生成されます。

デフォルトでは、SQLウィンドウにドラッグするとオブジェクト名が生成されます。ユーザーの構成パラメータを変更することで、ドラッグ時に生成されるコンテンツタイプを調整できます。

オブジェクトの迅速な検索
SQL開発プロセスでは、頻繁にデータベースを切り替えたり、データベース内の特定のオブジェクトを検索したりする必要があります。ODCが提供するグローバルオブジェクト検索機能を利用すると、具体的な検索ボタンをクリックするだけで検索ポップアップが表示され、プロジェクト、データソース、データベースの各次元での検索がサポートされます。

検索されたオブジェクトについて:
- プロジェクト:リソースツリーで対象プロジェクトを特定します。
- データソース:リソースツリーで対象のデータソースを特定します。
- データベース:リソースツリーで対象のデータベースを特定し、そのデータベースのSQLウィンドウを自動的に開きます。
- データベースオブジェクト:例えばテーブルの場合、リソースツリーで対象のテーブルを特定し、そのテーブルの詳細ページのDDLタブを自動的に開きます。
DIY開発環境
日常開発において、各開発者はそれぞれ独自の開発スタイルを持っています。ODCでは、センター設定を通じてユーザーの嗜好やスペースの制約を構成できます。ユーザーの行動に関する嗜好と制約は非常に広範なテーマですが、本章では日常的に頻繁に遭遇する問題を解決するための2つの一般的なシナリオのみを紹介します。
注意
スペースレベルの設定には、スペースの管理者ロール権限が必要です。
エディタースタイルの調整
ユーザーレベルの設定では、セッションのデフォルトコミットモード、結果セットとSQL実行の動作、エディタのテーマスタイル、フォントサイズ、ショートカットキーの設定などを調整できます。

スペース内ユーザーの開発行為を制約する
ODCは多くの機能とオプションを提供しており、実際の状況に応じてこれらの機能とオプションの取り得る範囲を制限することで、スペース内の業務安定性を確保できます。例えば、クエリ件数上限 を設定することで、スペース内のすべてのSQL操作で取得できる結果セットの行数を制約できます。また、インポートチケットで構造置換を許可する を有効にすることで、インポートチケットの構造置換オプションを利用できるようになります。