データ分類を使用する¶
このトピックでは、スキーマ内のテーブルを分類し、分類結果を確認して、 SQL または Snowsight を使用してテーブル内の列に システムタグ を設定する方法について説明します。
概要¶
データスチュワードは、データプライバシー規制を満たすためにスキーマ内のテーブルを分類できます。これらの表には次のシナリオが含まれています。
スキーマ内の新しいテーブル。
同じスキーマ内のテーブルの新しい列または変更された列。
再度分類が必要な可能性がある、過去に分類されたテーブル。
これらのシナリオを評価することで、データ管理者は機密情報や個人情報を分類できるようになります。列にシステムタグを設定することで、データの監視が容易になります。その後、データエンジニアは Snowsight のマスキングポリシーや行アクセスポリシー、または SQL を使用して、個人情報や機密データを保護できます。
データの分類を始める¶
スキーマ内の単一のテーブルや複数のテーブルを分類する前に、次を実行します。
ワークフローを選択します。
プログラムによるアプローチを希望する場合は、次のセクションの手順に従ってください。
ウェブインターフェイスを使用する場合は、 Snowsight を使用してスキーマ内のテーブルを分類する セクションの手順に従ってください。
使用するウェアハウスを決めます。たとえば、正確なレポート作成と予算編成を可能にするために、自分が所属するコストセンターまたはビジネスユニットに一致するウェアハウスを使用します。
ワークフローにレイテンシを考慮します。 Snowsight は Snowsight の Databases 領域を12時間ごとに更新し、その時点で更新されたテーブルを分類できます。
現在のロールのアクセス制御構成を確認します。
そのロールを持つユーザーがアクセスできるオブジェクトの付与を確認するには、 SHOW GRANTS TO ROLE ステートメントを使用します。使用中のロールには、最低限次の付与が必要です。
分類プロセス中に使用するウェアハウスに対する USAGE。
分類プロセスを開始するテーブルに対する SELECT。
SNOWFLAKE.CORE_VIEWER データベースロールで、列にシステムタグを設定できます。
Account Usage DATA_CLASSIFICATION_LATEST ビューをクエリする SNOWFLAKE.GOVERNANCE_VIEWER データベースロール。
その他の付与の組み合わせについては、 データ分類権限の参照 をご参照ください。
アクセス制御モデルにより、さまざまなペルソナがワークフローに参加できるようになります。たとえば、データスチュワードはスキーマ内のテーブルの分類をステージングし、データエンジニアは Snowsight で結果を評価できます。最適なアクセス制御モデルとワークフローを選択してください。
SQL を使用して単一のテーブルを分類する¶
このアプローチでは、 SQL を使用してテーブルを分類し、テーブル内の列にシステムタグを設定します。 データの分類を始める セクションを確認して、使用中のロールに、スキーマ内のテーブルを分類するために必要なアクセス制御が付与されていることを確認します。
この手順では、 適切な付与 を持つロールを使用することを前提としています。SQL を使用してスキーマ内のテーブルを分類し、テーブル列にシステムタグを設定するには、次の手順を実行します。
分類するテーブルを特定します。
SYSTEM$CLASSIFY ストアドプロシージャを呼び出して、テーブル内の列を分類してタグ付けします。
CALL SYSTEM$CLASSIFY('hr.tables.empl_info', {'auto_tag': true});
TAG_REFERENCES_ALL_COLUMNS Information Schemaテーブル関数を呼び出して、テーブル内の列のタグの割り当てを確認します。
SELECT * FROM TABLE( hr.INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS( 'hr.tables.empl_info', 'table' ));
その後、Account Usage DATA_CLASSIFICATION_LATEST ビューをクエリして、テーブルの最新の分類結果を確認できます。
分類する各テーブルについて、この手順を繰り返します。
SQL を使用してスキーマ内のテーブルを分類する¶
このアプローチでは、 SQL を使用してスキーマ内のすべてのテーブルを分類し、各テーブルの列にシステムタグを設定します。この手順では、以下を前提としています。
この手順では、 適切な付与 を持つロールを使用することを前提としています。
1000個未満のテーブルオブジェクトを含むスキーマを選択します。 SHOW TABLES IN SCHEMA コマンドを使用して、スキーマ内のテーブルオブジェクトの数を確認できます。
SQL を使用してスキーマ内のすべてのテーブルを分類し、各テーブルの各列にシステムタグを設定するには、次の手順を実行します。
分類するテーブルを含むスキーマを特定します。
SYSTEM$CLASSIFY_SCHEMA ストアドプロシージャを呼び出して、スキーマ内のテーブルの分類をスケジュールします。
CALL SYSTEM$CLASSIFY_SCHEMA('hr.tables', {'auto_tag': true});
出力に1つ以上のテーブルに対する
failed
メッセージが含まれている場合は、 SNOW GRANTS ON TABLE コマンドを使用して、指定されたテーブルに対する付与を決定します。例:SHOW GRANTS ON TABLE hr.tables.salary;
必要に応じて、 SYSTEM$CLASSIFY_SCHEMA ストアドプロシージャを呼び出すロールに未分類テーブルの権限を付与します。それ以外の場合は、スキーマ内の各テーブルで SYSTEM$GET_CLASSIFICATION_RESULT 関数を呼び出します。
SELECT SYSTEM$GET_CLASSIFICATION_RESULT('hr.tables.empl_info');
TAG_REFERENCES_ALL_COLUMNS Information Schemaテーブル関数を呼び出して、テーブル内の列のタグの割り当てを確認します。
SELECT * FROM TABLE( hr.INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS( 'hr.tables.empl_info', 'table' ));
その後、Account Usage DATA_CLASSIFICATION_LATEST ビューをクエリして、テーブルの最新の分類結果を確認できます。
分類するテーブルを含む各スキーマについて、この手順を繰り返します。
Snowsight を使用してスキーマ内のテーブルを分類する¶
このアプローチでは、 Snowsight を使用してスキーマ内のテーブルの分類をステージングし、スキーマ内の各テーブルの列に自動的にタグを付けます。この手順では、 適切な付与 を持つロールを使用することを前提としています。
スキーマ内のすべてのテーブルを分類し、スキーマに含まれる各テーブルの各列にシステムタグを設定するには、 Snowsight で次の手順を実行します。
スキーマ内のテーブルの分類とタグ付けをトリガーします。
Snowsight で、オブジェクトエクスプローラを使用して、選択したスキーマに移動します。
More メニュー(...)を選択し、 Classify Data を選択します。
ウェアハウスを選択し、 Auto-tagging data オプションをオンにします。
Classify Data and Apply Tags を選択します。
このオプションを選択すると、以前に分類したテーブルを再分類できます。
Snowsight は、一度に1000個までのテーブルを分類します。スキーマに1000個以上のテーブルが含まれる場合は、まず最初のテーブルのバッチに対してこの手順を完了させ、残りのテーブルに対してこの手順を繰り返します。
あるいは、 Worksheet を開いて、 SQL を使用してスキーマ内のテーブルを分類する に示されるように SYSTEM$CLASSIFY_SCHEMA を呼び出すこともできます。このオプションを選択した場合は、このストアドプロシージャを呼び出した後、オブジェクトエクスプローラーでスキーマに移動して戻ります。
分類プロセスが完了するまで待ちます。完了すると、 CLASSIFICATION 列に緑のチェックマークが表示されます。
View Results を選択します。
Auto-tagging data オプションをオフにすることに決めた場合は、 Review Classification を選択し、結果を評価して各列に設定するタグ値を決定します。
Column details タブの列に設定されたタグを表示するには、 SNOWFLAKE データベースで IMPORTED PRIVILEGES が付与されているロールを使用します。
VALUE TO BE APPLIED 列を評価し、必要に応じてタグ値を変更して、 Complete classification を選択します。
Tables タブには Classification results reviewed and applied が表示されます。タグの割り当てを確認するには、次の手順を実行します。
テーブルを選択します。
Columns タブに移動します。
TAGS 列を確認します。
あるいは、次を実行することもできます。
ワークシートを使用して TAG_REFERENCES_ALL_COLUMNS Information Schemaテーブル関数を呼び出し、特定のテーブル内の列のタグ割り当てを表示します。その他のオプションについては、 追跡システムタグ をご参照ください。
オブジェクトエクスプローラーを使用してビューに移動するか、ワークシートでビューをクエリして、Account Usage DATA_CLASSIFICATION_LATEST ビューの記録を確認します。
分類するテーブルを含む他のスキーマに対しても、これらの手順を繰り返します。