ablog

不器用で落着きのない技術者のメモ

AWS

Amazon Redshift でユーザーに付与されたスキーマ権限を確認する

Amazon Redshift でユーザーに付与されたスキーマ権限を確認する。 select usename , schemaname , has_schema_privilege(usename, schemaname, 'usage') as "usage" , has_schema_privilege(usename, schemaname, 'create') as "create" , has_schema_privi…

Amazon Redshift で HAS_TABLE_PRIVILEGE に CREATE がないのはなぜか?

Amazon Redshift で HAS_TABLE_PRIVILEGE の privilege に CREATE がないのはなぜか?というと、CREATE TABLE 権限はスキーマに対しての権限であり、テーブルに対しての権限ではないため。 ユーザーが、指定されたテーブルに対して指定された権限を持ってい…

スキーマに新規作成したテーブルへのアクセス権をデフォルトで付与する

Amazon Redshift で以下の権限を付与しておけば、新規作成したビューも参照できることと確認した(以下の例では DROP/CREATE している)。 ALTER DEFAULT PRIVILEGES FOR USER ... IN SCHEMA ... GRANT SELECT ON TABLES TO ...; GRANT SELECT ON ALL TABLES…

Redshift で現在から x 時間前のタイムスタンプを取得する

現在から1日前のタイムスタンプを取得する。 # select trunc(sysdate)-1; ?column? 2025-06-10 現在から16時間前のタイムスタンプを取得する # select dateadd(hour,-16, sysdate); date_add 2025-06-10 14:52:09.714924 参考 SYSDATE 関数 - Amazon Redshif…

Amazon Redshift で Elastic resize の完了を確認する方法

AWS

Amazon Redshift で Elastic resize した後、バックグラウンドでノードスライスにデータを再分配が完了するまではクエリの実行に時間がかかる可能性がある。 2. このオペレーションはクラスターのメタデータを移行します。クラスターは数分間使用できません…

Redshift の分散スタイルやソートキーの自動最適化履歴を確認する

Redshift の分散スタイルやソートキーの自動最適化履歴は SVL_AUTO_WORKER_ACTION で確認することができる。 select table_id, type, status, eventtime, sequence, previous_state from SVL_AUTO_WORKER_ACTION; table_id | type | status | eventtime | se…

SYS_LOAD_ERROR_DETAIL で他のユーザーが実行したロード処理も参照できるようにする

デフォルトだと一般ユーザーは SYS_LOAD_ERROR_DETAIL を参照すると、自分が実行したロード処理のエントリしか表示できない。 他のユーザーが実行したロード処理のエントリも参照したい場合は SYSLOG ACCESS UNRESTRICTED を付与すればよい。 デフォルトでは…

自動VACUUM実行中に手動VACUUMを実行するとどうなるか

自動VACUUM実行中に手動VACUUMを実行すると、自動VACUUMが停止し、手動VACUUMが実行される。 Automatic vacuum operations pause if any of the following conditions are met: A user runs a data definition language (DDL) operation, such as ALTER TABL…

CloudWatch メトリクスのデータポイントの粒度と参照可能期間

AWS

CloudWatch メトリクスのデータポイントの粒度と参照可能期間 メトリクスの保持 CloudWatch では、次のようにメトリクスデータを保持します。 期間が 60 秒未満のデータポイントは、3 時間使用できます。これらのデータポイントは高解像度カスタムメトリクス…

Redshift でクラスターの一時停止・再開とパラメータグループの変更を許可する IAM ポリシー

AWS

Redshift でクラスターの一時停止・再開(特定のクラスターのみ)、パラメータグループ設定変更(特定の)を許可する IAM ポリシー 前提 マネジメントコンソールから人が操作する想定(AWS CLI など AWS API 経由で実行する場合も同じ)。 IAM ポリシー "Rea…

Redshift でユーザーの接続制限数(CONNECTION LIMIT)以上のコネクションを張ろうすると即時エラーになる

Redshift でユーザーの接続制限数以上のコネクションを張ろうとすると即時エラーになる。 検証結果 3本接続を張った後、4本目の接続を張ろうとすると即時エラーとなる。 $ psql -A -h rs-ra3-4xl-4n.********.us-east-1.redshift.amazonaws.com -p 5439 -d d…

Redshift でテーブルの所有者を変更するにはスーパーユーザー権限が必要

Amazon Redshift でテーブルの所有者を変更するにはスーパーユーザー権限が必要。 dev=> ALTER TABLE table_a OWNER TO user_a; ERROR: must be superuser to change owner 参考 ALTER TABLE - Amazon Redshift

Redshift Spectrum で外部スキーマの作成と同時に外部データベースを作成する

AWS

Redshift Spectrum で外部スキーマの作成と同時に外部データベースを作成する。 外部スキーマの作成と同時に外部データベースを作成するには、FROM DATA CATALOGステートメントで CREATE EXTERNAL DATABASE を指定して CREATE EXTERNAL SCHEMA 句を含めます…

Redshift Spectrum でサポートされるデータ型

AWS

次の データ型 がサポートされています。 SMALLINT (INT2) INTEGER (INT、INT4) BIGINT (INT8) DECIMAL (NUMERIC) REAL (FLOAT4) DOUBLE PRECISION (FLOAT8) BOOLEAN (BOOL) CHAR (CHARACTER) VARCHAR (CHARACTER VARYING) VARBYTE (CHARACTER VARYING) – Pa…

Redshift の STL_QUERY.query と SYS_QUERY_HISTORY. query_id の対応表を作成する

AWS

