SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Amazon Redshiftによるビッグデータ分析環境の構築

Amazon Redshiftへのデータ投入からBIツールによる可視化までの手順

Amazon Redshiftによるビッグデータ分析環境の構築(4)

  • このエントリーをはてなブックマークに追加

 前回は、データを投入するためのAWSの環境構築手順を解説しました。第4回目となる今回は、その環境に分析用のデータを投入するためのテーブル定義を作成し、データを投入、実際にBIツールでその環境にアクセスしてデータを可視化してみる部分までの手順について、順を追って見ていきたいと思います。

  • このエントリーをはてなブックマークに追加

 前回利用した構成図を参考に、今回解説を行う範囲を紹介します。分析を行うためのデータがある状態で、Amazon Redshiftを介して可視化ツールでそのデータにアクセスできるまでの『レール』を1本通す様なイメージと言えば良いでしょうか。

  • データの入手、整形
  • Amazon S3へのデータのアップロード
  • Amazon Redshift:テーブルの作成
  • Amazon Redshift:データの投入
  • Amazon Redshift:SQLによるバッチ処理(ETL)
  • BIツールからの接続確認

 また、利用するBIツールはTableau社が提供している『Tableau Desktop』というデスクトップツールを利用したいと思います。文中『Tableau』という言葉が出て来た際はこの『Tableau Desktop』のことを示しているとご理解ください。

データの入手・整形

 では分析を行いたいデータを準備するところから見ていきましょう。Tableau社では各種デモで用いることができるようなサンプルデータを公開していますが、今回はそのサンプルデータを利用したいと思います。

 以下のリンクで公開されているものは、架空の店舗別・地域別売り上げデータサンプルです。日本語で公開されており、複数テーブル(Excelなのでシートで分かれていますが)で構成されています。メインとなるテーブルの件数は8000件少々なので『ビッグデータ』とは言えませんが、デモ実演用に用いるものだけあってデータの内容は良い感じにまとまっていますので、これを例に手順を進めていきたいと思います。

 データをダウンロードし、構成内容を見てみましょう。全部でシートは5つあります。

  • Orders:注文データ。今回メインで利用することになるシート。
  • Inventory:製品内容に関する在庫目録的な情報。
  • Customer:顧客情報。収入や在職期間に関する情報が含まれている。
  • Prefecture:都道府県データ。人口や面積に関する情報が含まれている。
  • Targets:商品のカテゴリ・サブカテゴリごとの目標売上額を定めたもの。

 テーブルに投入することになるデータの内容確認、および整形作業を行います。Excelシートの内容をざっと見る限りだと、それぞれ以下のように吟味・編集する箇所がありそうです。

  • Orders:『製品名』『製品説明』に、取り込み時にエラーを引き起こす可能性がある文字列(『,』『"』『®』『©』など)が含まれているため、CSV生成時点で除去しておく。売り上げや宣伝費などの数値項目にカンマが含まれているため、除去する(列フォーマット指定で調整)。ヘッダー部分は日本語表記になっているが、作成するテーブル名は英字表記とする。
  • Inventory:『Product Name』にOrdersテーブル同様の文字列が含まれているのでCSV作成時点で除去しておく。
  • Prefecture:『Prefecture』以下、地域情報に関する部分がすべてローマ字表記となっているので日本語表記に変換。また、ISO(都道府県コード)は数字2桁の値に整形。
  • Targets:『Sales Target』がドル表記になっているが、これはテーブル投入後に円換算する方向で進める。

 今回はデータ件数も少なく、手作業で対処できるボリュームなので以下のような操作手順でCSVファイルをそれぞれ作成しました。

  • Excelのメニューから『編集』→『置換』で所定の文字列を置換。不要な文字列の除去は対象文字列を『』(空文字)に置換する形で取り除きます。
  • その他変換作業も同様に実施。Excelを扱うプログラミング言語を利用できるのであればそれらを用いるのも良いでしょう。
  • 内容をCSVファイルとして出力。カンマ区切りのデータとして扱います。
  • 出力したファイルはエンコーディングが『Shift_JIS』となっていますが、Amazon Redshiftで利用可能なエンコーディングは『utf-8』一択です。nkfというソフトを用いて別途utf-8のファイルを出力・保存しましょう。データのロードにはutf-8エンコーディングのファイルを利用します。
$ nkf -g codezine_orders.csv 
Shift_JIS  【←Excelから出力したファイルのエンコーディング:Shift_JIS】
$ nkf -Lw codezine_orders.csv > codezine_orders-utf8.csv 【←変換コマンド実施、結果は別ファイルに出力】
$ nkf -g codezine_orders-utf8.csv 
UTF-8 【←別途生成したファイルのエンコーディング:utf-8】

 上記仕様に基づいて作成を行ったファイルは以下です。すべてカンマ区切りのCSV、ファイルのエンコーディングはutf-8です。記事に添付していますので、必要に応じてダウンロードしてください。

  • codezine-orders-utf8.csv.gz
  • codezine-inventory-utf8.csv.gz
  • codezine-customer-utf8.csv.gz
  • codezine-prefecture-utf8.csv.gz
  • codezine-targets-utf8.csv.gz

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
データ投入環境の作成

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Amazon Redshiftによるビッグデータ分析環境の構築連載記事一覧

もっと読む

この記事の著者

しんや(シンヤ)

2010年末~2013年前半位までの期間で興味のある勉強会に頻繁に参加。参加してきた勉強会のレポートブログとTogetterをひたすらまとめ続け、まとめ職人(自称/他称含む)として暫く過ごしておりました。色々な縁あってDevelopers Summit 2013では『公募レポーター』も務めました。2013年05月『出張ブロガー』を経て2013年08月にクラスメソッド株式会社へ転職。現在は業務(AWS及びその周辺技術を扱う)の...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8438 2015/02/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング