sql >> データベース >  >> RDS >> Database

IRIWorkbenchでのテーブルフィルタリング

    IRI Workbenchは、データベース内の複数のテーブルで作業するための多くの機能を提供します。これには、次のウィザードが含まれます。データベースのプロファイル。列を分類します。データのサブセット化、マスク、および移行。テストデータを生成します。など

    IRI Workbenchのツールは、これらのウィザードで使用できるテーブルを選択したり、特定の関係図で使用したり、テーブルをスキャンして機密値のパターンやコレクションを検索したりするのに役立ちます。データベース内のテーブルが多すぎると、すべてのデータとメタデータを視覚化、選択、およびスキャンするのが困難になる可能性があります。このデータ過負荷の問題に対する1つの解決策は、特定の時間に表示されるテーブルをフィルタリングすることです。

    フィルター

    一度に小さなテーブルのセットを操作する方が簡単です。通常、一度に数百の関連テーブルが妥当な量です。幸い、IRI Workbenchには、フィルターを使用して表示されるテーブルのリストを制限するメカニズムがあります。

    フィルターで除外されたテーブルは、データベース構造のメインビューであるデータソースエクスプローラーのリストから除外されます。また、ウィザードの選択リストには表示されず、スキーマ全体のデータスキャン中にスキップされるため、見つけにくいデータの分類が高速化されます。管理可能な量のデータを使用してテーブルの数を論理セットに減らすと、ユーザーは手元のタスクに集中しやすくなります。複数の接続プロファイルを作成して、特定のタスクに関連するテーブルのみを表示できます。

    テーブル名による単純なフィルタリングは、Eclipse Data Tools Platform(DTP)プロジェクトの組み込み機能であり、IRIWorkbenchのデータベースアクセスに使用されます。ただし、特定の文字列で始まる、含まれる、または終わるテーブル名を指定する場合にのみ使用できます。より洗練されたアプローチが必要になる場合があります。

    DTPでは、スキーマごとに、テーブル名のリストを含めるか除外するかを選択することもできます。これには、すべてのテーブル名をウィザードページにロードしてから、含めるまたは除外するすべてのテーブル名にチェックマークの選択を適用することが含まれます。これは少数のテーブルではうまく機能しますが、テーブルのリストが数千、さらには数万に増えるとすぐに管理できなくなります。

    ユーザーが提供する外部リストに基づいて、名前でテーブルを選択できる比較的簡単な回避策があります。このリストは、外部ツールによって、またはSQLクエリの結果として生成される可能性があります。例として、この投稿では、これをどのように達成できるかを段階的に示します。

    テーブルリストを作成する

    テーブルリストの作成には、さまざまなクエリメソッドを使用できます。便利な方法の1つは、データの行がゼロのすべてのテーブルを除外することです。ただし、この特定の例では、SQLクエリを使用して、テーブル名との照合に基づいてフィルターに含めるテーブルのリストを抽出します。例をわかりやすくするために、選択したテーブルのリストは短くします。同じ手法で、はるかに長いリストに基づいてテーブルをフィルタリングできます。

    この例で対象となるテーブルには2つの形式があり、文字Dで始まり、任意の文字、アンダースコアが続くか、文字列「IRI_」で始まります。その後、いずれかのパターンの後に、任意の数の追加文字を続けることができます。

    構造化照会言語(SQL)では、アンダースコアは単一のワイルドカード文字を表すため、アンダースコアは意図的に対象の文字として選択されました。したがって、DTPフィルター式またはSQLステートメントでアンダースコアを使用するのは簡単ではありません。

    この例はOracleデータベースに基づいており、クエリのwhere句で文字通り使用できるようにアンダースコア文字をエスケープする方法を示しています。上記の基準に一致するテーブルリストを生成するクエリ:

    SELECT TABLE_NAME
      FROM ALL_TABLES 
      WHERE ( 
        TABLE_NAME LIKE 'D_\_%' ESCAPE '\' OR 
        TABLE_NAME LIKE 'IRI\_%' ESCAPE '\' 
      ) 
      AND OWNER LIKE 'SCOTT'
    ;

    文字通りに解釈する必要がある場合は、バックスラッシュを使用してアンダースコア文字をエスケープすることに注意してください。このクエリは、SQLスクラップブックから実行できます。 IRIWorkbench内のファイル。結果はSQL結果に表示されます ビューウィンドウ。 SQLスクラップブックファイルエディタにカーソルを置き、コンテキストメニューを右クリックして、[すべて実行]を選択します。 。

    クエリは、フィルタリングされたテーブルリストを必要とする他のスキーマ(OWNER)に対しても個別に実行する必要があります。異なるスキーマのクエリ結果は別々に保持され、同様の方法で処理されます。

    結果は結果1で表示できます SQL結果のタブ 見る。そのビューのコンテキストメニューから、[エクスポート>現在の結果]を選択します 。次のダイアログで、結果をCSV形式のファイルとしてワークスペースのプロジェクトフォルダーにエクスポートします。

    テーブルリストから接続プロファイルへのインポートファイル

    Eclipse DTPは、特別に定義されたXMLファイルとの間で1つ以上のデータベース接続プロファイルをインポートおよびエクスポートするためのメカニズムを提供します。ここでの手順は、最初にインポートファイルに挿入するCSVファイルを準備し、次にフィルタリングされる接続プロファイルをエクスポートし、最後にテーブル名のリストをフィルター条件としてエクスポートファイルを変更することです。

    IRIWorkbenchテキストエディタでCSVデータファイルを開きます。 CSVファイルは、必要に応じて正確にフォーマットされません。まず、列見出しのある最初の行を削除します。次に、テーブル名は二重引用符ではなく一重引用符で囲む必要があり、各名前はコンマで区切る必要があります。

    Ctrl + Fを押して、検索/置換を表示します ダイアログ。 Fに次のパターンを入力します ind: ^”(。*)” $ およびR e 場所: ‘\ 1’、 通常のeを選択します x プレス オプション。 交換を押します A ll ボタンをクリックして、ファイルを保存します。これで、テーブルリストファイルをインポートファイルで使用できるようになりました。

    次のステップは、テーブル名フィルターを適用せずにデータベース接続プロファイルのエクスポートを準備することです。接続プロファイルのエクスポートボタンは、データソースエクスプローラーにあります ツールバーを表示します。右向きの矢印が付いたバスケットのように見えます。フィルタが必要な接続プロファイルの横にチェックマークを付け、プロジェクトワークスペースで拡張子が.xmlのファイル名を指定します。また、ファイルの内容を暗号化するのチェックを必ず外してください ファイルを保存する前にボックスを選択してください。

    IRIWorkbenchでXMLエクスポートファイルを開きます。 ソースをクリックします XMLエディタウィンドウの下部にあるタブ。 Shift + Ctrl + Fを押して、XMLを複数の行にフォーマットし、編集しやすくします。上部近く、プロファイルのすぐ内側 タグは、属性 idを持つ行です および名前

    https://www.guidgen.com/などのWebサイトにアクセスし、新しいGUIDを生成して、 idの値を置き換えます。 属性。 名前を編集します 「filtered」という単語、または新しい接続プロファイルを識別するその他のインジケーターを追加する属性。

    以下は、接続プロファイルの例の前後のビューです。

    変更前:

    後:

    次に、次の行を見つけます。

    <org.eclipse.datatools.connectivity.sqm.filterSettings />

    タグ内にすでに追加の要素がある場合は、接続プロファイルのスキーマにすでにフィルターが適用されていることを意味します。それらはそのままにして、追加のスキーマ用に新しいテーブルフィルターを挿入することができます。

    それ以外の場合は、接続プロファイルのプロパティを編集して、再度エクスポートする前にそれらを削除できます。上記の行は、次のように置き換える必要があります。

    <org.eclipse.datatools.connectivity.sqm.filterSettings>
      <property name="::SCOTT::DatatoolsTableFilterPredicate" 
      value="IN()" />
    </org.eclipse.datatools.connectivity.sqm.filterSettings>

    テーブルのリストを含む編集済みのCSVデータファイルに戻ります。すべてのテキストを選択し、クリップボードにコピーします。 XMLファイルに戻り、すぐ上のテキストの括弧の間にクリップボードの内容を直接貼り付けます。スキーマ(OWNER)名がプロパティにある場合は注意してください タグ。フィルタリングするスキーマの名前と一致するように変更する必要があります。

    テーブルリストを含む追加のスキーマがある場合は、手順を繰り返してプロパティを追加します。 タグ。テーブルリストを含めるのではなく除外する必要がある場合は、キーワード NOTを挿入します。 INという単語の前 。この単純な例で得られるXMLを以下に示します。より複雑なデータベースでは、数千行のテーブル名が存在する場合があります。すべての編集が完了したら、ファイル>名前を付けて保存…を選択します ファイルを新しい名前で保存します。

    フィルタリングされた接続プロファイルをインポートする

    新しく作成されたフィルタリングされた接続プロファイルXMLファイルをインポートして、フィルタリングを適用した状態で、エクスポートされたプロファイルの新しいコピーを作成できます。接続プロファイルのインポートボタンは、データソースエクスプローラーにあります エクスポートボタンのすぐ左にあるツールバーを表示します。右下向きの矢印が付いたバスケットのように見えます。テーブルリストで変更されたXMLファイルを参照します。同じ名前のプロファイルがすでに存在する場合は、チェックボックスをオンにして上書きします。

    最後に、接続プロファイルを開き、フィルタリングされたスキーマに移動すると、リストにあるテーブルのみが表示されます。


    1. データベースクエリ:干し草の山から針を見つける方法は?

    2. SQLクエリを使用したコンマ区切り値

    3. ストアドプロシージャでSETXACT_ABORTONを使用する利点は何ですか?

    4. SQL Server(T-SQL)でのSTR()関数のしくみ