10』手順実践AWS特集Redshift2016年02月26日しんや(660)11この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。10』手順実践』の第2弾です。課題#2の『偏ったテーブルデータ』について内容を見て行きたいと思います。偏ったテーブルデータ』を実践してみる細かい解説等は参照元エントリを読むなどして頂ければと思いますので割愛します。良い分散キーの特徴は以下のようなものとなり、以降で紹介するSQL文ではその辺りの情報が取得出来る形となります。awslabs/amazon-redshift-utils該当するSQLファイル『table_inspector.sql』は以下となります。一時テーブルに必要な情報を集約し、内容が確認出来る形になっているようですね。"一時テーブル"とは現在のセッション内でのみ表示可能な一時テーブルを作成する機能です。tablename;上記の内容をSQLファイルとして保存し、手元の環境からpsqlで接続して-fオプションを使いファイル実行してみます。すると以下の様なフォーマットで結果が得られました。100確認すべき項目のそれぞれの"意味"ついては以下の通りです。テーブルに分散キーが存在するかどうかを示します。キーが存在しないことを示します。テーブルにソートキーが存在するかどうかを示します。キーが存在しないことを示します。テーブルのいずれかの列に対して圧縮エンコードが定義されているかどうかを示します。つの列にエンコードが定義されていることを示します。エンコードが定義されていないことを示します。データ分散スキューの割合。値が小さいほど結果は良好です。入力されているスライスの割合。値が大きいほど結果は良好です。項目の内容から得られる情報と、対処する方向性の内容としては以下の様な形でしょうか。テーブルの利用状況・他テーブルとの絡み等を考慮し、対処すべきテーブルから着手して行く形となるかと思います。has_col_encoding:この項目が"0"のテーブルはカラムに対して列圧縮定義が為されていない。よって、設定を行なう事で得られる恩恵に預かれていない可能性が高い。データ件数・ボリュームが多い場合は尚更。偏ったテーブルデータの問題に取り組むのと併せて、適切なテーブル列圧縮定義によるテーブル再作成を検討する必要がありそうです。has_dist_key:この項目が"0"のテーブルには分散キーが設定されていません。適切な分散キーを設定するべきかも知れませんが、任意のキーを設定する事によって却ってデータの偏りが生まれてしまう可能性があるので、この項目についてはそのまま未設定(EVEN)でも良いのかも知れません。幾つか候補があるのであれば、その候補でそれぞれテーブルを作成してみて比較してみた方が良さそうです。Redshifthas_sort_key:この項目が"0"のテーブルにはソートキーが設定されていません。この設定についてはデータのアクセスのされ方、処理のされ方によって設定すべきカラムが変わるので、状況に応じて設定を切り替えて行く必要があります。Redshiftpct_skew_across_slices/pct_slices_populated:こちらについてはドキュメントにて言及されている様に、pct_skew_across_slices、pct_slices_populated双方の項目を見ていく必要があります。Techシリーズ等でも言及されていますが、異なるスキーマで同じテーブル名だった場合の特定が出来なかったので特定する術を踏まえる形で確認してみました。Redshiftまずはスキーマ名とテーブル名で対象テーブルのID値を取得。xyzxyzxx従来の取得SQLにID絞り込みの条件を付与して情報ゲット。確認してみたら『偏ってるってレベルじゃねーぞ』な勢いでの偏り具合なテーブルでしたね...(しろめこのテーブルはデータの偏りがひどい状態となっているので、まずはこの偏りを改善する事でパフォーマンスの向上を期待する事が出来そうです。rows)[追記]スライスに関する情報として、STV_SLICESというテーブルもあるようです。上記SQLに追記する形でノード・スライスの情報を付与してみました。10』トピック2つめ、"偏ったテーブルデータ"に関する対処方法のご紹介でした。3つ目以降のトピックについても、こんな感じで読み解きつつ実践して行きたいと思います。6,605,953まとめ職人→出張ブロガー(初代)→AWSエンジニア→ビッグデータ系エンジニアDevelopers.IO全投稿のうち1,000本を書いています。〜ログ収集、監視、分析を触って体感しよう!〜」を開催しますお申し込み受付は終了しました。ありがとうございました。今後セミナーのお知らせを受け取りたい方は、こちらからご登録をお願いします。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。平野重利123Pythonで、標準入力を変換して標準出力に出すCLIプログラムのテンプレートをご紹介します。菊池修治47こんにちは、菊池です。勉強会#1に登壇しました。サーバのみならずネットワーク機器の仮想化も年々進んでいます。スペックに縛られないこととか、展開のしやすさとか初期考慮点が少なくなるのは嬉しいです。武田隆志1098このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。悠紀235ShifterはWordPress環境をサーバーレスで立ち上げ、静的なサイトを生成することができるサービスです。FAQサイトをサクッと作ってみました。Takumi227こんにちは。DA事業本部の春田です。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。