2023-01-01から1年間の記事一覧

【Snowflake】SnowflakeにShapfileをロードしてみた

※2023/08/22現在、Issue#1006によりSnowflakeFile関数が利用できなくなっているため、関数を使ったロードができない状態なので注意 概要 GIS(地理情報システム)でよく使われるShapefile形式のデータをSnowflakeへロードする。 なにかいい方法がないかと模索…

【Snowflake】S3 Storage Integration作成時にはS3バケットポリシーにも注意する

概要 SnowflakeのS3 Storage Integrationで設定する対象のS3バケットにおいて、S3バケットポリシーにaws:PrincipalOrgIDを条件にしたPut系の権限を設定している場合は注意しよう。 比較的ニッチな話題ではあるが、なぜ注意が必要かというと以下のことが理由…

【Snowflake】権限の可視化・レポート作成ツールsfgrantreportを試してみた

概要 Snowflakeにおけるオブジェクトの権限管理はロールベースで行うため、ロールの数が多くなってくるとsnowsight上でRoleグラフが複雑になって見にくくなる。 全体をみたいときには少し不便だが、ロール階層を可視化やレポートを自動作成してくれる「sfgra…

【Snowflake】S3のバケット通知から外部テーブルの自動更新を設定する

概要 S3バケットからのイベントトリガーで外部テーブルを自動更新する方法を試してみる。 データをSnowflakeにロードしてくる方法はSnowpipeやCOPYコマンドなどあるが、外部テーブルを利用するメリットは、Vectorized Scannerが使える点がある(データ形式がP…

【Snowflake】LambdaからSnowflakeへクエリを投げる

背景 SnowflakeへのクエリはSnowsight上やSnowSQLでしか試したことがなかったので、Pythonコネクタを利用してLambdaからSnowflakeへクエリを投げる方法を試してみる。 内容 今回はLambdaとLambda Layerで構成し、SAMでデプロイをしてみる。 準備するもの ./c…

【Snowflake】ロール設計の際にはグローバル権限も考慮しよう

背景 業務でSnowflakeのロール設計をしたのだが、後になってグルーバル権限についても考慮する必要がでてきたので、その時に学んだことを記す。 グローバル権限とは? アカウント全体に適用される権限であり、通常はACCOUNTADMINのみによって他のロールに付…

【Snowflake】terraform-provider-snowflakeのenable_multiple_grantsにはまった話

背景 TerraformでSnowflake基盤を管理する際に、権限系のリソースオプションであるenable_multiple_grantsにはまったときの話。 TL;DR こだわりなければ、権限に関するリソースオプションのenable_multiple_grants=trueにしておいていいかもしれない。 terra…