まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

IBM Bluxmix のアプリケーション開発アカウントを所有している人にはメールで通知されているのですが、IBM Bluemix アプリケーションのドメインが6月26日に変更になるようです。

これまで、IBM Bluemix 上で作成したアプリケーションには
 (アプリ名).ng.bluemix.net
というホスト名が割り当てられていましたが、最近になって、
 (アプリ名).mybluemix.net
というホスト名も同時に付与されるようになりました。

この前者のホスト名は6月26日までは使えますが、それ以降は後者のホスト名に統一される、とのことです。現在は移行期間の扱いで、どちらの名前でもアクセスできます。

Bluemix 上で動いているアプリケーションをブックマークされている人は後者の名称でブックマークを変更する必要があります。

開発者の視点だと、影響のあるケースとないケースがあると思います。アプリケーションにアクセスするURLが変わるだけなので、開発時に影響を受けるアプリケーションは限られていると思いますが、OAuth でコールバックアドレスを使うケースなど、特定のURLに依存するような機能を使っていると、そのURLを新しいものに変更する必要があります。


僕が作って公開していた TwiML Editor も facebook の OAuth を使っていたので影響がありました。今後はこちらのアドレスを使ってください:
http://twimleditor.mybluemix.net/


 

前回、BLUAcceleration for Cloud のインスタンスを起動して、ウェブコンソールにログインする手順までを紹介しました。その続きです:
Bluemixから提供されるDBaaS : BLUAcceleration for Cloud を使ってみる(1)

ではこの環境に実際に解析するデータを投入してみます。
データは何でもいいのですが、ビッグデータの活用に積極的で、統計情報を公開している福岡市のサイトからサンプルデータを使わせていただくことにします:
福岡市サンプルデータサイト

使うデータはどれでもいい・・・というわけではなく、対応フォーマットの中でもサンプルとして加工が楽そうな CSV ファイルにします。マップ系データの中の K01 スポーツ施設 というデータをダウンロードしてみます:
2014062101


ダウンロードファイル名は K01.csv というファイル名になっています。

で、実はこの CSV ファイルは文字コードがシフトJISになっています。BLUAcceleration for Cloud だと文字化けしそうなので UTF-8 に変更する必要があると思っています(この辺りの詳しい仕様は未確認)。開発者の方であれば何らかのツールをお持ちだと思います(僕は EmEditor で変換しました)が、K01.csv ファイルを UTF-8 に変換しておいてください。


そして、このファイルを BLUAcceleration for Cloud 環境にロードします。前回紹介した方法でウェブコンソールにアクセスします:
2014062009

画面上部のメニューから Manage - Load Data を選択します。ここから何段階かに分けてロードするデータを指定していきます:
2014062102


まずは CSV ファイルを指定します。「ファイルを選択」ボタンをクリックして、先程ダウンロード&文字コード変換した K01.csv ファイルを指定します。またその下の "Row one contains the column name(1行目は列名データ)" を ON の状態にします:
2014062103


日付時刻データが含まれる場合は Advanced Options を展開して日付・時刻のフォーマットを指定します。最後に Load File ボタンをクリックします:
2014062104


データのプレビューが表示されます(シフトJISコードだとこの時点で文字化けしているはずです)。このデータを使う場合は Next ボタンをクリックします:
2014062105


次にこのデータを格納するテーブルを指定します。既にテーブルが存在していて、その中に格納する場合は上の "Load into an existing table" を、新規にテーブルを作成してその中に格納する場合は下の "Create a new table and load" を選択します(ここでは後者を選択しています)。そして Next ボタンをクリック:
2014062106


データの内容を元に自動生成されたテーブルとその名称が表示されています。必要があればこの内容を編集して改変します(特に変更の必要がなければこのままでも構いません)。そして Finish ボタン:
2014062107


ロード結果が表示されます。この画面ではとりあえず成功して 40 行のデータがロードされた、ということがわかります(ビッグデータといえるかどうか・・・)。このデータは直前に指定した K01 テーブルに格納されているはずです:
2014062108


ロードしたデータを確認してみます。メニューから Manage - Work with Tables を選択します:
2014062109


画面左ペインのスキーマ一覧から K01 テーブルを選択すると、右ペインの K01 テーブルのスキーマが表示されます。今は K01 テーブルの中身を参照したいので、この右ペイン内の Browse Data タブをクリックします:
2014062110


K01 テーブルにロードされたデータの一覧が表示されます。このような状態にまでなっていればデータがデータベースに取り込まれて、解析のための準備ができたことになります。

この状態から各種のフィルタリングや列の表示/非表示切り替え、表示順変更などが可能になります。試しにフィルタリングを作ってみましょう。画面赤枠のフィルタリング作成ボタンをクリックします:
2014062111



フィルターの作成画面が表示されます。ここでは単純ですが、名称に「博多」を含むデータだけをフィルタリングしてみます。条件を指定して「フィルター」ボタンをクリックします:
2014062112


名称に「博多」を含むデータだけが選別されているはずです:
2014062113


本来ならばこうしてクラウドにロードされたデータに対して Cognos BI などを使って解析する、ということになると思うのですが、無料アカウントのせいなのか、どうもそこまでの権限はないようでした(与えられたサンプルデータを使う、ということはできそうでした)。残念、無料アカウントではここまでか。









 

IBM Bluemix 上のアプリケーションが期待通りに動かない時のトラブルシュートは、まずアプリケーションサーバーのログを参照することです。その手順を紹介します:


まず IBM Bluemix にログインし、ダッシュボード画面を開きます。そしてログを見たいアプリケーションサーバーを選択します:
2014062201


アプリケーションサーバーが選択された画面が表示されたら、左ペインの "Files and logs" をクリックします:
2014062202

 
すると画面の右ペインにアプリケーションサーバー内の設定ファイルやログファイルのツリーが表示されます。なおログファイルは logs フォルダ内にあります:
2014062203


あとはここから見たいログをクリックして指定するだけです。この例だと stderr.log(標準エラー)を指定して参照しています。JDBC エラーが出ていることがわかると思います:
2014062204

 
IBM Bluemix のような PaaS 環境は IaaS と違ってサーバーへのアクセスが制限されていることが多いので、トラブルシューティングの方法を知っておくことは重要ですね。

 

このページのトップヘ