Microsoft Purview で Snowflake に接続して管理する
この記事では、Snowflake を登録する方法と、Microsoft Purview で Snowflake を認証して操作する方法について説明します。 Microsoft Purview の詳細については、 入門記事を参照してください。
サポートされている機能
メタデータ抽出 | フル スキャン | 増分スキャン | スコープスキャン | 分類 | ラベル付け | アクセス ポリシー | 系統 | データ共有 | ライブ ビュー |
---|---|---|---|---|---|---|---|---|---|
○ | はい | いいえ | ○ | ○ | はい | いいえ | はい | いいえ | いいえ |
Snowflake ソースをスキャンする場合、Microsoft Purview では次の処理がサポートされます。
以下を含む技術的なメタデータの抽出:
- サーバー
- Databases
- Schemas
- 列、外部キー、一意の制約を含むテーブル
- 列を含むビュー
- パラメーター データセットと結果セットを含むストアド プロシージャ
- パラメーター データセットを含む関数
- パイプ
- Stages
- 列を含むストリーム
- タスク
- Sequences
テーブル、ビュー、ストリーム、ストアド プロシージャ間の資産リレーションシップに対する静的系列をフェッチする。
ストアド プロシージャの場合は、 スキャン設定で抽出する詳細レベルを選択できます。 ストアド プロシージャ系列は、Snowflake Scripting (SQL) 言語と JavaScript 言語でサポートされ、プロシージャ定義に基づいて生成されます。
スキャンを設定するときに、指定した名前または名前パターンに基づいて 1 つ以上の Snowflake データベースを完全にスキャンするか、指定された名前または名前パターンに一致するスキーマのサブセットにスキャンのスコープを設定することもできます。
既知の制限
- オブジェクトがデータ ソースから削除された場合、現在、後続のスキャンでは、Microsoft Purview の対応する資産は自動的に削除されません。
- ストアド プロシージャ系列は、次のパターンではサポートされていません。
- Java、Python、Scala 言語で定義されているストアド プロシージャ。
- 静的 SQL クエリを変数として SQL EXECUTE IMMEDIATE を使用するストアド プロシージャ。
前提条件
アクティブなサブスクリプションを持つ Azure アカウント。 無料でアカウントを作成します。
アクティブな Microsoft Purview アカウント。
ソースを登録し、Microsoft Purview ガバナンス ポータルで管理するには、データ ソース管理者とデータ 閲覧者のアクセス許可が必要です。 アクセス許可の詳細については、「 Microsoft Purview でのアクセス制御」を参照してください。
-
- マネージド VNet Integration Runtimeを使用してプライベート リンク経由で Snowflake に接続するには、「Managed Private Endpoint 経由で Snowflake に接続する」の手順に従ってプライベート エンドポイントを設定します。
- セルフホステッド Integration Runtimeをスキャンに使用するには、最新のセルフホステッド統合ランタイムを設定します。 詳細については、 セルフホステッド統合ランタイムの作成と構成に関するガイドを参照してください。
- セルフホステッド統合ランタイムがインストールされているマシンに JDK 11 がインストールされていることを確認します。 JDK を新しくインストールして有効にした後、マシンを再起動します。
- Visual C++ 再頒布可能パッケージ (バージョン Visual Studio 2012 Update 4 以降) がセルフホステッド統合ランタイム コンピューターにインストールされていることを確認します。 この更新プログラムがインストールされていない場合は、 こちらからダウンロードできます。
スキャンに必要なアクセス許可
Microsoft Purview では、Snowflake をスキャンするための基本認証 (ユーザー名とパスワード) がサポートされています。 特定のユーザーの既定のロールがスキャンの実行に使用されます。 Snowflake ユーザーは、高度なメタデータにアクセスするために、ウェアハウスとスキャンするデータベースに対する使用権限を持ち、システム テーブルへの読み取りアクセス権を持っている必要があります。
Microsoft Purview スキャン専用のユーザーを作成し、アクセス許可を設定するためのサンプル チュートリアルを次に示します。 既存のユーザーを使用する場合は、ウェアハウス オブジェクトとデータベース オブジェクトに対する適切な権限があることを確認します。
purview_reader
ロールを設定します。 これを行うには ACCOUNTADMIN 権限が必要です。USE ROLE ACCOUNTADMIN; --create role to allow read only access - this will later be assigned to the Microsoft Purview user CREATE OR REPLACE ROLE purview_reader; --make sysadmin the parent role GRANT ROLE purview_reader TO ROLE sysadmin;
Microsoft Purview が使用するウェアハウスを作成し、権限を付与します。
--create warehouse - account admin required CREATE OR REPLACE WAREHOUSE purview_wh WITH WAREHOUSE_SIZE = 'XSMALL' WAREHOUSE_TYPE = 'STANDARD' AUTO_SUSPEND = 300 AUTO_RESUME = TRUE MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 2 SCALING_POLICY = 'STANDARD'; --grant rights to the warehouse GRANT USAGE ON WAREHOUSE purview_wh TO ROLE purview_reader;
Microsoft Purview スキャン用のユーザー
purview
を作成します。CREATE OR REPLACE USER purview PASSWORD = '<password>'; --note the default role will be used during scan ALTER USER purview SET DEFAULT_ROLE = purview_reader; --add user to purview_reader role GRANT ROLE purview_reader TO USER purview;
データベース オブジェクトに対する閲覧者権限を付与します。
GRANT USAGE ON DATABASE <your_database_name> TO purview_reader; --grant reader access to all the database structures that purview can currently scan GRANT USAGE ON ALL SCHEMAS IN DATABASE <your_database_name> TO role purview_reader; GRANT USAGE ON ALL FUNCTIONS IN DATABASE <your_database_name> TO role purview_reader; GRANT USAGE ON ALL PROCEDURES IN DATABASE <your_database_name> TO role purview_reader; GRANT SELECT ON ALL TABLES IN DATABASE <your_database_name> TO role purview_reader; GRANT SELECT ON ALL VIEWS IN DATABASE <your_database_name> TO role purview_reader; GRANT USAGE, READ on ALL STAGES IN DATABASE <your_database_name> TO role purview_reader; --grant reader access to any future objects that could be created GRANT USAGE ON FUTURE SCHEMAS IN DATABASE <your_database_name> TO role purview_reader; GRANT USAGE ON FUTURE FUNCTIONS IN DATABASE <your_database_name> TO role purview_reader; GRANT USAGE ON FUTURE PROCEDURES IN DATABASE <your_database_name> TO role purview_reader; GRANT SELECT ON FUTURE TABLES IN DATABASE <your_database_name> TO role purview_reader; GRANT SELECT ON FUTURE VIEWS IN DATABASE <your_database_name> TO role purview_reader; GRANT USAGE, READ ON FUTURE STAGES IN DATABASE <your_database_name> TO role purview_reader;
登録
このセクションでは、 Microsoft Purview ガバナンス ポータルを使用して Microsoft Purview に Snowflake を登録する方法について説明します。
登録手順
Microsoft Purview 統合カタログで新しい Snowflake ソースを登録するには、次の手順に従います。
- Microsoft Purview ガバナンス ポータルで Microsoft Purview アカウントに移動します。
- 左側のナビゲーションで [ データ マップ ] を選択します。
- [ 登録] を選択します
- [ソースの登録] で、[ Snowflake] を選択します。 [続行] を選択します。
[ ソースの登録 (Snowflake)] 画面で 、次の手順を実行します。
カタログ内にデータ ソースが一覧表示される 名前 を入力します。
orgname-accountname.snowflakecomputing.com
など、<account_identifier>.snowflakecomputing.com
の形式でサーバー URL を入力します。 Snowflake アカウント識別子の詳細については 、こちらをご覧ください。 この URL は、Snowflake 資産の完全修飾名の一部として使用され、スキャン中に Microsoft Purview が Snowflake に接続するための既定のエンドポイントであることに注意してください。該当する場合 は、追加のホスト を追加します。 スキャン操作をサーバー URL 以外の Snowflake エンドポイントに接続する場合に指定します。 スキャンのセットアップ中に接続するホストを選択できます。
ヒント
既に Snowflake をスキャンしたが、別のエンドポイントを使用するように切り替える場合 (たとえば、パブリック エンドポイントからプライベート エンドポイントに)、データ ソースに追加のホストを追加し、スキャンで接続するホストを選択して、Microsoft Purview が以前と同じ完全修飾名の資産を生成するようにすることができます。
データ ソースを登録する場合、Microsoft Purview は、サーバー URL と追加のホストが既存のソースと重複しないことをチェック一意性を実行します。
一覧からコレクションを選択します。
完了してデータ ソースを登録します。
スキャン
次の手順に従って Snowflake をスキャンし、資産を自動的に識別します。 スキャン全般の詳細については、スキャン とインジェストの概要に関するページを参照してください。
スキャンの認証
Snowflake ソースでサポートされている認証の種類は、 基本認証です。
スキャンの作成と実行
新しいスキャンを作成して実行するには、次の手順に従います。
Microsoft Purview ガバナンス ポータルで、[ソース] に移動します。
登録されている Snowflake ソースを選択します。
[ + 新しいスキャン] を選択します。
以下の詳細を指定します。
名前: スキャンの名前
統合ランタイム経由で接続する: シナリオに応じて、Azure の自動解決された統合ランタイム、マネージド VNet IR、または SHIR を選択します。 詳細については、「 シナリオに適した統合ランタイム構成を選択する」を参照してください。 マネージド VNet IR を使用してプライベート リンク経由で Snowflake に接続するには、「 マネージド プライベート エンドポイント経由で Snowflake に接続する 」の手順に従って、最初にプライベート エンドポイントを設定します。
接続のホスト: スキャン中に Snowflake への接続を確立するために使用するエンドポイントを選択します。 サーバー URL または データ ソースで構成した追加のホストから選択できます。
資格情報: データ ソースに接続する資格情報を選択します。 次のことを確認してください。
- 資格情報の作成時に [ 基本認証 ] を選択します。
- [ユーザー名] 入力フィールドに、Snowflake への接続に使用するユーザー名を指定します。
- Snowflake への接続に使用するユーザー パスワードを秘密キーに格納します。
Warehouse: 大文字と小文字を区別してスキャンを強化するために使用するウェアハウス インスタンスの名前を指定します。 資格情報で指定されたユーザーに割り当てられた既定のロールには、このウェアハウスに対する USAGE 権限が必要です。
データベース: 大文字と小文字を区別してインポートする 1 つ以上のデータベース インスタンス名を指定します。 リスト内の名前をセミコロン (;)で区切ります。 たとえば、「
DB1;DB2
」のように入力します。 資格情報で指定されたユーザーに割り当てられた既定のロールには、データベース オブジェクトに対する適切な権限が必要です。注:
複数のデータベース インスタンス名が指定されている場合、分類はテーブルに適用されません。
許容されるデータベース名パターンは、静的名またはワイルドカード % を含めることができます。 例:
A%;%B;%C%;D
:- A または から始める
- B または で終わる
- C または を含む
- 等しい D
スキーマ: インポートするスキーマのサブセットをセミコロン区切りリストとして一覧表示します。 たとえば、「
schema1;schema2
」のように入力します。 そのリストが空の場合、すべてのユーザー スキーマがインポートされます。 既定では、すべてのシステム スキーマとオブジェクトは無視されます。を使用して許容されるスキーマ名パターンは、静的名またはワイルドカード % を含めることができます。 例:
A%;%B;%C%;D
:- A または から始める
- B または で終わる
- C または を含む
- 等しい D
NOT 文字と特殊文字の使用は許可されません。
ストアド プロシージャの詳細: ストアド プロシージャからインポートされる詳細の数を制御します。
- 署名 (既定値): ストアド プロシージャの名前とパラメーター。
- コード、署名: ストアド プロシージャの名前、パラメーター、コード。
- 系列、コード、署名: ストアド プロシージャの名前、パラメーター、コード、およびコードから派生したデータ系列。
- なし: ストアド プロシージャの詳細は含まれません。
注:
スキャンにセルフホステッド Integration Runtimeを使用する場合、バージョン 5.30.8541.1 以降では、既定の Signature 以外のカスタマイズされた設定がサポートされます。 以前のバージョンでは、ストアド プロシージャの名前とパラメーターが常に抽出されます。
使用可能な最大メモリ (セルフホステッド統合ランタイムを使用する場合に適用可能): プロセスのスキャンによって使用される、お客様の VM で使用可能な最大メモリ (GB 単位)。 スキャンする Snowflake ソースのサイズによって異なります。
注:
経験則として、1000 テーブルごとに 1 GB のメモリを指定してください。
[接続のテスト] を選択して設定を検証します (Azure Integration Runtimeを使用する場合に使用できます)。
[続行] を選択します。
分類用の スキャン ルール セット を選択します。 システムの既定値、既存のカスタム ルール セット、または 新しいルール セットをインラインで作成 することができます。 詳細については、 分類 に関する記事を参照してください。
注:
テーブル名、ビュー名、スキーマ名、またはデータベース名に特殊文字が含まれている場合、分類はテーブルまたはビューに適用されません。
注:
セルフホステッド ランタイムを使用している場合は、Snowflake 分類を使用するには、バージョン 5.26.404.1 以上にアップグレードする必要があります。 Microsoft Integration ランタイムの最新バージョンについては、 こちらを参照してください。
スキャン トリガーを選択します。 スケジュールを設定することも、スキャンを 1 回実行することもできます。
スキャンを確認し、[ 保存して実行] を選択します。
スキャンとスキャンの実行を表示する
既存のスキャンを表示するには:
- Microsoft Purview ポータルに移動します。 左側のウィンドウで、[ データ マップ] を選択します。
- データ ソースを選択します。 [最近のスキャン] で、そのデータ ソースの既存の スキャンの一覧を表示したり、[ スキャン ] タブですべてのスキャンを表示したりできます。
- 表示する結果を含むスキャンを選択します。 このウィンドウには、以前のすべてのスキャン実行と、各スキャン実行の状態とメトリックが表示されます。
- 実行 ID を選択して、スキャン実行の詳細をチェックします。
スキャンを管理する
スキャンを編集、取り消し、または削除するには:
Microsoft Purview ポータルに移動します。 左側のウィンドウで、[ データ マップ] を選択します。
データ ソースを選択します。 [最近のスキャン] で、そのデータ ソースの既存の スキャンの一覧を表示したり、[ スキャン ] タブですべてのスキャンを表示したりできます。
管理するスキャンを選択します。 次のことを実行できます。
- [スキャンの編集] を選択して スキャンを編集します。
- [スキャンの実行の取り消し] を選択して、進行中 のスキャンを取り消します。
- [スキャンの削除] を選択して スキャンを削除します。
注:
- スキャンを削除しても、以前のスキャンから作成されたカタログ資産は削除されません。
系統
Snowflake ソースをスキャンした後、統合カタログ参照するか、統合カタログを検索して資産の詳細を表示できます。
[資産 - > 系列] タブに移動すると、該当する場合に資産関係を確認できます。 サポートされている Snowflake 系列シナリオのサポート されている機能 に関するセクションを参照してください。 系列全般の詳細については、「データ系列と系列ユーザー ガイド」を参照してください。
注:
ビューが異なるデータベースのテーブルによって作成された場合は、セミコロン (;) リスト内の名前を使用して、すべてのデータベースを同時にスキャンします。
マネージド プライベート エンドポイント経由で Snowflake に接続する
このセクションでは、Microsoft Purview から Azure 上の Snowflake にマネージド プライベート エンドポイント (PE) を設定するために必要な手順について説明します。 Azure Private Linkと Snowflake の詳細については、こちらをご覧ください。
Snowflake アカウントで、ターゲット エンドポイントとリソース ID を取得します。Account 管理 ロールでシステム関数 SYSTEM$GET_PRIVATELINK_CONFIG() を実行し、次のプロパティの値をメモします。
- privatelink-pls-id
- privatelink-account-url
- regionless-privatelink-account-url
- privatelink_ocsp-url
use role accountadmin; select key, value::varchar from table(flatten(input=>parse_json(SYSTEM$GET_PRIVATELINK_CONFIG())));
Microsoft Purview で、Snowflake へのマネージド プライベート エンドポイントを作成します。
- 「マネージド Virtual Network Integration Runtimeを作成する」の手順に従います。 既にある場合は、Snowflake PE をサポートするバージョン 2 にあることを確認してください。
- Snowflake のマネージド プライベート エンドポイントを作成します。
[マネージド プライベート エンドポイント] ->+ [新規] ->Snowflake に移動し、次の情報を入力します。
- リソース ID またはエイリアス: 取得した privatelink-pls-id の値を入力します。
- 完全修飾ドメイン名: privatelink_ocsp-url、 regionless-privatelink-account-url 、 privatelink-account-url を追加します。
PE を作成すると、そのプロビジョニング状態が [成功] として表示され、承認状態が [保留中] として表示されます。 PE を開き、詳細ページで マネージド プライベート エンドポイント リソース ID を 見つけます。
Snowflake テクニカル サポートに連絡 し、リソース ID を指定して、Snowflake がこの PE を承認できるようにします。
Snowflake サポートが PE が承認されたことを確認すると、マネージド プライベート エンドポイントの承認状態が Microsoft Purview で [承認済み] と表示されます。
データ ソースを登録 し、 スキャンを設定します。 スキャンを設定するときに、Snowflake PE に関連付けられているマネージド VNet IR を選択します。
トラブルシューティングのヒント
- ソース登録手順でアカウント識別子を確認します。 前面に
https://
パーツを含めないでください。 - スキャン セットアップ ページで、ウェアハウス名とデータベース名が大文字であることを確認します。
- キー コンテナーを確認します。 パスワードに入力ミスがないことを確認します。
- Microsoft Purview で設定した資格情報を確認します。 指定するユーザーには、スキャンしようとしているウェアハウスとデータベースの両方に必要なアクセス権を持つ既定のロールが必要です。
スキャンに必要なアクセス許可に関するページを参照してください。
DESCRIBE USER;
を使用して、Microsoft Purview に指定したユーザーの既定のロールを確認します。 - Snowflake のクエリ履歴を使用して、アクティビティが発生しているかどうかを確認します。
- アカウントの identifer またはパスワードに問題がある場合、アクティビティは表示されません。
- 既定のロールに問題がある場合は、少なくとも
USE WAREHOUSE . . .
ステートメントが表示されます。 - QUERY_HISTORY_BY_USER テーブル関数を使用して、接続で使用されているロールを特定できます。 専用の Microsoft Purview ユーザーを設定すると、トラブルシューティングが容易になります。
次の手順
ソースを登録したので、次のガイドに従って、Microsoft Purview とデータの詳細を確認してください。