外部ステージへのプライベート接続と Microsoft Azure のSnowpipe自動化¶
このトピックでは、以下のSnowflake機能の アウトバウンドプライベート接続 をセットアップするための構成の詳細を説明します。
外部ステージを使用したMicrosoft Azureからの一括ロード。
Microsoft Azure BLOBストレージ用Snowpipeの自動化。
一括ロードとSnowpipeの自動化をプライベート接続用に構成する場合と、パブリックネットワークトラフィック用に構成する場合の違いは以下のとおりです。
必要なストレージ統合、ステージ、または通知統合のために
USE_PRIVATELINK_ENDPOINT = TRUEをセットします。外部ステージ(一括ロードとSnowpipeの自動化)用のプライベート接続エンドポイントを作成します。
通知統合用のプライベート接続エンドポイントを作成します(Snowpipeの自動化のみ)。
アウトバウンド プライベート接続コスト¶
各プライベート・コネクティビティ・エンドポイントの料金は、処理されるデータ総量に応じて支払われます。これらのアイテムの価格については、 Snowflake Service Consumption Table をご参照ください。
ACCOUNT_USAGE および ORGANIZATION_USAGE スキーマで請求ビューをクエリする際、以下のサービスタイプでフィルターをかけることで、これらの項目のコストを調べることができます。
OUTBOUND_PRIVATELINK_ENDPOINT
OUTBOUND_PRIVATELINK_DATA_PROCESSED
例えば、 USAGE_IN_CURRENCY_DAILY 表示をクエリし、これらのサービスタイプでフィルターをかけることができます。
考慮事項¶
注釈
プライベート接続はMicrosoft Fabric OneLakeストレージではサポートされていません。
同じストレージアカウントに対して、アウトバウンドパブリック接続とアウトバウンドプライベート接続を構成できます。この場合、アウトバウンドパブリック接続専用のストレージ統合を作成し、 USE_PRIVATELINK_ENDPOINT = FALSE を指定します。
プライベート接続プロパティ¶
ストレージ統合または外部ステージの USE_PRIVATELINK_ENDPOINT プロパティは、プライベート接続でアクセスするか、パブリックネットワークを経由してアクセスするかを決定します。プライベート接続を使用するには、 USE_PRIVATELINK_ENDPOINT = TRUE をセットします。
USE_PRIVATELINK_ENDPOINT = TRUE を指定するストレージ統合を参照するステージは、プライベートエンドポイント構成を継承します。結果、プライベート接続を使用するように構成されているストレージ統合を使用している場合、ステージで USE_PRIVATELINK_ENDPOINT プロパティを指定する必要はありません。また、ステージを変更して USE_PRIVATELINK_ENDPOINT プロパティをセットすることもできません。
外部ステージアクセスの構成¶
これらの手順は、 Microsoft Azure の外部ステージにデータをアンロードするために、ストレージ統合でアウトバウンドプライベート接続を使用する場合に固有のものです。ストレージ統合を参照する代わりにステージの CREDENTIALS プロパティを使用する場合は、フローを変更する必要があります。
これらの手順は、一括ロードとSnowpipeの自動化の両方に必要です。
Snowflakeで、 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT システム関数を呼び出して、Snowflake VNet にプライベート接続エンドポイントをプロビジョニングし、Snowflakeがプライベート接続を使用して外部BLOBストレージアカウントに接続できるようにします。
この関数はプライベートエンドポイントをホスト名にバインドし、ストレージ統合がプライベートエンドポイントを使用してストレージロケーションに接続できるようにします。
Azure Portalで、 Microsoft Azure BLOBストレージリソースの所有者として、プライベートエンドポイントを承認します。詳しくは、 承認プロセス をご覧ください。
Snowflakeで、 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 関数を呼び出します。
When the output of the function includes
"status": "APPROVED", your connection from Snowflake to your storage account will be able to use private connectivity (after the other necessary Snowflake objects are enabled for outbound private connectivity)."APPROVED"のステータスを待つ間、次のステップに進むことができます。ストレージ統合を作成し、必ず
USE_PRIVATELINK_ENDPOINTプロパティを指定してください。注釈
ストレージ統合を作成した後、Snowflakeにストレージロケーションへのアクセスを付与する必要があります。詳細情報については、 Snowflake ストレージ統合の構成 を参照してください。
ストレージ統合を参照する外部ステージを作成します。
プライベートエンドポイントが
"APPROVED"ステータスになったら、Snowflakeから外部ステージへのデータのアンロードをテストします。結果を Microsoft Azure ステージで表示します。
通知統合の構文更新¶
Microsoft Azure BLOBストレージ用Snowpipeを自動化するには、通知統合を作成する必要があります。以下の構文更新により、プライベート接続の通知統合を構成できます。
Snowpipeの自動化の構成¶
このセクションでは、 Microsoft Azure BLOBストレージ用Snowpipeの自動化 で説明したプロシージャを変更し、プライベート接続でSnowpipeの自動化を実装する方法を説明します。唯一の違いは、プライベート接続エンドポイントのプロビジョニングと、ストレージ統合と通知統合の USE_PRIVATELINK_ENDPOINT プロパティの構成です。
このドキュメントで前述 したように、ストレージ統合とステージを、専用のプライベート接続エンドポイントとともに作成します。
Microsoft Azure BLOBストレージ用Snowpipeの自動化トピックで説明されているように、 Snowflakeにストレージの場所へのアクセス権を付与 します。
Microsoft Azure BLOBストレージ用Snowpipeの自動化トピックで説明されているように、 Event Gridサブスクリプションを構成 します。
Snowflakeでは、 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT システム関数を呼び出して、Snowflake VNet でプライベートエンドポイントをプロビジョニングし、Snowflakeがプライベート接続を使用してAzureキューに接続できるようにします。
Azure Portalで、 Microsoft Azure ストレージリソースの所有者として、プライベートエンドポイントを承認します。情報については、 承認プロセス をご覧ください。
Snowflakeで、 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 関数を呼び出します。
When the output of the function includes
"status": "APPROVED", your connection from Snowflake to your storage account will be able to use private connectivity (after the other necessary Snowflake objects are enabled for outbound private connectivity).重要
次のステップに進む前に、ステータスが
APPROVEDになるまで待つ必要があります。Microsoft Azure BLOBストレージ用Snowpipeの自動化トピックで説明されているように、 ストレージキュー URL とテナント ID を取得 します。
通知統合を作成し、必ず
USE_PRIVATELINK_ENDPOINTプロパティを指定してください。Microsoft Azure BLOBストレージ用Snowpipeの自動化トピックで説明されているように、 Snowflakeにストレージキューへのアクセス権を付与 します。
Microsoft Azure BLOBストレージ用Snowpipeの自動化トピックで説明されているように、 自動インジェストを有効にしたパイプを作成 します。
プライベート接続の無効化¶
プライベート接続を無効にするプロセスは、エンドポイントがストレージ統合、外部ステージ、または通知統合のためにプロビジョニングされたかどうかによって異なります。
- ストレージ統合/外部ステージ
外部ステージのプライベート接続エンドポイントが不要になった場合は、ステージまたはストレージ統合の
USE_PRIVATELINK_ENDPOINTプロパティを設定解除してから、 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT システム関数を呼び出します。- 通知の統合
ストレージ統合や外部ステージとは異なり、通知統合の
USE_PRIVATELINK_ENDPOINTプロパティを設定解除することはできません。プライベート接続が不要になった場合は、通知統合をドロップし、新しいものを作成する必要があります。通知統合を再作成した後、 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT システム関数を呼び出して、エンドポイントのデプロビジョンを行うことができます。