Redshiftで良く使いそうな便利系SQLAWS特集Redshift2016年09月20日しんや(663)10この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。言われてみれば確かにそうだよね、という割と初歩的且つシンプルなお話を。過去のエントリにて、"VACUUM対象テーブルを洗い出す"というテーマで以下2本のエントリを投稿しました。Developers.IO上記SQLを使って、VACUUM処理を必要とするテーブルに対してVACUUM処理を実行して行く過程で、何度実行しても未ソート状態が改善されないテーブルが幾つかありました。この事象は、下記袴田のエントリ内『統計情報の鮮度とソートされていない行の割合に注意!』で示されているSQLでも同様です。VACUUMすべき対象として挙がってくるものの、VACUUMを行っても状況は変わりませんでした。Redshift原因は至極シンプルなものでした。『テーブルにソートキー指定がされてない』が為に、VACUUM処理を行ってもソート処理がされない、ただそれだけでした。岡田彰布元阪神・オリックス監督)な内容です。テーブルに対してDELETE等を行っていれば、その際のゴミデータをVACUUMで除去・改善出来るのだとは思いますが、ソート状態の改善についてはキーが指定されていないためにSKIPされている、という事なのでしょう。VACUUM・ANALYZE処理が必要なテーブルを割り出すSQL(改良版)上記内容を踏まえ、過去エントリの内容をよりブラッシュアップさせたSQLが以下となります。以下2つのテーブル情報を結合させています。DESC;以下が実行結果のサンプルです。1.テーブルのソートキー設定有無を確認1つ目はテーブルのソートキー設定の有無。first_sortkeyとto_set_sortkey列の内容を確認します。ソートキー指定がされていないものにはfirst_sortkeyの値が設定されず、to_set_sortkeyの欄には『00_未設定(要SORTKEY設定)』というラベルが表示されます。そもそもVACUUMしてもSORTKEYを使ってのソート処理がされない状態となるので、まずはテーブル定義を見直し適切なソートキーを設定するところから着手します。テーブルのソート状態を見ます。sort_percentageとto_vacuum_sort列です。ONLYでソート処理を行う必要があります(『02_完全未SORT(要SORT)』)。1.000(=100%、100%ソート済み)に満たないもの(『03_一部未SORT(要SORT)』)についてもソート処理が必要です。Redshiftではソート対象の基準デフォルト値が95%以上のもの(未ソート状態のデータが5%に満たないもの)についてはソート処理をスキップしていますので、対象テーブルの中でソート済み状態が95%以上となっているものについては実施を保留としても良いかも知れません。最後3つ目はテーブルの最新の統計情報が得られているかの確認です。stats_offとto_analyze列が該当します。『svv_table_info』テーブルのドキュメントを見ると、stats_offの値は『テーブルの統計情報の古さを示す数。最新でないことを示します。』という見方の解説があります。0で無いものについてはto_analyze列に『05_要ANALYZE』のラベルを表示させていますので、このラベルが表示されたテーブルについては『ANALYZE実行すべし』という事になります。ソートキーの有無でVACUUMの効き目を確認では、ソートキーの有無でVACUUMの実行内容がどう変わるのか確認してみましょう。以下のpublic.ordersテーブルはソートキー(sortkey)指定がありません。row)これとは別に、ソートキー指定を行った同一内容別テーブル:public.orders_newを用意。row)確認用SQLで内容を確認してみます。rows)双方テーブルに対してVACUUM処理とANALYZE処理を実行。実行後の結果を改めて確認して見ると、ソートキー指定を行ったorders_newテーブルはちゃんと処理されていますが、未指定のordersは処理そのものがSKIPされている様です。ソートキー指定を行っていないのでそもそも並び替え出来ないよ、という事ですね。忘れずにソートキー指定を行っておこう。データがちゃんと整理されないぞ。|こちらからは以上です。6,637,007まとめ職人→出張ブロガー(初代)→AWSエンジニア→ビッグデータ系エンジニアDevelopers.IO全投稿のうち1,000本を書いています。リモート参加もOK〜クラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。〜ITエンジニアのお仕事とホンネ〜1月30日に新卒向けの会社説明会〜ITエンジニアのお仕事とホンネ〜を開催します。クラスメソッドの関連会社であるアノテーション株式会社の研修として依頼を受け、チームと心理的安全性、それに礼節というテーマで話をしてきました。濱田孝治269「ふわわぁ、眠いな。藤井元貴90Gitリポジトリ内を検索する機会はよくあると思います。grepコマンドを使えば、git管理下のファイルのみを対象としてgrepができます。シンプルなコマンドですが、利便性はとても高いと思います。記事2020年01月20日かずえ82速報です。先程大阪リージョン開設予定がアナウンスされました!!以前から大阪ローカルリージョンという色々と制限がついた特殊なリージョンが存在していましたが、それが拡張され、東京リージョンなどと同じ通常のリージョンになります!2021年初頭開設予定です。武田隆志1143このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。クラスメソッドの関連会社であるアノテーション株式会社の研修として依頼を受け、チームと心理的安全性、それに礼節というテーマで話をしてきました。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe328件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui328インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。濱田孝治269「ふわわぁ、眠いな。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。