ALTER STORAGE INTEGRATION¶
既存のストレージ統合のプロパティを変更します。
構文¶
ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> SET
[ cloudProviderParams ]
[ ENABLED = { TRUE | FALSE } ]
[ STORAGE_ALLOWED_LOCATIONS = ('<cloud>://<bucket>/<path>/' [ , '<cloud>://<bucket>/<path>/' ... ] ) ]
[ STORAGE_BLOCKED_LOCATIONS = ('<cloud>://<bucket>/<path>/' [ , '<cloud>://<bucket>/<path>/' ... ] ) ]
[ COMMENT = '<string_literal>' ]
ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER [ STORAGE ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> UNSET {
ENABLED |
STORAGE_BLOCKED_LOCATIONS |
COMMENT
}
[ , ... ]
条件:
cloudProviderParams (for Amazon S3) ::= STORAGE_AWS_ROLE_ARN = '<iam_role>' [ STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control' ] [ STORAGE_AWS_EXTERNAL_ID = '<external_id>' ]cloudProviderParams (for Microsoft Azure) ::= AZURE_TENANT_ID = '<tenant_id>'
パラメーター¶
name
変更する統合の識別子。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
SET ...
テーブルに設定する1つ以上のプロパティ/パラメーターを指定します(空白、コンマ、または改行で区切られます)。
ENABLED = TRUE | FALSE
このストレージ統合を段階的に使用できるかどうかを指定します。
TRUE
は、ユーザーがこの統合を参照する新しいステージを作成できます。この統合関数を通常参照する既存のステージ。FALSE
は、ユーザーがこの統合を参照する新しいステージを作成できないようにします。この統合を参照する既存のステージは、ステージ定義の保存場所にアクセスできません。
STORAGE_ALLOWED_LOCATIONS = ('cloud_specific_url')
統合を使用して1つ以上の保管場所を参照する外部ステージを明示的に制限します(つまり、Amazon S3、Google Cloud Storage、またはMicrosoft Azure)既存のバケットのコンマ区切りリスト URLs をサポートし、オプションで、ロード/アンロード用のデータファイルの保存に使用されるパスをサポートします。または、「すべてのバケットやパスへのアクセスを許可する」という意味の
*
ワイルドカードをサポートしています。STORAGE_ALLOWED_LOCATIONS
値に特定のストレージの場所が含まれている場合は、同じ場所にあるすべてのサブパスを許可する必要があることに注意してください。STORAGE_BLOCKED_LOCATIONS
値にサブパスを含めることはできません。たとえば、STORAGE_ALLOWED_LOCATIONS
にstorage_location/
が含まれている場合は、STORAGE_BLOCKED_LOCATIONS
にstorage_location/path1/
を含めることはできません。同様に、STORAGE_ALLOWED_LOCATIONS
にstorage_location/path1/
が含まれている場合は、STORAGE_BLOCKED_LOCATIONS
にstorage_location/path1/path2/
を含めることはできません。Amazon S3
STORAGE_ALLOWED_LOCATIONS = ( 's3://bucket/path/' [ , 's3://bucket/path/' ... ] )
|STORAGE_ALLOWED_LOCATIONS = ( 's3gov://bucket/path/' [ , 's3gov://bucket/path/' ... ] )
bucket
は、データファイルを保存するS3バケットの名前です(例:mybucket
)。path
は、一連のファイルへのアクセスを制限するクラウドストレージの場所にある、ファイルの大文字と小文字を区別するオプションのパスです(つまり、ファイルの名前は一般的な文字列で開始)。パスは、別のクラウドストレージサービスによって プレフィックス または フォルダー と呼ばれることもあります。
Google Cloud Storage
STORAGE_ALLOWED_LOCATIONS = ( 'gcs://bucket/path/' [ , 'gcs://bucket/path/' ... ] )
bucket
は、データファイルを保存する GCS バケットの名前です(例:mybucket
)。path
は、一連のファイルへのアクセスを制限するクラウドストレージの場所にある、ファイルの大文字と小文字を区別するオプションのパスです(つまり、ファイルの名前は一般的な文字列で開始)。パスは、別のクラウドストレージサービスによって プレフィックス または フォルダー と呼ばれることもあります。
Microsoft Azure
STORAGE_ALLOWED_LOCATIONS = ( 'azure://account.blob.core.windows.net/container/path/' [ , 'azure://account.blob.core.windows.net/container/path/' ... ] )
account
は、Azureアカウントの名前です(例:myaccount
)。Data Lake Storage Gen2を含む、サポートされているすべてのタイプのAzure BLOBストレージアカウントに、blob.core.windows.net
エンドポイントを使用します。container
は、データファイルを保存するAzureコンテナーの名前です(例:mycontainer
)。path
は、一連のファイルへのアクセスを制限するクラウドストレージの場所にある、ファイルの大文字と小文字を区別するオプションのパスです(つまり、ファイルの名前は一般的な文字列で開始)。パスは、別のクラウドストレージサービスによって プレフィックス または フォルダー と呼ばれることもあります。
STORAGE_BLOCKED_LOCATIONS = ('cloud_specific_url')
統合を使用する外部ステージが1つ以上の保管場所を参照することを明示的に禁止します(つまり、Amazon S3、Google Cloud Storage、Microsoft Azure)。既存の保存場所の URLs のコンマ区切りリスト、およびオプションで、ロード/アンロード用のデータファイルの保存に使用されるパスをサポートします。一般的に STORAGE_ALLOWED_LOCATIONS が
*
ワイルドカードに設定されている場合に使用され、アカウントのすべてのバケットへのアクセスを許可しますが、ブロックされた保管場所および、任意でパスは 例外 です。注釈
個々のクラウドストレージの場所 URLs のみを引用符で囲んでください。
STORAGE_BLOCKED_LOCATIONS
値全体を引用符で囲むと、その値は無効になります。その結果として、ユーザーがストレージ統合を参照するステージを作成すると、STORAGE_BLOCKED_LOCATIONS
パラメーター設定は無視されます。Amazon S3
STORAGE_BLOCKED_LOCATIONS = ( 's3://bucket/path/' [ , 's3://bucket/path/' ... ] )
|STORAGE_ALLOWED_LOCATIONS = ( 's3gov://bucket/path/' [ , 's3gov://bucket/path/' ... ] )
bucket
は、データファイルを保存するS3バケットの名前です(例:mybucket
)。path
は、データファイルへのアクセスをさらに制限するバケット内のオプションのパス(または ディレクトリ)です。
Google Cloud Storage
STORAGE_BLOCKED_LOCATIONS = ( 'gcs://bucket/path/' [ , 'gcs://bucket/path/' ... ] )
bucket
は、データファイルを保存する GCS バケットの名前です(例:mybucket
)。path
は、データファイルへのアクセスをさらに制限するバケット内のオプションのパス(または ディレクトリ)です。
Microsoft Azure
STORAGE_BLOCKED_LOCATIONS = ( 'azure://account.blob.core.windows.net/container/path/' [ , 'azure://account.blob.core.windows.net/container/path/' ... ] )
account
は、Azureアカウントの名前です(例:myaccount
)。container
は、データファイルを保存するAzureコンテナーの名前です(例:mycontainer
)。path
は、データファイルへのアクセスをさらに制限するコンテナー内のオプションのパス(または ディレクトリ)です。
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。
COMMENT = 'string_literal'
統合のコメントを指定する文字列(リテラル)。
UNSET ...
ストレージ統合の設定を解除する1つ以上のプロパティ/パラメーターを指定し、それらをデフォルトにリセットします。
ENABLED
STORAGE_BLOCKED_LOCATIONS
TAG tag_name [ , tag_name ... ]
COMMENT
クラウドプロバイダーのパラメーター(cloudProviderParams
)¶
Amazon S3
STORAGE_AWS_ROLE_ARN = 'iam_role'
データファイルを含むS3バケットに対する権限を付与する AWS IDおよびアクセス管理(IAM)ロールのAmazonリソースネーム(ARN)を指定します。詳細については、 Amazon S3へのセキュアアクセスの構成 をご参照ください。
STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control'
AWS アクセス制御リスト(ACLs)のサポートを有効にして、S3バケット所有者に包括的な制御を付与します。アンロードされたテーブルデータからAmazonS3バケットに作成されたファイルは、 AWS Identity and Access Management(IAM)ロールによって所有されます。ACLs は、1つの AWS アカウントの IAM ロールが、1つ以上の他の AWS アカウントにある、Amazon S3バケットにアクセスするように設定されているユースケースをサポートします。ACL のサポートがないと、バケット所有者アカウントのユーザーは、ストレージ統合を使用して、外部(S3)ステージにアンロードされたデータファイルにアクセスすることはできませんでした。
ユーザーが COPY INTO <場所> を使用してS3ステージのデータファイルにSnowflakeテーブルデータをアンロードすると、アンロード操作はアンロードされたデータファイルに ACL を適用します。データファイルは、ファイルに
"s3:x-amz-acl":"bucket-owner-full-control"
権限を適用し、S3バケットの所有者にファイルの完全な制御を付与します。STORAGE_AWS_EXTERNAL_ID = 'external_id'
Snowflakeが AWS との信頼関係を確立するために使用する外部 ID を指定します。このストレージ統合用に構成した IAM ロールの信頼ポリシーで、同じ外部 ID を指定する必要があります。詳細については、 サードパーティに AWS リソースへのアクセスを許可する場合の外部 ID の使用方法 をご参照ください。
Microsoft Azure
AZURE_TENANT_ID = 'tenant_id'
許可およびブロックされたストレージアカウントが属するOffice 365テナントの ID を指定します。ストレージ統合は1つのテナントのみを認証できるため、許可およびブロックされたストレージの場所は、すべてこのテナントに属するストレージアカウントを参照する必要があります。
テナント ID を見つけるには、Azureポータルにログインして Azure Active Directory » Properties をクリックします。テナント ID が Tenant ID フィールドに表示されます。
使用上の注意¶
メタデータについて。
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
次の例では、中断された統合の操作を開始します。
ALTER STORAGE INTEGRATION myint SET ENABLED = TRUE;