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
を介して送信されるイベントのリストに追加されます。