[Talend]tAddLocationFromIPを利用してアクセス元ロケーションを特定する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tAddLocationFromIP」を紹介したいと思います。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.0.1」で検証しています。

tAddLocationFromIPについて

「tAddLocationFromIP」を利用するとIPアドレスまたはホスト名から、対象ホストのロケーション(国)を取得することができます。

「tAddLocationFromIP」コンポーネントのTalend Helpページはこちらです。

tAddLocationFromIP

では、具体的に以下で解説していきます。

ジョブの説明

「tFixedFlowInput」でチェックをしたいホスト名を設定し、「tAddLocationFromIP」でロケーションを取得して「tLogRow」で取得した情報を標準出力に表示します。

「tFixedFlowInput」コンポーネントの設定

「tFixedFlowInput」でサンプルデータとのホスト名を「HostName」として設定します。今回はサンプルとしてホスト名に「dev.classmethod.jp」を利用します。

コンポーネント設定とスキーマ定義は以下のとおりです。

「tAddLocationFromIP」コンポーネントの設定

外部モジュールのインストール

「tAddLocationFromIP」コンポーネントですが、パレットからドラッグ&ドロップした段階で外部モジュールのインストールが促されますので「インストール...」をクリックします。

インストール対象のモジュール「geoip.jar」が表示されていますので「全てのモジュールをダウンロード及びインストール」をクリックしてインストールします。

インストール後にジョブを開き直すと警告が消えて問題なく利用できるようになります。

GeoIP.datファイルのダウンロード

コンポーネントの設定画面でも赤字で表示されていますが、コンポーネントでGeoIP.datファイルを利用するので別途ダウンロードする必要があります。

現在は「GeoLite2」という形式がメインとしてフリーダウンロード可能となっていますが、このコンポーネントでは旧形式の「GeoIP」形式のファイルを利用します。

ダウンロードアドレスはGeoIP Legacy Country Database Installation Instructions « MaxMind Developer Siteのページに記載がある以下のアドレスとなります。

http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

今回はこのファイルをダウンロード・解凍して「C:\tmp\Sandbox\Components\tAddLocationFromIP\GeoIP.dat」へ置きました。

コンポーネントの設定

コンポーネントには「データベースファイルパス」として、先程ダウンロードしたファイルを配備したファイルパスを指定します。

また「パラメーターの入力」には、「入力カラム」として「tFixedFlowInput」で設定した「HostName」を指定します。カラムはホスト名なので、オプションには記載されている通り「入力カラムはホスト名」を指定します。

最後の「ロケーションタイプ」は、出力を「国コード」にするか「国名」にするかの選択です。今回は「国コード」にしました。

スキーマ定義は以下のようになり、「location」に結果(「国コード」か「国名」)が出力されます。

「tLogRow」コンポーネントの設定

「tLogRow」コンポーネントは、デフォルトのまま特になにも設定しなかったので、ここでは説明を省略します。

実行結果

設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3395
[statistics] connected
dev.classmethod.jp|JP
[statistics] disconnected

想定どおり「dev.classmethod.jp」が「JP」として判定されました!

まとめ

以上、「tAddLocationFromIP」コンポーネントの紹介でした。

「tAddLocationFromIP」コンポーネントは、ログデータなどのホスト名やIPアドレスのアクセス元ロケーションチェックなどでうまく利用できるコンポーネントかと思います。

それでは。