Microsoft Azure Data Lake Storage Gen2コンテナ内のデータファイルへのアクセス
Microsoft Azure Data Lake Storage Gen2からSnowflakeにデータをロードするには、Microsoft Azure Data Lake Storage Gen2コンテナ内のデータファイルへのアクセス権が割り当てられている必要があります。
この操作を行うには、次の手順を実行します。
- 1データの読み取りを行うMicrosoft Azure Data Lake Storage Gen2コンテナの詳細を含むクラウドストレージ統オブジェクトを作成します。
- 2Snowflakeでクラウドストレージ統合を作成した後に、[追加のJDBC URLパラメータ]接続プロパティでクラウドストレージ統合の名前を指定します。
ストレージ統合の値は大文字と小文字が区別されます。
Snowflake Data Cloud Connectorは、作成したクラウドストレージ統合を使用する一時的な外部ステージを作成します。
Microsoft Azure Data Lake Storage Gen2のストレージ統合の設定
SnowflakeがMicrosoft Azure Data Lake Storage Gen2コンテナからデータを読み取れるようにするためのストレージ統合を作成します。
Snowflakeドキュメントを参照して、次の手順を実行できます。
1Snowflakeでクラウドストレージ統合を作成します。
2Snowflakeアカウント用のCloud Storage Serviceアカウントを取得します。格納場所へのアクセス権の付与を参照してください。 3バケットオブジェクトにアクセスするためのアクセス権をサービスアカウントに付与します。
- aカスタムIAMロールを作成します。
- bカスタムロールをCloud Storage Serviceアカウントに割り当てます。
4 外部ステージを作成するための権限をロールに付与します。
ロールには、スキーマに対するCREATE STAGE特権と、ストレージ統合に対するUSAGE特権が必要です。
例えば、次のようなコマンドを実行して、これらの特権を付与します。
grant create stage on schema public to role myrole;
grant usage on integration adls_int to role myrole;
格納場所へのアクセス権の付与
SnowflakeサービスのプリンシパルアクセスをAzureサービスのストレージアカウントに付与します。
1DESCRIBE INTEGRATIONコマンドを実行して、次の同意URLを取得します: desc storage integration <integration_name>;
ここで、integration_nameは、作成した統合の名前です。
AZURE_CONSENT_URLカラムのURLの形式は次のとおりです。
https://login.microsoftonline.com/<tenant_id>/oauth2/authorize?client_id=<snowflake_application_id
AZURE_MULTI_TENANT_APP_NAMEカラムの値をコピーします。これは、アカウント用に作成されたSnowflakeクライアントアプリケーションの名前です。この情報は、格納場所のアクセストークンを取得するために必要なアクセス権をこのアプリケーションに付与するために必要です。
2Webブラウザで、AZURE_CONSENT_URLURLカラムのURLに移動します。
ページに、Microsoftのアクセス権要求ページが表示されます。
3[承認]をクリックします。
これにより、Snowflakeアカウント用に作成したAzureサービスプリンシパルが、テナント内の任意のリソースでアクセストークンを取得できるようになります。アクセストークンは、コンテナに対する適切な権限をサービスプリンシパルに付与した場合にのみ正常に生成されます。
4Microsoft Azureポータルにログインします。
5[Azureサービス] > [ストレージアカウント]に移動し、Snowflakeサービスのプリンシパルアクセスを許可するストレージアカウントの名前をクリックします。
6[アクセス制御(IAM)] > [ロールの割り当ての追加]をクリックします。
7Snowflakeサービスプリンシパルに付与する必要のあるロールを選択します。
- - Storage Blob Data Reader: 読み取りアクセスのみを許可します。ストレージアカウントにステージングされたファイルからデータをロードできます。
- - Storage Blob Data Contributor: 読み取りアクセスおよび書き込みアクセスを許可します。ストレージアカウントにステージングされたファイルからのデータのロードやファイルへのデータのアンロードができます。
8Snowflakeサービスプリンシパルを検索します。
これは、手順1のDESC STORAGE INTEGRATION出力のAZURE_MULTI_TENANT_APP_NAMEプロパティのIDです。Microsoft要求ページから要求したSnowflakeサービスプリンシパルがAzureで作成されるまでに1時間以上かかる場合があります。サービスプリンシパルがすぐに利用できない場合は、1~2時間待ってから、もう一度検索を実行することをお勧めします。サービスプリンシパルを削除すると、ストレージ統合は機能しなくなります。
9[保存]をクリックします。
ロールの割り当てが有効になるまでに5分ほどかかる場合があります。