Twitterソース

コンテンツ :

機能性

com.telefonica.iot.cygnus.sources.TwitterSource、または単に TwitterSource は、Twitter からデータを収集するように設計されたソースです。

TwitterSource では、ツイートは常に内部の Flume イベントに変換されます。最後に、これらのFlume イベント内の情報は、対応するシンクの特定のデータ構造にマップされなければなりません。

次のセクションでこれについて詳しく説明します。

トップ

Twitter イベントを flume イベントにマップ

受信した Twitter イベントは、永続化される最後のバックエンドとは独立して、Flume イベント (具体的には、TwitterEvent)に変換されます。

flume TwitterEvent の本体は、JSON 形式のツイートを表します。変換されると、データ (現在、Flumeイベントとして) は、今後の消費のために内部チャネルに入れられます。次のセクションを参照してください。

トップ

管理ガイド

構成

TwitterSourceは、agent_<id>.conf 構成ファイルで定義されている以下のパラメータによって構成されます。

ソースの名前 : cygnus-twitter.sources = twitter-source

Twitter クエリを実行するには、最も関連性の高いパラメータは、ソース、キーワード、座標、および Twitter と接続するための資格です。

ソース : cygnus-twitter.sources.http-source.type = org.telefonica.iot.cygnus.sources.TwitterSource

特定のキーワードでツイートをフィルタリングするために twitter クエリで使用されるキーワード(ハッシュタグ) :

cygnus-twitter.sources.twitter-source.keywords = keyword1, keyword2, keyword3

ソースが地理的に位置するツイートを収集する空間領域を指定する座標。座標はtwitterクエリで使用されます :

cygnus-twitter.sources.twitter-source.south_west_latitude = 39.4247692
cygnus-twitter.sources.twitter-source.south_west_longitude = -0.4315448
cygnus-twitter.sources.twitter-source.north_east_latitude = 39.5038788
cygnus-twitter.sources.twitter-source.north_east_longitude = -0.3124204

これらの座標は、ツイートが地理的に配置されている矩形フィルタを定義するために使用されます。この四角形の中のツイートのみが保存されます。

             -------------- north-east
            |                  |
            |                  |
            |                  |
       south-west ------------   

資格情報は、Twitter API との接続に使用されます。ここで資格情報を取得できます :

cygnus-twitter.sources.twitter-source.consumerKey = xxxxxxx
cygnus-twitter.sources.twitter-source.consumerSecret = xxxxxxx
cygnus-twitter.sources.twitter-source.accessToken = xxxxxxx
cygnus-twitter.sources.twitter-source.accessTokenSecret = xxxxxxx

設定例は次のとおりです :

#=============================================
# source configuration
# source class, must not be changed
cygnus-twitter.sources.http-source.type = org.telefonica.iot.cygnus.sources.TwitterSource
# keywords
# cygnus-twitter.sources.twitter-source.keywords = keyword1, keyword2, keyword3
# Coordinates for filter query
cygnus-twitter.sources.twitter-source.south_west_latitude = 39.4247692
cygnus-twitter.sources.twitter-source.south_west_longitude = -0.4315448
cygnus-twitter.sources.twitter-source.north_east_latitude = 39.5038788
cygnus-twitter.sources.twitter-source.north_east_longitude = -0.3124204
cygnus-twitter.sources.twitter-source.consumerKey = xxxxxxxx
cygnus-twitter.sources.twitter-source.consumerSecret = xxxxxxxx
cygnus-twitter.sources.twitter-source.accessToken = xxxxxxxx
cygnus-twitter.sources.twitter-source.accessTokenSecret = xxxxxxxx

プログラマーガイド

TwitterSource クラス

TwitterSourceには、 次の段落で説明する2つの主な方法があります。

public void configure(Context context)

このメソッドは、ソースに関連する設定ファイルパラメータ (consumerKey, consumerSecret, accessToken, accessTokenSecret, south_west_latitude, south_west_longitude, north_east_latitude, north_east_longitude, and keywords) を読み取り、Twitter4j ライブラリからオブジェクト TwitterStream を作成して Twitter からデータを収集する準備をし、ChannelProcessor オブジェクトでデータを送信する準備をします。

public synchronized void start()

start メソッドは、非同期の方法でツイートの情報を含むステータスオブジェクトを収集する StatusListener オブジェクトを作成します。各ツイートは、JSON 形式の文字列を生成するために処理されます。この文字列は、Flume イベントの作成に使用されます。イベントは、ChannelProcessor を介して送信されるイベントのリストに追加されます。

トップ