by shigemk2

当面は技術的なことしか書かない

snowflake

ALTER ROLE

IF EXISTS使える RENAMEでリネーム ALTER ROLE [ IF EXISTS ] <name> RENAME TO <new_name> docs.snowflake.com</new_name></name>

DESCRIBE INTEGRATION

このクエリでOWNERとか取れない、、、 docs.snowflake.com

copy_history

snowpipeとかの履歴が取れる。 書き方はtask_historyとかと一緒。 docs.snowflake.com

TASK_HISTORY

タスクの実行履歴がSELECTできる。 データベースを指定しておいて以下実行。 select state, error_message, scheduled_time from table(information_schema.task_history()) WHERE DATABASE_NAME = 'xxxxxxxx' order by scheduled_time DESC LIMIT 200 ワイ…

料金体系

受信(データロード系)には料金が発生しないけど送信(アンロード系)には料金が発生する docs.snowflake.com だからGCSのデータをAWSなSnowflakeにロードしても料金は発生しないけど、AWSなSnowflakeのデータをGCSにエクスポートすると料金が発生する。 www.sn…

識別子命名

識別子が二重引用符で囲まれていない場合、文字またはアンダースコア(_)で始まる必要があり、拡張文字または空白を含めることはできません。 スネークケースでの命名を推奨されているっぽい docs.snowflake.com

SHOW TASKS

スキーマの中にタスクがあるので、データベースとスキーマを決めておかないといけない。 docs.snowflake.com docs.snowflake.com

ALTER TASK

一番よく使うのはRESUME|SUSPENDの切り替え ALTER TASK "test_task" RESUME 変更する前に一時停止する必要がある 1つのアカウントで同時にRESUMEできるタスクは10000 docs.snowflake.com

show terse table

本当にterse(簡素)な show table で、カラムを好きに設定することはできないらしい。 docs.snowflake.com

GRANTを実行できる権限

データベースにある将来のオブジェクトの権限を付与または取り消すには、 MANAGE GRANTS グローバル権限が必要です。SECURITYADMIN および ACCOUNTADMIN システムロールのみが MANAGE GRANTS 権限を持っています。ただし、この権限はカスタムロールに付与で…

GRANT OWNERSHIPのCOPYとREVOKE

やってること 所有権が新しいロールに譲渡されるときに、オブジェクトの既存のアウトバウンド権限すべてを削除するか、譲渡するかを指定します。 なので、copy current grantsをつけたら権限が残るし、revoke current grantsをつけたら権限が消える。 デフォ…

Snowflake INSERT INTO

基本的なSQLの構造は他のDBと一緒。文字列はシングルクォートじゃないとエラーが出る。 docs.snowflake.com

Snowflake 権限 将来の付与

各オブジェクトタイプ(スキーマ、テーブル、ビュー、ストリームなど)に個別に将来の付与を定義する必要があります。詳細については、 既存のデータベースまたはスキーマオブジェクトに対する将来の付与の定義 (このトピック内)をご参照ください。 スキー…

Snowflake EXECUTE TASK

EXECUTE TASK ロールが所有するタスクを実行する権限を付与します。サーバーレスタスクを実行するには、タスクに対して OWNERSHIP 権限を持つロールに、 EXECUTE MANAGED TASK グローバル権限も必要です。ACCOUNTADMIN ロールによって付与される必要がありま…

Snowflake GRANT <権限> ... TO ROLE なんとなく

セキュリティ保護可能なオブジェクトに対する1つ以上のアクセス権限をロールに付与します。付与できる権限はオブジェクト固有であり、次のカテゴリに分類されます。 グローバル権限 アカウントオブジェクト(リソースモニター、仮想ウェアハウス、およびデー…

Snowflake アクセス制御 なんとなく

まずは、DACと 任意アクセス制御(DAC): 各オブジェクトに所有者がおり、所有者はそのオブジェクトへのアクセスを許可できます。 RBACについて覚えておく。 ロールベースのアクセス制御(RBAC): アクセス権限がロールに割り当てられ、ロールはユーザーに…

Snowflake REVOKE

GRANT TO ロール、REVOKE FROM ロール、と覚えればよし。 docs.snowflake.com

Snowflake 権限 メモ

ユーザーとロールを作る データベース(usage)、スキーマ(usage)、テーブル(select以上)にユーザーの権限を付与する docs.snowflake.com datumstudio.jp

Snowflake 関数一覧

関数が結構豊富なんだね docs.snowflake.com

Snowflake IFF

IF-ELSEのあれをSnowflakeではIFFというらしい。 docs.snowflake.com

Snowflake TYPEOF

型を出力する。そういう関数が存在するからありがたい。 docs.snowflake.com docs.snowflake.com

COPY INTO COMPRESSION

現在は自動検出できないBrotliで圧縮されたファイルを除き、圧縮アルゴリズムは自動的に検出されます。Brotliで圧縮されたファイルをロードする場合は、 AUTO ではなく BROTLI を明示的に使用してください。 とのこと。 docs.snowflake.com

Snowflake GRANT/REVOKE

管理画面でロールに権限を付けたり外したりしていると、どんなクエリが内部で実行されたか「履歴」で追える。 docs.snowflake.com docs.snowflake.com

Snowflake CREATE ROLE

特筆することあんまりないかも。 docs.snowflake.com

Snowflake TIMESTAMP型

TIMESTAMP_LTZ UTC 時間を指定された精度で内部に保存します。ただし、すべての操作は、 TIMEZONE セッションパラメーターによって制御される現在のセッションのタイムゾーンで実行されます。LTZはLOCAL TIME ZONEの略 TIMESTAMP_NTZ 「wallclock」時間を指…

Snowflake 型

シノニムが多い。 docs.snowflake.com

MongoDBのJSONデータをsnowflakeに入れる

JSON形式でMongoDBからexportしたデータをsnowflakeのテーブルに追加する。 どうも file_format = (type = json) で copy into するためには、1カラム variantでテーブル定義しないといけないみたい。 create or replace table mongo_import(v variant); cop…

snowflake parse_json

このようなJSONデータがあったとして、 { "location": { "state_city": "MA-Lexington", "zip": "40503" }, "sale_date": "2017-3-5", "price": "275836" } 以下クエリでcopy intoする。 copy into home_sales(city, state, zip, sale_date, price) from (se…