■ はじめに
Snowflakeのストレージ統合(Storage Integration)について 予習をする
目次
【1】ストレージ統合(Storage Integration) 【2】利点 【3】基本操作 1)ストレージ統合作成 2)ストレージ統合確認 3)ストレージ統合の一覧表示 【4】権限付与 【5】その他の操作 1)変更
【1】ストレージ統合(Storage Integration)
https://docs.snowflake.com/ja/sql-reference/sql/create-storage-integration.html
より抜粋 ~~~~~ 外部クラウドストレージ用に生成されたIDおよび アクセス管理(IAM)エンティティを許可またはブロックされたストレージの場所 (Amazon S3、Google Cloud Storage、またはMicrosoft Azure)の オプションセットとともに格納するSnowflakeオブジェクト ~~~~~ => 分かりづれ、、、 => クラウドストレージ(S3/Google Cloud Storage/Microsoft Azure)と Snowflakeとを接続するためのオブジェクト => クラウドストレージにアクセスする際には、 この「ストレージ統合」を経由して、接続する
【2】利点
1)ステージの作成時/データのロードまたはアンロード時に 認証情報の提供を回避できる => データのロードまたはアンロードについては、 以下の関連記事を参照のこと
Snowflake ~ 基本編 / データロード ~
https://dk521123.hatenablog.com/entry/2021/11/15/221245
Snowflake ~ データ アンロード ~
https://dk521123.hatenablog.com/entry/2022/07/04/172738
【3】基本操作
1)ストレージ統合作成
https://docs.snowflake.com/ja/sql-reference/sql/create-storage-integration.html
-- AWS/S3の場合 CREATE STORAGE INTEGRATION 【ストレージ統合名】 TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = S3 ENABLED = TRUE STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::【S3のAWSアカウントID】:role/【ロール名】' STORAGE_ALLOWED_LOCATIONS = ('s3://【S3のバケット名】/【パス】/') ;
STORAGE_AWS_ROLE_ARN
* S3バケットに対する権限を付与するIAMロールのARN
STORAGE_ALLOWED_LOCATIONS
* ストレージの場所(S3バケットなど。複数指定可能)
2)ストレージ統合確認
https://docs.snowflake.com/ja/sql-reference/sql/desc-integration.html
DESC INTEGRATION 【ストレージ統合名】;
補足
* アクセス制限がどのようにされているかが確認できる
# | PROPERTY | Value例 |
---|---|---|
1 | ENABLED | true |
2 | STORAGE_PROOVIDER | s3 |
3 | STORAGE_ALLOWED_LOCATIONS | s3://your-bucket |
4 | STORAGE_VLOCKED_LOCATIONS |
3)ストレージ統合の一覧表示
https://docs.snowflake.com/ja/sql-reference/sql/show-integrations.html
SHOW INTEGRATIONS; SHOW INTEGRATIONS LIKE '【絞り込みたいパターン】' ; -- SHOW INTEGRATIONS LIKE 'demo%'
【4】権限付与
-- 使用権限付与 GRANT USAGE ON INTEGRATION <your_integration_name> TO ROLE <your_role>; -- 所有権付与 GRANT OWNERSHIP ON INTEGRATION <your_integration_name> TO ROLE <your_owner_role> COPY CURRENT GRANTS;
https://docs.snowflake.com/ja/sql-reference/sql/grant-privilege.html
https://docs.snowflake.com/ja/sql-reference/sql/grant-ownership.html
【5】その他の操作
1)変更
-- alter storage integration <your_integ> set <item> = <value>; alter storage integration myint set enabled = true;
https://docs.snowflake.com/ja/sql-reference/sql/alter-storage-integration.html
参考文献
https://dev.classmethod.jp/articles/snowflake-s3-integration-by-cfn/
https://blog.serverworks.co.jp/snowflake-import-from-s3
https://dmscube.com/view/post/0/38558
関連記事
Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world ~
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ 基本編 / データロード ~
https://dk521123.hatenablog.com/entry/2021/11/15/221245
Snowflake ~ データ アンロード ~
https://dk521123.hatenablog.com/entry/2022/07/04/172738
Snowflake ~ テストデータ作成 / generator ~
https://dk521123.hatenablog.com/entry/2022/06/20/095659