データ保護ルールで行をフィルタリングする
データ保護ルールのアクションとして行をフィルターに掛けることを選択できます。 同じ資産または参照資産内の指定された列の値に基づいて、行を含めたり除外したりすることができます。 参照資産を選択するには、コラボレーターである任意のカタログから、表示権限を持つ任意のデータ資産を選択できます。
IBM Data Virtualizationでは、行のフィルタリングはあらゆるデータ型の列に基づいて行うことができる。 フィルター値は、適用される列データ・タイプに対して有効でなければなりません。 例えば、 CREDIT_SCORE = 'ABC'
if CREDIT_SCORE
が integer 列である行を含めるなどのルールを定義することはできません。 ABC
は string フィルター値ですが、列のタイプは integerであるため、このような行フィルターを使用する照会はエラーになります。
行フィルター方式
データ保護ルールを作成するときに、アクションのリストから 「行のフィルタリング」 を選択して、フィルター方式を指定することができます。
例えば、政府、企業、および小売クライアントのデータを結合する表を持つデータベースがあるとします。 「請求処理」 テーブルには、すべてのタイプの顧客のデータと、顧客のタイプを示す CustomerType 列があります。 政府機関の顧客のすべての行を除外するデータ保護ルールを作成できます。 CustomerType 列の値が government
の場合はすべての行を除外するルールを作成することも、 CustomerType 列の値が enterprise
または retail
の行のみを含むルールを作成することもできます。
ここで、 Billing 表に CustomerType 列が含まれていないが、 CustomerID 列が含まれているとします。 別のテーブルCustomerInfo には、CustomerIDとCustomerTypeの両方のカラムがあります。 BillingテーブルとCustomerInfoテーブルを効果的に結合し、CustomerType値に基づいて行をフィルタするデー タ保護ルールを作成できます。
フィルター方式 | 詳細 | 例 |
---|---|---|
行を含める | 資産の指定された列に、指定された値の基準に適合する行のみを含めます。 | CustomerType 列の値が enterprise または retail である場合は、行を組み込みます。 |
行を除外する | 資産の指定された列の指定された値の基準に適合する行を除外します。 | CustomerType 列の値が government に等しい場合は、行を除外します。 |
参照資産に基づいて行を含める | 参照資産の指定された列に、指定された値の基準に適合する行のみを含めます。 | CustomerID 列の値が、 CustomerType 列の値が enterprise または retail と等しい行の参照データ資産の CustomerID 列の値と一致する場合は、行を組み込みます。 |
参照資産に基づいて行を除外する | 参照資産の指定された列の指定された値の基準に適合する行を除外します。 | CustomerID 列の値が、 CustomerType 列の値が government と等しい行の参照データ資産の CustomerID 列の値と一致する場合は、行を除外します。 |
行フィルター条件
行フィルター条件は、フィルターに掛ける列と値を指定します。
「行の組み込み」 または 「行の除外」 方式を選択した場合は、列名を選択し、演算子を選択し、列名を指定します。 使用可能な演算子には、 「等しい」、 「より大きい」、 「より小さい」、 「以上」、または 「以下」 があります。 さらに条件を追加できます。
「参照資産に基づく行の組み込み」 または 「参照資産に基づく行の除外」 方式を選択した場合は、参照資産を選択してから、参照資産の列をターゲット資産の列と突き合わせます。 次に、フィルターに掛ける参照資産に列名を指定し、演算子を選択し、列名を指定します。 使用可能な演算子には、 「等しい」、 「より大きい」、 「より小さい」、 「以上」、または 「以下」 があります。 さらに条件を追加できます。
値のガイドライン
- 数値のみを含む値は、数値データ・タイプとして処理されます。
- 単一引用符で囲まれた数値のみを含む値は、ストリング・データ・タイプとして処理されます。
- 数値以外の文字を含む値は、ストリング・データ・タイプとして処理されます。
- ワイルドカードはサポートされていません。 実際の値を含める必要があります。
- 値は大/小文字が区別されます。 例えば、
government
の値に基づいて行をフィルタリングするルールを作成した場合、そのルールはGovernment
の値を持つ行をフィルタリングしません。
参照資産のガイドライン
- 参照データ資産には、ターゲット・データ資産内の指定されたマッチング列と同じ値の列が含まれている必要があります。そうでない場合、ルールは適用されません。
- リファレンス・データ資産がターゲット資産とは異なるカタログにある場合、ターゲット資産のプレビューを表示できず、資産をダウンロードできません。
- リファレンス・データ資産がターゲット資産とは異なる接続資産を参照している場合、ターゲット資産のプレビューを表示できず、資産をダウンロードできません。
- Apache Hive データ資産の場合、参照資産はソース・データ資産と同じデータベースに属している必要があります。
行のフィルタリングの制限
行フィルターは、ターゲット・データ資産に対してルールを適用するための SQL ステートメントを実行します。 SQL ステートメントは、コーディングされたとおりに実行されます。 ルールが期待どおりに機能するかどうかを確認する唯一の方法は、基準が一致する管理対象カタログ内のデータ資産のスキーマを調べることです。 値は似ているが列名が異なる列を持つデータ資産は影響を受けません。 例えば、ルールがCustomerIDというカラム名を指定した場合、そのルールはCustomerIdentifierというカラム名を持つアセットには影響しない。 フィルター基準が欠落しているか正しくないためにトリガーされなかったルールの直接的な表示を受け取ることはありませんが、管理者はポリシー適用ログを調べて、そのような状況を確認することができます。 データ品質も高くなければなりません。 行フィルターを使用するデータ保護ルールが依存する値は、整合している必要があります。 例えば、 government
のスペルが goverment
であるか、 Government
と記述されている場合、その行はフィルターで除外されません。
フィルター条件に参照データ資産が含まれている場合、データ・アクセスで、結合に固有のパフォーマンスの遅延が発生する可能性があります。 例えば、結合オブジェクトの欠落による適切な索引付けの欠落や SQL エラーが原因で、遅延が発生する可能性があります。
プレビューとダウンロードが使用できない可能性があります
以下の状況では、行をフィルタリングするデータ保護ルールの影響を受ける資産をプレビューまたはダウンロードすることはできません。
- データ資産は、複数の参照資産によって行をフィルタリングする複数のデータ保護ルールの影響を受けます。
- データ資産は、ソース・データ資産と同じカタログ内にない参照資産によって行をフィルタリングするデータ保護ルールの影響を受けます。
- データ資産は、ソース・データ資産と同じ接続を使用しない参照資産によって行をフィルタリングするデータ保護ルールの影響を受けます。
もっと見る
親トピック: データ保護ルールの設計