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 でのアクセス制御」を参照してください。
注:
データ ストアにパブリックにアクセスできない場合 (データ ストアでオンプレミス ネットワーク、プライベート ネットワーク、または特定の IP からのアクセスが制限されている場合)、 セルフホステッド統合ランタイムを構成して接続する必要があります。
- データ ストアにパブリックにアクセスできない場合は、最新の セルフホステッド統合ランタイムを設定します。 詳細については、 セルフホステッド統合ランタイムの作成と構成に関するガイドを参照してください。
- セルフホステッド統合ランタイムがインストールされているマシンに 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 を登録する方法について説明します。
登録手順
データ カタログに新しい Snowflake ソースを登録するには、次の手順に従います。
- Microsoft Purview ガバナンス ポータルで Microsoft Purview アカウントに移動します。
- 左側のナビゲーションで [ データ マップ ] を選択します。
- [ 登録] を選択します
- [ソースの登録] で、[ Snowflake] を選択します。 [続行] を選択します。
[ ソースの登録 (Snowflake)] 画面で 、次の手順を実行します。
カタログ内にデータ ソースが一覧表示される 名前 を入力します。
Snowflake アカウントへの接続に使用するサーバー URL を、 などの形式
<account_identifier>.snowflakecomputing.com
orgname-accountname.snowflakecomputing.com
で入力します。 Snowflake アカウント識別子の詳細については 、こちらをご覧ください。コレクションを選択するか、新しいコレクションを作成します (省略可能)
完了してデータ ソースを登録します。
スキャン
次の手順に従って Snowflake をスキャンし、資産を自動的に識別します。 スキャン全般の詳細については、スキャン とインジェストの概要に関するページを参照してください。
スキャンの認証
Snowflake ソースでサポートされている認証の種類は、 基本認証です。
スキャンの作成と実行
新しいスキャンを作成して実行するには、次の手順に従います。
サーバーにパブリックにアクセスできる場合は、手順 2 に進みます。 それ以外の場合は、セルフホステッド統合ランタイムが構成されていることを確認する必要があります。
- Microsoft Purview ガバナンス ポータルで、管理センターに移動し、[統合ランタイム] を選択します。
- セルフホステッド統合ランタイムが使用可能であることを確認します。 設定されていない場合は、 ここで 説明する手順を使用して、セルフホステッド統合ランタイムを設定します。
Microsoft Purview ガバナンス ポータルで、[ソース] に移動します。
登録されている Snowflake ソースを選択します。
[ + 新しいスキャン] を選択します。
以下の詳細を指定します。
名前: スキャンの名前
統合ランタイム経由で接続する: サーバーがパブリックにアクセス可能な場合は Azure 自動解決統合ランタイムを選択し、一般公開されていない場合は構成済みのセルフホステッド統合ランタイムを選択します。
資格情報: データ ソースに接続する資格情報を選択します。 次のことを確認してください。
- 資格情報の作成時に [ 基本認証 ] を選択します。
- [ユーザー名] 入力フィールドに、Snowflake への接続に使用するユーザー名を指定します。
- Snowflake への接続に使用するユーザー パスワードを秘密キーに格納します。
Warehouse: 大文字と小文字を区別してスキャンを強化するために使用するウェアハウス インスタンスの名前を指定します。 資格情報で指定されたユーザーに割り当てられた既定のロールには、このウェアハウスに対する USAGE 権限が必要です。
データベース: 大文字と小文字を区別してインポートする 1 つ以上のデータベース インスタンス名を指定します。 リスト内の名前をセミコロン (;)で区切ります。 たとえば、「
db1;db2
」のように入力します。 資格情報で指定されたユーザーに割り当てられた既定のロールには、データベース オブジェクトに対する適切な権限が必要です。SQL LIKE 式構文を使用する許容されるデータベース名パターンには、%. を使用するものが含まれます。 例: :
A%;%B;%C%;D
- A または から始める
- B または で終わる
- C または を含む
- 等しい D
スキーマ: インポートするスキーマのサブセットをセミコロン区切りリストとして一覧表示します。 たとえば、「
schema1;schema2
」のように入力します。 そのリストが空の場合、すべてのユーザー スキーマがインポートされます。 既定では、すべてのシステム スキーマとオブジェクトは無視されます。SQL LIKE 式構文を使用する許容されるスキーマ名パターンには、 % を使用するものが含まれます。 例: :
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 ガバナンス ポータルに移動します。 左側のウィンドウで、[ データ マップ] を選択します。
データ ソースを選択します。 [最近のスキャン] で、そのデータ ソースの既存の スキャンの一覧を表示したり、[ スキャン ] タブですべてのスキャンを表示したりできます。
管理するスキャンを選択します。 次のことを実行できます。
- [スキャンの編集] を選択して スキャンを編集します。
- [スキャンの実行の取り消し] を選択して、進行中 のスキャンを取り消します。
- [スキャンの削除] を選択して スキャンを削除します。
注:
- スキャンを削除しても、以前のスキャンから作成されたカタログ資産は削除されません。
- ソース テーブルが変更され、Microsoft Purview の [スキーマ] タブで説明を編集した後にソース テーブルを再スキャンした場合、資産は スキーマ の変更で更新されなくなります。
系統
Snowflake ソースをスキャンした後、 データ カタログを参照 するか 、データ カタログを検索 して資産の詳細を表示できます。
[資産 -> 系列] タブに移動すると、該当する場合に資産関係を確認できます。 サポートされている Snowflake 系列シナリオのサポート されている機能 に関するセクションを参照してください。 系列全般の詳細については、「データ系列と系列ユーザー ガイド」を参照してください。
注:
ビューが異なるデータベースのテーブルによって作成された場合は、セミコロン内の名前を使用してすべてのデータベースを同時にスキャンします (;)リスト。
トラブルシューティングのヒント
- ソース登録手順でアカウント識別子を確認します。 前面にパーツを含
https://
めないでください。 - スキャン セットアップ ページで、ウェアハウス名とデータベース名が大文字であることを確認します。
- キー コンテナーを確認します。 パスワードに入力ミスがないことを確認します。
- Microsoft Purview で設定した資格情報を確認します。 指定するユーザーには、スキャンしようとしているウェアハウスとデータベースの両方に必要なアクセス権を持つ既定のロールが必要です。
スキャンに必要なアクセス許可に関するページを参照してください。 を使用して
DESCRIBE USER;
、Microsoft Purview に指定したユーザーの既定のロールを確認します。 - Snowflake のクエリ履歴を使用して、アクティビティが発生しているかどうかを確認します。
- アカウントの identifer またはパスワードに問題がある場合、アクティビティは表示されません。
- 既定のロールに問題がある場合は、少なくともステートメントが
USE WAREHOUSE . . .
表示されます。 - QUERY_HISTORY_BY_USER テーブル関数を使用して、接続で使用されているロールを特定できます。 専用の Microsoft Purview ユーザーを設定すると、トラブルシューティングが容易になります。
次の手順
ソースを登録したので、次のガイドに従って、Microsoft Purview とデータの詳細を確認してください。