この記事では、Snowflake ソースを登録し、データ マップ スキャンを実行し、Microsoft Purview 統合カタログでデータ品質接続を構成する方法について説明します。 これらの手順を完了したら、Snowflake データをプロファイリングし、データ品質スキャンを実行できます。
サポートされている Snowflake メタデータ
Snowflake データ ソースをスキャンすると、Microsoft Purview は技術メタデータを抽出します。 スキャンでは、次のオブジェクトがキャプチャされます。
- サーバー、データベース、スキーマ、テーブル
- ビュー、外部キー、および一意の制約
- ストアド プロシージャとそのパラメーター
- 関数とそのパラメーター
- パイプ、ステージ、ストリーム
- タスクとシーケンス
Data Map に Snowflake ソースを登録する
Microsoft Purview 統合カタログで新しい Snowflake ソースを登録するには、次の手順に従います。
- [Microsoft Purview ポータル] にサインインします。
- [Data Map solution]\(データ マップ ソリューション\) カードを選択します。 Data Map ソリューション カードが表示されない場合は、[すべてのソリューションを表示] を選択し、[コア] セクションから [データ マップ] を選択します。
- [登録] を選択します。
- [ ソースの登録] で、[ Snowflake] を選択します。
データ マップ スキャンを設定する
登録されている Snowflake ソースのスキャンを設定するには、次の手順に従います。
- 登録されている Snowflake ソースを選択します。
- [ 新しいスキャン] を選択します。
- 次のユーザー詳細を入力します。
- [名前]: スキャンの名前。
- 統合ランタイム経由で接続する: シナリオに合わせて、自動解決された統合ランタイム、マネージド Virtual Network IR、または SHIR を選択します。
- 接続のホスト: データ ソースで構成したサーバー URL または別のホストを選択します。
- 資格情報: データ ソースの資格情報を選択します。 基本認証を使用し、Snowflake ユーザー名を指定し、秘密キーにパスワードを格納します。
- 倉庫: 大文字で倉庫名を指定します。 資格情報の既定のロールには、このウェアハウスに対する USAGE 権限が必要です。
- データベース: 1 つ以上のデータベース名を大文字で指定し、セミコロンで区切ります (たとえば、
DB1;DB2)。 資格情報の既定のロールには、これらのデータベース オブジェクトに対する権限が必要です。 - スキーマ: インポートするスキーマをセミコロンで区切って一覧表示します。
- [接続のテスト] を選択して設定を検証します (Azure Integration Runtimeを使用する場合に使用できます)。
- [続行] を選択します。
- 分類用のスキャン ルール セットを選択します。 システムの既定値、既存のカスタム ルール セット、または新しいルール セットをインラインで作成することができます。
- スキャンを確認し、[ 保存して実行] を選択します。
スキャンが完了すると、Snowflake のデータ資産が統合カタログ検索で使用できるようになります。 Microsoft Purview で Snowflake に接続して管理する方法の詳細については、「Microsoft Purview で Snowflake に接続して管理する」を参照してください。
重要
データ ソースからオブジェクトを削除しても、後続のスキャンでは、Microsoft Purview の対応する資産は自動的に削除されません。
Snowflake データ品質接続を設定する
スキャンが完了すると、スキャンされた資産はカタログ化とガバナンスの準備が整います。 資産でデータ品質スキャンを実行するには、Microsoft Purview で Snowflake 接続を設定します。
重要
- データ品質スチュワードは、データ品質接続を設定するために Snowflake への 読み取り専用アクセス権 を必要とします。
- Snowflake コネクタは 、https:// を受け入れられません。 サーバー名を追加してデータ ソース接続を構成するときに、 https:// を削除します。
- パブリック アクセスを無効にする場合は、[信頼できる Microsoft サービスをKey Vaultに許可する] を選択する必要があります。 この要件は、Snowflake ワークスペースではなく、Key Vaultにのみ適用されます。
Microsoft Purview ポータルで、統合カタログを開きます。
[ 正常性管理] で、[ データ品質] を選択します。
一覧からガバナンス ドメインを選択し、[管理] ドロップダウン リストから [接続] を選択します。
[ 接続 ] ページで接続を構成します。
- 接続名と説明を追加します。
- ソースの種類 Snowflake を選択します。
- サーバー名、ウェアハウス名、データベース名、スキーマ名、テーブル名を追加します。
- 認証方法として[ 基本]、[ 秘密キー (プレビュー)]、または [OAuth (プレビュー)]を選択します。
- ユーザー名を追加します。
- 資格情報の追加: Azureサブスクリプション、Key Vault接続、シークレット名、シークレット バージョン。
- [Azure Virtual Networkで Snowflake インスタンスが実行されている場合はマネージド VNet を有効にする] を選択し、Azure リージョン、Private Link リソース ID、完全修飾ドメイン名を追加します。
接続をテストして、動作することを確認します。 Virtual Networkを使用している場合、テスト接続機能はサポートされていません。
ターゲット Snowflake プライベート リンクのリソース ID の形式は次のとおりです: /subscriptions/(subscription_id)/resourcegroups/az(region)-privatelink/providers/microsoft.network/privatelinkservices/sf-pvlinksvc-az(region)。
- リージョン ID と完全修飾名を取得するには、
SYSTEM_WHITE_LISTとSYSTEM_WHITE_LIST_PRIVATELINKを実行して、パブリック ホストと許可リスト ホストのSNOWFLAKE_DEPLOYMENT、SNOWFLAKE_DEPLOYMENT_REGIONLESS、OCSP_CACHEの値を取得します。 - サブスクリプション ID を取得するには、
ACCOUNTADMINとしてSYSTEM$GET_SNOWFLAKE_PLATFORM_INFO()を実行して、snowflake-vnet-subnet-ids 値を取得します。 Snowflake Azure テナントのPrivate Linkのサブスクリプション ID は、snowflake-vnet-subnet-ids 出力から取得されます。
秘密キー認証 (プレビュー)
暗号化キーを生成するためのコマンド ライン ツールである OpenSSL を使用して、パスフレーズの有無にかかわらず秘密キーを作成できます。 パスフレーズを使用して秘密キーを生成する場合は、次のスクリーンショットに示すように、キーとパスフレーズの両方を接続で構成します。 キーの生成中にパスフレーズを指定しない場合は、接続でパスフレーズを省略します。
openssl コマンドを使用して生成された秘密キーには、key/encrypted キーの開始と終了を示すheaders/footersが含まれています。 ファイルの内容全体 (ヘッダーや新しい行を含む) をシークレット値としてKey Vaultにそのまま保存します。 これを行うには、Azure CLI などのコマンド ライン ツールを使用できます。 秘密キー ファイル ヘッダー、フッター、および元の改行の書式設定がないと、Snowflake での認証は失敗します。
セキュリティを確保するために、キーを定期的にローテーションします。 キーをローテーションするときは、Key Vaultと Microsoft Purview 接続でキーを更新します。 新しいジョブでは、更新されたキーが使用されます。 進行中のジョブが完了するまで、古いキーをアクティブのままにします。
OAuth 認証 (プレビュー)
OAuth プロバイダーとして Microsoft Entra ID を使用して、OAuth ベースの接続を構成できます。 OAuth アクセス トークンは通常、有効期間が短くなります。 ただし、データ量によっては、データ品質評価ジョブが長時間実行される場合があります。 OAuth アクセス トークンの有効期間を少なくとも 6 時間に設定します。これは、ジョブの平均最大期間です。 ジョブが完了する前にアクセス トークンの有効期限が切れると、ジョブは失敗します。
アクセス トークンの有効期間を長くできない場合、またはポリシーで許可されていない場合は、キーペア認証にはトークンの有効期間制約がないため、キーペアベースの認証を使用します。
OAuth 接続パラメーターのサンプル値:
- ユーザー名: DB41C9CD-96E7-47B0-ADB6-0A4D080229A0 (Snowflake の
login_nameプロパティの値) - クライアント ID: 00001111-aaaa-2222-bbbb-3333cccc4444 (Azure portalからのクライアント ID)
- トークン URL:
https://login.microsoftonline.com/ddfd8861-7cbd-43df-ad13-4f9e958cf53b/oauth2/v2.0/token (Token URL from Azure app) - スコープ:
api://aaaabbbb-0000-cccc-1111-dddd2222eeee/.default (Scope as registered with the Azure app)
接続の選択について
評価を開始したり、スケジュールを構成したりするときに、接続を明示的に選択することはありません。 システムは、次の規則に基づいて接続を自動的に選択します。
- ユーザーとパスワードの接続のみが存在する場合、システムは最初に作成された接続を選択します。
- キーペアまたは OAuth 接続が存在する場合、システムはすべてのユーザーパスワード接続を無視し、作成された最初のキーペアまたは OAuth 接続を選択します。
次の図は、システムが種類と作成順序に基づいて接続を選択する方法を示しています。
ユーザーパスワードベースの接続しかないとします。
- SnowflakeConnectionBob (ユーザー パスワード)
- SnowflakeConnectionAlice (ユーザー パスワード)
- SnowflakeConnectionEve (ユーザー パスワード)
SnowflakeConnectionBob 接続が選択されます。
すべての種類の接続が存在し、次の順序で作成したとします。
- SnowflakeConnectionBob (ユーザー パスワード)
- SnowflakeConnectionAlice (Key-pair)
- SnowflakeConnectionCharlie (OAuth)
- SnowflakeConnectionEve (ユーザー パスワード)
この場合、システムは SnowflakeConnectionBob と SnowflakeConnectionEve を無視します。 システムでは、次の接続のみが選択対象と見なされます。
- SnowflakeConnectionAlice (Key-pair)
- SnowflakeConnectionCharlie (OAuth)
通常、システムは評価とスケジュールされた実行のために SnowflakeConnectionAlice を選択します。
重要
プライベート エンドポイント接続の要求を作成した後、Snowflake サポートでサポート チケットを発行して、プライベート エンドポイント接続を承認します。 Snowflake チームが承認するこのサポート チケットに、マネージド プライベート エンドポイント リソース ID の詳細を指定します。
注:
Snowflake データベース接続の承認 (OAuth) とキー ペア認証を開きます。 これらのオプションを使用すると、それぞれ異なる認証方法を使用する複数の接続を作成できます。 複数の接続が異なる認証メカニズムを使用する場合、システムは最後に作成された接続を選択します。 たとえば、最初にキー ペアベースの接続を作成し、その後に OAuth 接続を作成した場合、システムは OAuth 接続を選択します。 キー ペア接続を選択する場合は、OAuth 接続を削除する必要があります。 Microsoft Purview データ品質スキャンの新しい Snowflake 認証モデルをプレビューするには、Microsoft アカウントの担当者にお問い合わせください。
次の手順
接続を設定したら、データのプロファイリング、ルールの作成と適用、データ品質スキャンの実行を行うことができます。 詳細なガイダンスについては、データ プロファイルとデータ品質スキャンに関する記事を参照してください。