Redshift
AWS エンジニアの皆様、AWS サービスアップデートのキャッチアップおつかれさまですm(._.)m このエントリは AWS Analytics Advent Calendar 2024 の4日目の記事です。 3日目は 大薗さんの状況に合わせて、とても素晴らしい食事プランを提案してくれる 有益な…
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 検証手…
COPY コマンドで Redshift にデータロード時に無効な UTF-8 文字がある場合、ACCEPTINVCHARS で固定の文字列に置換することができる。 ACCEPTINVCHARS [AS] ['replacement_char'] データに無効な UTF-8 文字がある場合でも、VARCHAR 列へのデータのロードを…
Redshift でテーブルの末尾にしかカラムを追加できない。ドキュメントを見る限りカラム位置を指定するような構文はない。 接続する $ psql -a "host=redshift-cluster-poc-central.********.ap-northeast-1.redshift.amazonaws.com user=awsuser dbname=dev …
QueryEditor v2 を利用する IAM ロール / IAM ユーザーにアタッチする。 IAM ポリシー AmazonRedshiftReadOnlyAccess AmazonRedshiftQueryEditorV2NoSharing IAM 権限 redshift:GetClusterCredential redshift:CreateClusterUser redshift:JoinGroup { "Vers…
UNPIVOT で性能要件を満たさない場合に「項目テーブル作成 & CROSS JOIN+WITH句」へ書き換えたケース。 書換前 書換後 参考 [Redshift] テーブルの縦持ちと横持ちを入れ換える方法 | DevelopersIO [新機能] RedshiftのPIVOT/UNPIVOT機能を試してみた | Devel…
検証結果 planning_time と compile_time は execution_time に含まれるぽい。 検証手順 とあるコンパイルに時間がかかるクエリを実行する。 SYS_QUERY_HISTORY を確認する。 execution_time、compile_time、planning_time を足すと elapsed_time を超えてし…
検証結果 elapsed_time = end_time - start_time lock_wait_time は elapsed_time に含まれる 検証手順 テーブルを作成して、行を挿入 CREATE TABLE testtab1(id int primary key, name varchar(32)); INSERT INTO testtab1 (id, name) VALUES(1, 'foo'); IN…
Glue カタログでテーブルのカラムを追加・削除すると、Redshift Spectrum でも追加・削除されるという当たり前のことを検証してみたメモ。 カラム追加・削除 Redshift から Glue カタログを参照するため external schema を作成する。 create external schem…
Glue カタログの VACHAR 型はサイズパラメータ( VARCHAR (256) など)がないが、Redshift Spectrum からサイズパラメータなしで定義された VARCHAR 列をクエリすると、"Invalid column type" エラーが発生する。 Redshift Spectrum を使用して、AWS Glue デ…
Amazon Redshift の WLM クエリモニタリングルールで、一定時間以上実行されているクエリを中止してみた。 以下の例では 10 秒以上要したクエリを中止している。 実行結果 [ec2-user@ip-172-31-0-222 ~]$ export LC_ALL=C [ec2-user@ip-172-31-0-222 ~]$ cat…
準備 psql で Redshift に接続する。 psql "host=ds2xl-2n.******.us-west-2.redshift.amazonaws.com user=awsuser dbname=mydb port=5439" テーブルを作成してデータを投入する。 \echo :AUTOCOMMIT; CREATE TABLE tab1 (col1 INTEGER NOT NULL); CREATE TA…
ただのメモ。 データを用意して % cat ts_test.csv 202 2012-12-31 12:34:56 652 2012-12-31 12:34:56 761 2012-12-31 12:34:56 811 2012-12-31 12:34:56 922 2012-12-31 12:34:56 1160 2012-12-31 12:34:56 1309 2012-12-31 12:34:56 1413 2012-12-31 12:34…
性能試験などで敢えてリザルトキャッシュを使わずにクエリ性能を計測したい場合は以下の手順で無効化できる。 手順 セッションレベルで無効化する方法 set enable_result_cache_for_session=off; ユーザーレベルで無効化する方法 ALTER USER awsuser SET ena…
設定 ~/.psqlrc \set PROMPT1 '%[%033[1;32m%]%n %`date +%H:%M` %R%#%[%033[0m%] ' \set PROMPT2 '%[%033[1;32m%]%R%#%[%033[0m%] ' \timing on \set HISTSIZE 1000000 psqlコマンドのお勧め設定 - 青木ブログ コマンド例 ログイン psql "host=dc18xl8.****…
ソースを取得する。 $ git clone https://github.com/awslabs/amazon-redshift-utils.git 実行スクリプトを作成する $ cat <EOF > create_all_views.sql \i v_check_data_distribution.sql \i v_check_transaction_locks.sql \i v_check_wlm_query_time.sql \i v_c</eof>…
Redshift の COPY コマンドが失敗した場合、ロールバックするか。 COPY コマンドはアトミックでトランザクショナルです。 (中略) COPY コマンドが失敗した場合、トランザクション全体が中止され、変更はすべてロールバックされます。 複数ファイル読み取り…
Amazon Redshift のテーブル一覧とサイズを AWS Labs の table_info.sql で確認する。 % git clone https://github.com/awslabs/amazon-redshift-utils.git % cd src/AdminScripts % psql "host=rs-spectrum01.******.us-east-1.redshift.amazonaws.com user…
まとめ 「SVV_TABLE_INFO.TBL_ROWS」 で削除対象としてマークされた行も含めた行数を確認できる 「SVV_TABLE_INFO.TBL_ROWS」 - 「select count(*) from テーブル名」が削除済としてマークされた行数 STV_TBL_PERM、SVV_DISKUSAGE も同様に削除済としてマー…
Amazon Redshift 自体にはクラスターに存在するテーブルなどのオブジェクトのDDLを生成する機能はないが、以下のスクリプトやツールで生成することができる。 つまり、Oracle Database の DataPump の CONTENT=METADATA_ONLY や exp の rows=n ような機能は…
環境 macOS Sierra インストール SQL Workbench/J - Downloads で [Download generic package for all systems] をダウンロードする。*1 Workbench-Build122.zip を解凍して任意のフォルダに置く。 設定 GUIで起動する。 $ cd Workbench-Build122 $ sh ./sql…
SQL Workbench/J をインストールして Amazon Redshift に接続するまでの手順をメモ。SQL Workbench/J は Java で書かれた GUI および CUI から SQL を実行できるツールで、様々な RDBMS に使える。 SQL Workbench/J is a free, DBMS-independent, cross-plat…
実行計画とステップごとの所要時間 [Query Execution Details] Plan Actual リソース使用状況 マネジメントコンソールで見れる ビュー SVL_QUERY_METRICS_SUMMARY SVL_QUERY_METRICS SVL_QUERY_QUEUE_INFO SVL_QUERY_SUMMARY SVL_QUERY_REPORT SVL_COMPILE S…