AWS
select a.relname, b.nspname, a.relacl from pg_class a, pg_namespace b where a.relnamespace = b.oid and a.relacl is not null and b.nspname not like 'pg_%';
select usename, usesysid, usesuper, useconfig, groname, grosysid, grolist from pg_user, pg_group where pg_user.usesysid = any(pg_group.grolist); 参考 amazon web services - Redshift: How to list all users in a group - Stack Overflow
Redshift クラスターに awslabs - amazon-redshift-utils の AdminViews を作成する。 % git clone https://github.com/awslabs/amazon-redshift-utils.git % cd amazon-redshift-utils/src/AdminViews % ls -1 *.sql > run_all.sql % perl -i -pe 's/^/\\i …
Amazon Managed Grafana(AMG) で Redshift のクエリをモニタリングしてみた。ダッシュボードの定義(JSON)をインポートすると以下のようなダッシュボードを作成できる。 ダッシュボードの見た目 Redshift の設定 Redshift クラスターを選択し、[Actions]-[M…
SCTインストール SCT 1.0 Build 655 をダウンロードして、インストールする。 AWS SCT のインストール、検証、更新 - AWS Schema Conversion Tool JDBC 4.2–compatible driver version 2.1 (without the AWS SDK) をダウンロードする。 Amazon Redshift JDBC…
macOS版 SCT がなくなったので、SCT on EC2 Windows で使う手順。 macOS へアプリケーションインストール AWS CLI v2 Session Manager Plugin Microsoft Remote Desktop EC2インスタンス作成 EC2(Windows)インスタンス作成 AMI: Microsoft Windows Server …
Redshift に import した UDF を確認する。 sample=# select * from pg_library a, pg_language b where a.language_oid = b.oid; name | language_oid | file_store_id | owner | lanname | lanispl | lanpltrusted | lanplcallfoid | lanvalidator | lanacl…
SQL select a.proname, a.proacl, a.pronamespace, b.nspname from pg_proc a, pg_namespace b where b.nspname = 'aws_teradata_ext' and a.pronamespace = b.oid order by a.proname; 実行結果 proname | proacl | pronamespace | nspname ---------------…
IAMロールを作成する IAMロール RedshiftPauseResumeRole を作成 Permissions policies IAMポリシー RedshiftPauseResumeRolePolicy を作成してアタッチ { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action":…
Redshift で COPY コマンド実行時に query_temp_blocks_to_disk が使われることがあることを確認した。 QMR(Query Monitoring Rule) で query_temp_blocks_to_disk > 1MB のクエリを中止するよう設定した上で、分散キー・ソートキーが指定されたテーブルに非…
producer 側 create datashare test_db; alter datashare test_db set publicaccessible = true; alter datashare test_db add schema sample1, sample2; -- consumer 側で "select current_namespace;" を実行し、以下のクエリの <name space> に指定する grant usage o</name>…
Redshift で CREATE TEMP TABLE は QMR(Query Monitoring Rule) の Memory to disk (1 MB blocks) の制限にひっかかることを確認した。 準備 QMR の設定 テーブルを作成する CREATE TABLE lineorder ( lo_orderkey INTEGER NOT NULL, lo_linenumber INTEGE…
Redshift クラスターを土日&夜間に一時停止しコストを削減する - サーバーワークスエンジニアブログ
Redshift で分散スタイル変更時の VACUUM 要否を確認してみた。 EVEN分散->KEY分散に変更した場合 テーブル作成 dev=# drop table public.customer cascade; dev=# create table public.customer ( c_custkey integer not null, c_name varchar(25) not null…
テーブルのフィールドにカンマ区切りのデータを登録する。 dev=# create table pivot_test (id int, txt varchar); CREATE TABLE dev=# insert into pivot_test values (1,'AZ, Sidmar,1'),(2,'Kaihatsu,Suarez,9'),(3,'Azuma,Neymar,11'),(4,'OZ,Iniesta,8'…
クエリ select pg_user.usename, pg_user.usesysid, pg_group.groname, pg_group.grolist from pg_user,pg_group; 実行結果 usename | usesysid | groname | grolist ------------------------------+----------+----------------------------+--------- rds…
Config で設定 恒久的にページ分割を無効化したい場合は、~/.aws/config ファイルに以下のように書きます。 ~/.aws/config [default] cli_pager= export コマンドで設定 一時的にページ分割を無効化したい場合は、export や setx コマンドで以下のように設定…
マネコンでパラメータグループやワークロード設定を行う。 設定したパラメータを表示する % aws redshift describe-cluster-parameters --parameter-group-name poc-auto-wlm (中略) { "ParameterName": "max_concurrency_scaling_clusters", "ParameterVa…
事象 ユーザーにテーブルに対する権限を付与しているのに "permission denied for schema ..." と怒られる。 こんな感じでアクセス権を付与しているが、 % psql "host=redshift-cluster-poc.********.ap-northeast-1.redshift.amazonaws.com user=awsuser db…
クラスター全体での実行中とキュー待ちのクエリ数 マネジメントコンソールで[Redshift]-[クラスターを選択]-[クエリのモニタリング]-[ワークロードの同時実行] オレンジ色:実行中のクエリ数 青色:ワークロードキュー待ちのクエリ数 「キューに入れられたク…
サマリー EC2インスタンス(t2.micro)から psql で Redshift に結果セットが100GB以上と大きい select 文を発行すると、CloudWatch メトリクスでネットワーク受信量 (バイト数)が約500MB/分になる。 m5.large では約3.2GB/分のスループットが出た。 t2.micr…
Redshift の superuser のパスワードはマネコンまたは AWS CLI から変更できる Amazon Redshift コンソールを使用して superuser アカウントのパスワードをリセットする Amazon Redshift コンソールを使用してsuperuser (または adminuser) のパスワードを変…
psql で Redshift から定期的に S3 に UNLOAD したメモ。 Redshift に接続する。 export LC_ALL=C /usr/pgsql-13/bin/psql "host=redshift-cluster-2.********.ap-northeast-1.redshift.amazonaws.com port=5439 dbname=dev user=awsuser" 10秒間隔で tv_que…
実行権限 テーブルの所有者またはスーパーユーザーのみがテーブルにバキューム処理を実行できる。 以下に、VACUUM に必要な権限を示します。 スーパーユーザー VACUUM の権限を持つユーザー テーブルの所有者 テーブルの共有先であるデータベース所有者 VACU…
Redshift で存在するテーブル、ビュー、スキーマの DROP 文を生成する テーブル select 'drop table '||schemaname||'.'||tablename||' cascade;' from pg_tables where schemaname not in ('public', 'information_schema', 'catalog_history') and scheman…
Redshift で pg_table_def に問い合わせるとテーブルのソートキーを調べることができる。 調べたいスキーマを set search_path to スキーマ名>; で指定してやる必要がある。スキーマ一覧は psql なら \dn でリストを表示できる。 クエリ \pset pager set sea…
例 alter table schema1.test1 alter column col1 encode raw, alter column col2 encode raw, alter column col3 encode raw; 書式 ALTER TABLE - Amazon Redshift | ALTER COLUMN column_name ENCODE encode_type, .....;
(Aurora) PostgreSQL の Transaction ID(XID) は AUTO VACUUM で autovacuum_freeze_max_age (デフォルトは2億)に達すると自動的に回収される。 以下は実際の CloudWatch メトリクスの MaximumUsedTransactionIDs のグラフの推移。 XID が2億(200M)に達…
Amazon Aurora の CloudWach メトリクス VolumeReadIOPs/VolumeWriteIOPs は5分間の合計、IOPS(秒間IO回数)は300秒(5分)で割って算出する必要がある。 メトリクス:VolumeReadIOPs コンソール名:ボリューム読み取りの IOPS (カウント) Applies to:Auro…
Amazon RDS のメモリ使用状況を調べる際に確認すべきポイント。以下のスクリーンショットは Aurora MySQL。 CloudWatch メトリクス Freeable Memory (実質メモリ使用量)を確認する。/proc/meminfo に MemAvailable に相当する(参考)。メモリ使用量を監視…