Talend for DI を使用して Tweet を収集

自分も何回か参加(投稿)している Twitter の1時間お絵描き「#リリカルなのは版深夜の真剣お絵描き60分一本勝負」ですけど、

試しに Talend for DI を使用して収集してみました。(前に同じ様なネタを書いたのですけど、今回は具体的な設定項目付きです。)

talend_for_di ひとまず CSV 形式で出力

やっていることは tTwitterOAuth, tTwitterOAuthClose, tTwitterInput をそのまま使用しているだけです。

setting_01 Schema はこのようにしています。

setting_02 取得だけを考えているのでわりと適当です。

Including term(s) に “#リリカルなのは版深夜の真剣お絵描き60分一本勝負”

At (screen name) に “MizunagiKB” を設定(いわゆるエゴサーチ…なのですけど、自分に対するものでチェックした方がデバッグしやすいので)

出力に関しては、 tTwitterInput で Structured 出力に適合する物であればなんでも良いのですし、加工すら自前で行うのであれば、 raw JSON を選択しても問題ないです。

今回は tFileOutputDelimited でファイルに書き出しています。なお、 tTwitterInput は結果を UTF-8 で出力するため、 Advanced settings の Encoding を UTF-8 にしておかないとエラーになってしまいます。

Talend で作成した処理は java 環境があれば単品で動作するようにエクスポートする事が出来ます。あとは cron なり Scheduler に登録しておくと、任意の Tweet を収集する事が出来ます。

というメモ書きでした。

Talend で Tweet を集める

tTwitterOAuth プラグインの事を書いたので、ついでに記事とかかいてみたり。

Talend Open Studio + tTwitterOAuth を使用すると、かなり容易に Tweet を収集する事が出来ます。

基本的に、

  1. tTwitterOAuth で認証
  2. tTwitterInput で入力
  3. tTwitterOAuthClose で終了

という流れになります。

talend_tweet Talend Open Studio for DI

上図では出力として tLogRow を使用していますが、もちろんモジュールを差し替えることでデータベース等への書き出しが可能です。

Talend Open Studio for DI のプラグイン追加方法

表題の通りで、プラグイン[1. TalendForge あたりで入手出来る物とか]の追加方法についての覚え書きです。

環境設定から追加する方法

  1. まず、プラグインを保存しておくフォルダを作成します。
  2. その場所に使用するプラグインを展開します。
    tos_plugins
  3. 環境設定を開き、 Talend -> Components 画面を開きます。
  4. その中に User component folder という項目がありますので、その場所を指定します。tos_plugins_02

直接プラグインフォルダに追加する方法

以下の場所にフォルダごと放り込んで起動(既に起動している場合は再起動)するだけです。

Talend のインストールフォルダ

/plugins

/org.talend.designer.components.localprovider_(version)

/components

例えば tTwitterOAuth を追加する場合は、

Talend のインストールフォルダ

/plugins

/org.talend.designer.components.localprovider_(version)

/components

/tTwitterOAuth

/tTwitterOAuthClose

といった感じに配置します。

どちらの方法でもプラグインを使用することは出来ますが、環境設定から追加する方法をお薦めします。

 

Talend Open Studio の Twitter OAuth プラグイン

2014/01/25 追記

2014/01/21 の時点で、 Use SSL connection という項目が追加されたようです。

  • Version 2.1 – 01/21/2014
    • Added support for SSL connections
    • Added support for Twitter Stream API
    • Removed the deprecated logger parameter
    • Updated to twitter4j 3.0.6

この記事は残しておきますけど、必要な方は最新バージョンへのアップデートをしてください。

Twitter のデータをデータベースに読み込むために Talend Open Studio とそのプラグイン tTwitterOAuth が便利で使用しているのですが、2014年1月14日から Twitter API の呼び出しが SSL のみになりました。

これが原因で tTwitterOAuth も Twitter からデータを呼び込む事が出来なくなってしまったため、以下の修正を加えました。

 

twitter4j.conf.ConfigurationBuilder クラスを生成後に setUseSSL を行っているだけです。

(手元に環境がないため動作確認が出来ていません。 build error になるかも…)

 

Talend は、 java のソースコード(テンプレート)生成後にそれをビルドする仕組みになっていますので、こういった対応は楽[1. もしかしたら java の世界ではわりとポピュラーなのかもしれませんけど…]ですね。

試しに GitHub に branch を作成してみました。

https://github.com/MizunagiKB/talend-components-collection