Redshift の STL テーブルのクエリID(query列)と SYS ビューのクエリID(query_id)は別の値のため、クエリIDで結合することはできない。トランザクションID(STLとSYSのトランザクションIDが 1:1 の場合)で結合することができる。 Redshift の STL テー…

Redshift に Data API でアクセスするために必要な設定

AWS

Redshift に Data API でアクセスする場合、Internet Gateway や Public Access 許可がなくても、必要な IAM 権限があればアクセスできる。 DataAPIでは、AWSのIAMによる認証でクラスタにクエリを投げられるというのがウリなので、 出来るだけ外からは接続で…

SET SESSION AUTHORIZATION は SECURITY DEFINER 関数内で使用できない

Redshift で SET SESSION AUTHORIZATION は SECURITY DEFINER 関数内で使用できない。 SET SESSION AUTHORIZATIONをSECURITY DEFINER関数内で使用することはできません。 https://www.postgresql.jp/docs/9.4/sql-set-session-authorization.html

Redshift Serverless の監査ログ出力先は CloudWatch Logs のみ

Redshift Serverless の監査ログ出力先は CloudWatch Logs のみ。Provisioned は S3 にも出力できる。 Redshift Serverlessの監査ログもS3バケットに直接出力できないのかなーと思いましたが、今後のRedshift監査ログの出力先はCloudWatch Logsを推奨されて…

Windows に rsql をインストールして実行すると libssl-1_1-x64.ddl と libcrypto-l-1_1-x64.ddl が見つからないとエラーになる

AWS

事象 Windows Server に rsql をインストールして実行すると以下のエラーが発生する。 libssl-1_1-x64.ddlが見つからないため、コードの実行を続行できません。 プログラムを再インストールすると、この問題が解決する可能性があります。 libcrypto-l-1_1-x6…

AWS認定試験の領収書の入手方法

AWS

ピアソンVUEの場合、AWS試験申し込み完了時に、「ピアソンVUEお支払いの受領通知」という題目の領収書メールが届きます。そのため、まずは領収書メールを確認しましょう。(中略)領収書を再発行する方法を紹介します。 AWS Certification アカウントにサイ…

Redshiftでテーブルの実体を見せずにビューだけ見せてアクセス制限する方法

qiita.com

Amazon Redshift で実行時間の長いクエリの性能情報を取得する

AWS

\timing on \pset pager -- show Redshift version select version(); -- show table stats select * from svv_table_info; -- show sort keys set search_path to '$user', public; select * from pg_table_def where sortkey <> 0 and schemaname not in (…

AWS でミッションクリティカルなデータウェアハウスを構築する方法 (AWS Summit Tokyo 2023)

AWS

AWS Summit Tokyo 2023 大薗さんの「AWS でミッションクリティカルなデータウェアハウスを構築する方法 (AWS-35)」が再利用性が高いが、よくどこに資料があるか見失うので、メモしておく。 Level 300: 中級者向け AWS でミッションクリティカルなデータウェ…

Amazon Redshift Query Profiler でシステマチックにクエリのボトルネックを分析する

AWS

re:Invent に参加されていた AWS エンジニアのみなさま、おつかれさまでしたm(._.)m このエントリは AWS Analytics Advent Calendar 2024 の9日目の記事です。 8日目は 細かすぎて伝わらない Amazon Redshift のシステムテーブル/ビュー選手権: SYS_QUERY_H…

細かすぎて伝わらない Amazon Redshift のシステムテーブル/ビュー選手権: SYS_QUERY_DETAIL に plan_node_id 列が追加された

AWS エンジニアの皆様、AWS サービスアップデートのキャッチアップおつかれさまですm(._.)m このエントリは AWS Analytics Advent Calendar 2024 の4日目の記事です。 3日目は 大薗さんの状況に合わせて、とても素晴らしい食事プランを提案してくれる 有益な…

Okta から Redshift に SSO する

要件 クライアントPCから MFA して Redshift に認証したい。 Okta の認証で MFA して、SSO して Redshift に認証したい。 参考 Okta を ID プロバイダーとして Amazon Redshift へのアクセスとフェデレーションする | Amazon Web Services ブログ Setup SSO …

EC2(Amazon Linux 2023)に EBS ボリュームをアタッチした手順

AWS

EC2(c5.4xlarge/Amazon Linux 2023)に EBS ボリューム(st1)をアタッチして xfs でフォーマットしてマウントした手順。 前提 EC2 インスタンスタイプ: c5.4xlarge ディストリビューション: Amazon Linux release 2023 カーネル: 6.1.72-96.166.amzn2023.x…

AWS認定 AI Practitioner の勉強

AWS

教材 AIF-C01 / AWS Certified AI Practitioner 模擬試験(4回分)+補足問題 | Udemy メモ ゼロショットプロンプティング 平均二乗誤差(MSE) 特徴量 埋込(エンベディング) トークン 推論パラメータ Temperature: 低いほど確実な単語のみ採用する Top P:…

Redshift のユーザー名にハイフンとドットを使えるか

AWS

Redshift のユーザー名にハイフンとドットを使えることを確認したログをメモ。 [ec2-user@ip-172-31-0-101 ~]$ psql "host=redshift-cluster-poc-central.********.ap-northeast-1.redshift.amazonaws.com user=awsuser dbname=dev port=5439" Timing is on.…

Redshift で UNLOAD した時のファイル suffix の命名規則

Redshift で UNLOAD した時のファイル suffix の命名規則 ネーミングルール CSV 圧縮なし: 000 gzip: 000.gz bzip2: 000.bz2 zstd: 000.zst JSON 圧縮なし: 000.json gzip: 000.json.gz bzip2: 000.json.bz2 zstd: 000.json.zst Parquet 000.parquet 検証手…