by shigemk2

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

snowflake

show grants メモ

futureじゃないgrantsでは、schemaはgrants on schemaで、roleはgrants to role SHOW GRANTS [ LIMIT <rows> ] SHOW GRANTS ON ACCOUNT [ LIMIT <rows> ] SHOW GRANTS ON <object_type> <object_name> [ LIMIT <rows> ] SHOW GRANTS TO { APPLICATION <app_name> | APPLICATION ROLE [ <app_name>. ]<app_role_name> | ROLE </app_role_name></app_name></app_name></rows></object_name></object_type></rows></rows>

Error: Date '0000-00-00' is not recognized

Datetime(Timestamp)も一緒で 0000-00-00 00:00:00 はnot recognizedエラーになる。 DATE と TIMESTAMP のデータの場合、Snowflakeは、1582と9999の間の年を使用することをお勧めします。Snowflakeは、この範囲外の数年を受け入れますが、 グレゴリオ暦の制…

Snowflake IFF

MySQLだとIFでステートメントと関数で同じ名前のものが用意されているけれど、SnowflakeだとステートメントがIFで関数はIFFっぽい ので select iff($1 = 'hoge', 'true', 'false'); みたいな書き方をする docs.snowflake.com dev.mysql.com

Information Schemaのテーブル関数

Information Schemaの情報を参照する関数。 データ保持期間がある。 docs.snowflake.com 例 タスク docs.snowflake.com パイプ docs.snowflake.com

Account Usageスキーマ

アカウントのオブジェクトメタデータと使用状況を表示するビュー Information Schemaとの違い 各ビューに含まれるドロップ済みオブジェクトの記録 履歴使用データのより長い保持時間 データの待機時間(実行からAccount Usageスキーマに履歴が反映されるまで…

DESCRIBE VIEW

説明不要。 コマンド出力には、ビューの定義は含まれません。代わりに、 SHOW VIEWS を使用してください。 とのこと。 docs.snowflake.com

ALTER USER

書き方自体は普通なSQLで、複数のユーザーを同時に更新はできない。 ALTER USER [ IF EXISTS ] [ <name> ] RENAME TO <new_name> ALTER USER [ IF EXISTS ] [ <name> ] RESET PASSWORD ALTER USER [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES ALTER USER [ IF EXISTS ] [ <name> ] ADD DELEGAT</name></name></name></new_name></name>…

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