Redshift
Redshift で superuser 権限を付与せずに sys_connection_log にアクセスを許可するためには、sys:monitor ロールを付与すればよい ユーザー作成 dev=# create user test_monitor password 'xxx'; CREATE USER dev=# \q 新ユーザーで sys_connection_log に…
Multi-AZ 構成の Redshift で Classic resize をしたメモ The resize for Amazon Redshift cluster 'rs-ra3-large-maz' completed at 2025-12-11 02:16 UTC, and the cluster is available for reads and writes. The resize was initiated at 2025-12-11 02…
SVV_TABLE_INFO の rows - estimated_visible_rows の差が大きいと、VACUUM DELETE の効果が見込める。 列名 データ型 説明 tbl_rows numeric(38,0) テーブル内の合計行数。この値には、削除対象としてマークされ、まだバキューム処理されていない列が含まれ…
Redshift で VACUUM が Scaling Cluster にルーティングされるか検証してみた。 結果としては、Primary でしか実行されない。理由は concurrency_scaling_status = 3(Concurrency Scaling ineligible query - Query is an Unsupported DML)。 シナリオ VAC…
Redshift の SVV_TABLE_INFO.skew_rows の意味 lineorder テーブルの skew_rows は 3.67 =# select * from svv_table_info where schema = 'ssbgz_before' and "table" = 'lineorder'; -[ RECORD 1 ]----------+--------------------------------- database …
Redshift でクエリが Scaling Cluster で実行されなかった理由を調べる STL_QUERY.concurrency_scaling_status でクエリが Scaling Cluster を利用しなかった理由を確認できる(数値) STL_QUERY - Amazon Redshift 数値 の意味は SVL_QUERY_CONCURRENCY_SCA…
Begin-End でトランザクションスコープに囲んだクエリが Redshift の Scaling Cluster にルーティングされるか検証してみた。 検証結果 Begin-End でトランザクションスコープを囲んだ DELETE/INSERT のみを実行している状態で、スケーリングクラスターでク…
自動ワークロード管理 (WLM) では、Amazon Redshift がクエリの同時実行数とメモリの割り当てを管理します。サービスクラスの識別子 100〜107 を使用して、最大 8 つのキューを作成できます。各キューには優先度があります。 自動 WLM の実装 - Amazon Redsh…
When non-supported write statements, such as CREATE without TABLE AS, are included in an explicit transaction before the supported write statements, none of the write statements will run on concurrency-scaling clusters. Concurrency scaling…
By default, only Amazon Redshift database superusers have permission to view all databases. To view data that other users generate in system tables, add the SYSLOG ACCESS parameter with UNRESTRICTED access.Note: Users with SYSLOG ACCESS ca…
Redshift で Datasharing している View に対して、オブジェクトレベルで Grant している場合、Create or Replace すると権限は維持されるが、Drop/Create すると権限が喪失することを確認した。 Producer 側 データ共有を作成する CREATE DATASHARE cnt_dat…
Redshift で既存の View を CREATE OR REPLACE VIEW する場合、列の追加・削除やデータ型が変わる場合エラーになる。Late Binding View を使うと CREATE OR REPLACE VIEW で列の追加・削除が可能。 OR REPLACE 同じ名前のビューが既に存在する場合、ビューは…
EMPTYASNULL Amazon Redshift で CHAR と VARCHAR の空のフィールドを NULL としてロードすることを指定します。INT など、他のデータ型の空のフィールドは常に NULL でロードされます。データに 2 つの区切り記号が連続し、区切り記号の間に文字がない場合…
Redshift で SYS_QUERY_HISTORY の execution_time は queue_time/lock_wait_time/planinng_time/compile_time を含まない。 [クエリの詳細] ページには、次のコンポーネントがあります。 上部ペイン - ページの上部ペインには、ステータスやタイプなど、ク…
SESSION TIMEOUT limit | RESET SESSION TIMEOUT セッションが非アクティブまたはアイドル状態を維持する最大時間 (秒) です。指定できる範囲は 60 秒 (1 分) から 1,728,000 秒 (20 日) です。ユーザーに対しセッションタイムアウトが設定されていない場合…
Redshift で非 ASCII 文字をフィルタする。 テーブルを作成する。 CREATE TABLE source_table ( col1 VARCHAR(100) ); CREATE TABLE target_table ( col1 VARCHAR(100) ); 非 ASCII 文字を含むレコードを insert する。 insert into source_table values('as…
Redshift でユーザー別のデータベース接続数の推移を調べる。 調査クエリ WITH RECURSIVE time_series(time_value) AS ( /* Recursive CTE で過去 7 日間の 1 分ごとの時間を生成 */ -- 開始時点(7日前) SELECT date_trunc('minute', dateadd(day, -7, GET…
調査クエリ SELECT relname FROM PG_CLASS_INFO WHERE (upper(relname) LIKE 'STL_%' OR upper(relname) LIKE 'SVCS_%' OR upper(relname) LIKE 'SVL_%' OR upper(relname) LIKE 'SVV_%' OR upper(relname) LIKE 'STV_%' OR upper(relname) LIKE 'SYS_%') AN…
Redshift で WLM キューが溜まった状態から Concurrency scaling を有効化後に Scaling cluster でクエリが実行されるまでの時間を検証してみた。環境セットアップ手順は以下参照。 Amazon Redshift に重いクエリを同時多重実行しながら性能情報を見る - abl…
Redshift のシステムビューの定義を確認する。 # show view svv_table_info; ↓整形済み SELECT btrim(((stvp.datname) :: character varying) :: text) AS "database", btrim( ( (nvl2(mvi.mv_id, mvi.mv_schema, pgn.nspname)) :: character varying ) :: t…
Amazon Redshift で SYSLOG ACCESS UNRESTRICTED 権限があっても SVV_USER_INFO などのメタデータビューは自分以外の行を参照できない。 メタデータビューの場合、Amazon Redshift は SYSLOG ACCESS UNRESTRICTED が許可されているユーザーには表示を許可し…
SYSLOG ACCESS UNRESTRICTED 権限を付与したユーザーで SYS_QUERY_HISTORY を参照すると、自分以外が発行したクエリとその username を参照することができる。 ユーザークエリーの詳細表示には、SYS_QUERY_HISTORY を使用します。いくつかのフィールドに関す…
Amazon Redshift のテーブルのリストアに必要な IAM 権限は RestoreTableFromClusterSnapshot である。 IAM ポリシー例 { "Sid": "VisualEditor4", "Effect": "Allow", "Action": [ "redshift:RestoreTableFromClusterSnapshot" ], "Resource": "arn:aws:red…
エラスティックリサイズの操作では、データスライスの分散が不均一であることが原因で、ノード間でデータの偏りが発生する可能性があります。クラスターでデータに偏りが生じた場合は、従来のサイズ変更を実行してください。 Amazon Redshift でエラスティッ…
Amazon Redshift で Late Binding View から通常 View を参照している場合、通常 View を Drop & Create することができることを確認した。 通常 View から通常 View を参照している場合は、依存関係があるため、参照元 View を Drop できない(CASCADE オプ…
Redshift で SELECT を順次実行中に、DDL(ALTER TABLE) を発行した場合、DDL 実行後に発行した SELECT は DDL を待機することを確認した。 SQL スクリプト lineorder.sql(SELECT) \timing on \pset pager --\set FETCH_COUNT 1000 set enable_result_cache…
Redshift でデータシェアリングで共有されたテーブルに対して、Consumer 側から View を作成した場合、Producer 側のテーブルを Drop できるか。 検証手順 [Producer側]スキーマとテーブルを作成する CREATE SCHEMA IF NOT EXISTS share_schema; CREATE TABL…
AWS マネジメントコンソールで Amazon Redshift のクエリモニタリングを参照するために必要な IAM ポリシー。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:Describe*" ], "Resource": "*" }, { "Effect": "Allow…
Amazon Redshift で View に対するクエリのフィルタ条件の push down について検証してみた - ablog と関連して、時系列テーブルを UNION ALL した View 経由で他のテーブルと結合した場合と View 内のテーブルを直接結合した場合のオペレーションを比較して…
Amazon Redshift でテーブルの分散スタイルが AUTO の場合に、ALL / EVEN / KEY 分散のいずれになるかデータを Insert or Copy しながら検証してみた。 AUTO 分散 AUTO 分散では、Amazon Redshift はテーブルデータのサイズに基づいて最適な分散スタイルを割…