psqlコマンドのオプションとパスワード入力を省略する

psqlコマンドの設定シリーズ第二弾。 ホスト名とかのデフォルトを設定する psqlでDBに接続するときはこんなコマンドで接続しますが…… psql -h xxxx.ap-northeast-1.redshift.amazonaws.com -p 5439 -U myuser dev これオプション多くて面倒じゃないですか。 …

psqlコマンドのお勧め設定

実はpsqlコマンドは色付きプロンプトを始めとして意外と便利な設定ができるようになっています。わたしが使っているおすすめの ~/.psqlrc を書いておきます。 \set PROMPT1 '%[%033[1;32m%]%n %`date +%H:%M` %R%#%[%033[0m%] ' \set PROMPT2 '%[%033[1;32m%…

awslabsからamazon-redshift-utilsがリリースされたようです

awslabs/amazon-redshift-utils awslabs/amazon-redshift-utils · GitHub 内容は AdminScripts と ColumnEncodingUtility の 2 つ。 ColumnEncodingUtility は実テーブルから最適な圧縮エンコーディングを選んで、 そのエンコーディングを使った新しいテーブ…

Redshiftで任意個数の文字列を扱う

最終的には縦持ちにしちゃえばどんなRDBでも扱えるんだけど、 某MySQLとか某Hadoopとかだと配列で持ってるじゃないですか。 ああいうのをどうやってとりこむか1年くらい考えてたんだけど ついに決定版を思いついた。 扱える個数の上限はあるんだけど、現実的…

Redshiftはビューの参照先テーブルをrenameすると追跡する

またタイトルだけで言いたいこと終わった… => create table t (x int); CREATE TABLE => insert into t values (777); INSERT 0 1 => create view v as select * from t; CREATE VIEW => alter table t rename to t2; ALTER TABLE => select * from v; x ---…

SQLだけでテーブル内容の一致判定をする

同じ定義のテーブルが2つあり、 その全行が同じかどうか(違う行がないか)を確かめたいときの方法。 select count(*) from ( (select * from x except select * from y) union all (select * from x except select * from y) ) 結果が 0 なら内容は同じです…

ビューも alter table で renameできることを知った

知った。 => create view vv as select * from t; CREATE VIEW Time: 144.060 ms => alter table vv rename to vv2; ALTER TABLE Time: 134.566 ms => \dv vv2 List of relations schema | name | type | owner --------+------+------+-------- aamine | vv…

なんでexplain drop tableできないんだよ!!

タイトルで書きたいこと終わった… => explain drop table s; ERROR: syntax error at or near "drop" LINE 1: explain drop table s; ^ Time: 14.038 ms なんでこんなことをしたいかと言うと、バッチSQLを書いたときに SQLのシンタックスとテーブル参照だけ…

DROP TABLE ... CASCADEでビューもろともテーブルを消す

Redshift使ってたらビューは普通に使う。 例えばちょっと試しに新しいデータを作るときに本番のデータを参照するビューを張って、 ビューで計算するとか。 あるいは本番環境の巨大なテーブルを開発環境からビューで参照して、 データの重複をなくしつつ、書…

投稿テスト

会社のブログへ記事を投稿するためにアカウントを作ってみました。