ablog

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

2022-01-01から1年間の記事一覧

よく使う psql のオプション

よく使う psql のオプション -f: SQLスクリプトファイルを指定して実行する -a: 実行した SQL も出力する 実行例 psql "host=redshift-cluster-poc.********.ap-northeast-1.redshift.amazonaws.com user=awsuser dbname=dev port=5439" -a -f sample.sql 参…

macOS に pgbench をインストールする

% brew install postgres 参考 Postgres on Mac with Brew 💻. Brewing PostgreSQL on OS X | by Gopi Krishna Kancharla | Think Special — Gopi K Kancharla | Medium | Think Special — Gopi K Kancharla

Redshift でクエリを同時多重実行検証をするスクリプト

TL;DR Redshift クラスターのサイジングや Concurrency Scaling の検証などで、クエリを同時実行し、クエリ単体のレスポンス要件と複数クエリのスループット要件の両方を満たしているかを検証したりする bash スクリプト。bash スクリプトから pgbench を読…

Redshift でワークロードキュー毎のクエリ同時実行数を確認する

AWS

クラスター全体での実行中とキュー待ちのクエリ数 マネジメントコンソールで[Redshift]-[クラスターを選択]-[クエリのモニタリング]-[ワークロードの同時実行] オレンジ色:実行中のクエリ数 青色:ワークロードキュー待ちのクエリ数 「キューに入れられたク…

psql on EC2 で Redshift のクエリの結果セットが大きい場合のボトルネックを調べる

AWS

サマリー EC2インスタンス(t2.micro)から psql で Redshift に結果セットが100GB以上と大きい select 文を発行すると、CloudWatch メトリクスでネットワーク受信量 (バイト数)が約500MB/分になる。 m5.large では約3.2GB/分のスループットが出た。 t2.micr…

Redshift の superuser のパスワードを変更する

AWS

Redshift の superuser のパスワードはマネコンまたは AWS CLI から変更できる Amazon Redshift コンソールを使用して superuser アカウントのパスワードをリセットする Amazon Redshift コンソールを使用してsuperuser (または adminuser) のパスワードを変…

psql で Redshift から定期的に S3 に UNLOAD する

AWS

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…

find で正規表現にマッチするファイルを移動したメモ

macOS(12.3.1) で find で正規表現にマッチするファイルを移動したメモ find -E . -type f -regex ".*(foo|bar|hoge).*" -exec mv {} ./old/ \;

Amazon Redshift の VACUUM について

AWS

実行権限 テーブルの所有者またはスーパーユーザーのみがテーブルにバキューム処理を実行できる。 以下に、VACUUM に必要な権限を示します。 スーパーユーザー VACUUM の権限を持つユーザー テーブルの所有者 テーブルの共有先であるデータベース所有者 VACU…

Redshift で DROP 文を生成する

AWS

Redshift で存在するテーブル、ビュー、スキーマの DROP 文を生成する テーブル select 'drop table '||schemaname||'.'||tablename||' cascade;' from pg_tables where schemaname not in ('public', 'information_schema', 'catalog_history') and scheman…

pyenv を install したけど python not found と怒られる

事象 pyenv をインストールしたけど、python が見つからないと怒られる。 % pyenv versions system * 3.10.3 (set by /Users/yoheia/.pyenv/version) % which python python not found 解決策 ~/.zshrc に eval "$(pyenv init --path)" を記述する export PY…

Redshift で pg_table_def に問い合わせてテーブルのソートキーを調べる

AWS

Redshift で pg_table_def に問い合わせるとテーブルのソートキーを調べることができる。 調べたいスキーマを set search_path to スキーマ名>; で指定してやる必要がある。スキーマ一覧は psql なら \dn でリストを表示できる。 クエリ \pset pager set sea…

find -exec grep で DDL から partition 句を抽出する

テーブル名がファイル名に含まれる1テーブル=1ファイルのファイルから partition 句だけを抽出したコマンドをメモ。 find . -iname '*table1*' -exec grep -A 10 -i 'partition' '{}' \;|perl -pe 's/^.*\.sql(:|-)//g' 参考 findとgrepで使われるexecオプシ…

Redshift で複数カラムの圧縮エンコードを1つの ALTER 文で変更する

AWS

例 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 は2億に達するとAUTO VACUUM で自動回収される

(Aurora) PostgreSQL の Transaction ID(XID) は AUTO VACUUM で autovacuum_freeze_max_age (デフォルトは2億)に達すると自動的に回収される。 以下は実際の CloudWatch メトリクスの MaximumUsedTransactionIDs のグラフの推移。 XID が2億(200M)に達…

Amazon Aurora の CloudWatch メトリクス VolumeReadIOPs/VolumeWriteIOPs は5分間の合計

Amazon Aurora の CloudWach メトリクス VolumeReadIOPs/VolumeWriteIOPs は5分間の合計、IOPS(秒間IO回数)は300秒(5分)で割って算出する必要がある。 メトリクス:VolumeReadIOPs コンソール名:ボリューム読み取りの IOPS (カウント) Applies to:Auro…

固定長ファイルの改行を fold コマンドで補正したメモ

Redshift のシステムビュー svv_table_info の情報を取得してもらったら、変なところで改行されてたので、補正したメモ。 各行の行長(文字数)を調べる。 % perl -nle 'print length($_)' svv_table_info.txt 271 95 271 95 271 95 ... svv_table_info.txt …

povo で機種変更する方法

au Online Shop から機種を選択し、商品詳細ページ内にある“スマホ単体購入の場合はこちら”をクリック 例:iPhone 13 スターライト 128GB 支払い方法を選択する:一括支払い 機種購入サポート:au で購入した現行 iPhone を買い取ってもらう場合は入力する …

csplit で 99 ファイル以上に分割する

csplit コマンドは正規表現で特定の文字列が出現したらファイルを分割することができる。 デフォルトで分割数は最大で 99 ファイルまでだが、分割数の上限を増やしたい場合は -n オプションで桁数を指定すればよい。 例 ".sql" という文字列が出現した行でフ…

Amazon RDS のメモリ使用量を確認する

AWS

Amazon RDS のメモリ使用状況を調べる際に確認すべきポイント。以下のスクリーンショットは Aurora MySQL。 CloudWatch メトリクス Freeable Memory (実質メモリ使用量)を確認する。/proc/meminfo に MemAvailable に相当する(参考)。メモリ使用量を監視…

MacBook Pro M1 で AWS Schema Conversion Tools を使用する

インストール JDK 11 のインストール JDK をダウンロードしてインストール Java Version: Java 11 (LTS) Operating System: macOS Architecture: ARM 64-bit Java Package: JDK JDK FX をダウンロードしてインストール Java Version: Java 11 (LTS) Operatin…

macOS Monterey セットアップメモ

環境 macOS Monterey(12.1) MacBook Pro M1 (14 inch) 設定 キーボードの応答を速くする [システム環境設定]-[キーボード] キーのリピート:速い リピート入力認識までの時間:短い 通知をOFFにする [システム環境設定]-[通知と集中モード]-[通知]でアプリを…