LoginSignup
0

More than 5 years have passed since last update.

CData Software ハンズオン(JavaコンソールアプリケーションからTwitterデータを取得)

Last updated at Posted at 2018-01-14

使用するCData製品

Java実行環境の確認

下記のコマンドをPowerShellもしくはDOSから実行して、Java実行環境を確認します。

PS C:\> java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

インストールされていない場合は、下記のリンクよりJDKをダウンロードしてインストールしてください。

CData Twitter JDBC Driverのインストール

以下のサイトから評価版ビルドをダウンロードします。

ダウンロードされたZIPファイル内の「setup.jar」ファイルを起動します。
(注)途中オンラインでのアクティベーションが実行されるためインターネットアクセス出来る環境で行ってください。

下記のようなインストーラが起動するので、ライセンス契約書を確認した上で、デフォルト設定のままインストールを進めて完了させます。

image.png

インストールが完了するとデフォルトブラウザが起動して製品ヘルプファイルが起動します。
image.png

システム環境変数への登録

インストールしたJDKのbinフォルダをシステム環境変数に登録してください。

(参考)システム環境変数の設定 「コントロールパネル > システムとセキュリティ > システム > システム詳細設定 > システムのプロパティ > 環境変数」

変数名
Path C:\Program Files\Java\jdk1.8.0_152\bin

(注)JDKのフォルダ名はインストールした任意のバージョンに変更してください。
(注)環境変数を登録したらPowerShellもしくはDOSを再起動してください。なお、その際には「管理者として実行する」で起動してください。

下記コマンドをPowerShellもしくはDOSから実行するとjavacコマンドヘルプが表示されます。システム環境変数に正常に登録が出来きました。

PS C:\> javac
使用方法: javac <options> <source files>
使用可能なオプションには次のものがあります。
  -g                         すべてのデバッグ情報を生成する
  -g:none                    デバッグ情報を生成しない
    〜 (省略)-Werror                    警告が発生した場合にコンパイルを終了する
  @<filename>                ファイルからの読取りオプションおよびファイル名
PS C:\>

Javaのサンプルコンソールプログラムの確認

CData製品のデフォルトインストールパス配下「"C:\Program Files\CData\CData JDBC Driver for Twitter 2017J\demos\console\databrowser"」にJavaのコンソールプログラム「DataBrowser.java」が格納されています。エディタなどで内容を確認すると400行弱のJavaのサンプルコードが格納されています。今回は、コンソールからSQLを実行出来るこのプログラムを実行してみます。

Javaプログラムのコンパイル

「DataBrowser.java」が格納されているディレクトリに移動して、javacコマンドでコンパイルします。本サンプルプログラムでは、CData kintone JDBC Driverのライブラリを利用しているので「cdata.jdbc.kintone.jar」をクラスパス(-cp)で指定します。

PS C:\> cd "C:\Program Files\CData\CData JDBC Driver for Twitter 2017J\demos\console\databrowser"
PS C:\Program Files\CData\CData JDBC Driver for Twitter 2017J\demos\console\databrowser> javac -cp ".\;../../../lib/cdata.jdbc.twitter.jar" DataBrowser.java

コンパイルが正常に完了すると、複数の「.class」ファイルが同ディレクトリに作成されます。

PS C:\Program Files\CData\CData JDBC Driver for Twitter 2017J\demos\console\databrowser> dir


    ディレクトリ: C:\Program Files\CData\CData JDBC Driver for Twitter 2017J\demos\console\databrowser


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2017/11/07      1:55            256 .classpath
-a----       2017/11/07      1:55            335 .project
-a----       2018/01/14     16:30           2257 ConsoleDemo.class
-a----       2018/01/14     16:30            894 DataBrowser$1.class
-a----       2018/01/14     16:30            686 DataBrowser$2.class
-a----       2018/01/14     16:30            750 DataBrowser$3.class
-a----       2018/01/14     16:30            902 DataBrowser$ERRORS.class
-a----       2018/01/14     16:30           1040 DataBrowser$QUERY_TYPES.class
-a----       2018/01/14     16:30           1333 DataBrowser$TERMS.class
-a----       2018/01/14     16:30          10856 DataBrowser.class
-a----       2017/11/07      1:55          13814 DataBrowser.java
-a----       2017/11/07      2:09           2907 databrowser.properties

Javaプログラムの実行

これでは、サンプルプログラムを実行して見ましょう。クラスパス(-cp)をパラメータに指定することを忘れないでください。

PS C:\Program Files\CData\CData JDBC Driver for Twitter 2017J\demos\console\databrowser> java -cp ".\;../../../lib/cdata.jdbc.twitter.jar" DataBrowser

起動すると下記のようなコンソールアプリケーションが起動します。

PS C:\Program Files\CData\CData JDBC Driver for Twitter 2017J\demos\console\databrowser> java -cp ".\;../../../lib/cdata
.jdbc.twitter.jar" DataBrowser
******************************************************************
                 Twitter 2017J デモ
このデモは、CData JDBC Driver For Twitter 2017J を使用します。
******************************************************************
下に接続プロパティを入力してください。

OAuthAccessToken:

以下の項目を設定ください。

TwitterのOAuthクレデンシャル 設定項目
Consumer Key (API Key) OAuth Client Id
Consumer Secret (API Secret) OAuth Client Secret
Access Token OAuth Access Token
Access Token Secret OAuth AccessToken Secret

本コンソールアプリケーションで使用出来るコマンド一覧が表示されます。

実行可能コマンド:
(SELECT|INSERT|UPDATE|DELETE) <式>
DESCRIBE <tablename>
SHOW TABLES
QUIT
HELP
>

「SHOW TABLES」コマンドでTwitter内のデータセットがテーブル一覧として表示されます。

>SHOW TABLES
+------------------------+
| Tables                 |
+------------------------+
| AccountSettings        |
| AdAccounts             |
| AdAvailableAudiences   |
| AdCampaigns            |
| AdFundingInstruments   |
| AdInsights             |
| AdLineItems            |
| AdPromotedTweets       |
| AdStats                |
| DirectMessagesReceived |
| DirectMessagesSent     |
| Favorites              |
| Followers              |
| Following              |
| ListMembers            |
| Lists                  |
| ListSubscribers        |
| Mentions               |
| Retweets               |
| Trends                 |
| Tweets                 |
| TweetStream            |
| Users                  |
+------------------------+
>

「SELECT * FROM Tweets WHERE From_User_Id = '709991506229248001' LIMIT 3;」コマンドで該当ユーザがツイートしたデータが表示されます。
(注)TwitterのAPIはRateLimit(一定時間内のAPIリクエスト数の制約)が厳しいので、LIMNITで取得レコード件数を絞り込んでください。一定回数以上、もしくは、SQLのLimitを外して実行すると上限に達する場合があります。その場合は、15分間経過後に実行ください。

>SELECT * FROM Tweets WHERE From_User_Id = '709991506229248001' LIMIT 3;
+--------------------+--------------------+-------------+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+------+--------------------------------------------------------------------+-----------+----------------+-----------+---------------+---------------------+-----------+--------------+--------------------+--------------------+----------------+-----------------------+-------------------------------+-------------------------+------------------+-----------------+---------------+-------------------------+--------+-----------------------+--------------------+-----------------------+----------------------+--------------------+-------------------------+----------------------------------------------------------------------------+------------+---------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+
| ID                 | IDLong             | SearchTerms | Created_At                    | Text                                                                                                                                  | Lang | Source                                                             | Favorited | Favorite_Count | Retweeted | Retweet_Count | Retweeted_Status_Id | Truncated | Filter_Level | Possibly_Sensitive | Withheld_Copyright | Withheld_Scope | Withheld_In_Countries | Contributors                  | Coordinates_Coordinates | Coordinates_Type | Place_Full_Name | Place_Country | Current_User_Retweet_Id | Scopes | In_Reply_To_Status_Id | From_User_Id       | From_User_Screen_Name | From_User_Name       | From_User_Location | From_User_Profile_URL   | From_User_Profile_Image_Url                                                | To_User_Id | To_User_Screen_Name | User_Mentions                   | URLs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Hashtags                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | NextPageToken      |
+--------------------+--------------------+-------------+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+------+--------------------------------------------------------------------+-----------+----------------+-----------+---------------+---------------------+-----------+--------------+--------------------+--------------------+----------------+-----------------------+-------------------------------+-------------------------+------------------+-----------------+---------------+-------------------------+--------+-----------------------+--------------------+-----------------------+----------------------+--------------------+-------------------------+----------------------------------------------------------------------------+------------+---------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+
| 951595436283895808 | 951595436283895808 | NULL        | 2018-01-12T08:23:26.000+09:00 | なぜポストREST APIが求められるのか? REST APIがカバーできない2つの要因とその対策 - Morning Girl
#REST #webapi #api #odata #openapi #graphql
https://t.co/8WkA0kKsje | ja   | <a href="http://twitter.com" rel="nofollow">Twitter Web Client</a> | false     | 1              | false     | 1             | NULL                | false     | NULL         | false              | NULL               | NULL           | NULL                  | <contributors></contributors> | NULL                    | NULL             | NULL            | NULL          | NULL                    | NULL   | NULL                  | 709991506229248001 | CDataJapan            | CData Software Japan | 宮城 仙台市             | https://t.co/fA16p3ueQG | http://pbs.twimg.com/profile_images/709992802378190848/SRqZpTot_normal.jpg | NULL       | NULL                | <user_mentions></user_mentions> | <urls>
  <Row>
    <url>https://t.co/8WkA0kKsje</url>
    <expanded_url>http://kageura.hatenadiary.jp/entry/2018/01/11/%E3%81%AA%E3%81%9C%E3%83%9D%E3%82%B9%E3%83%88REST_API%E3%81%8C%E6%B1%82%E3%82%81%E3%82%89%E3%82%8C%E3%82%8B%E3%81%AE%E3%81%8B%EF%BC%9F_REST_API%E3%81%8C%E3%82%AB%E3%83%90%E3%83%BC%E3%81%A7%E3%81%8D</expanded_url>
    <display_url>kageura.hatenadiary.jp/entry/2018/01/…</display_url>
    <indices>110</indices>
    <indices>133</indices>
  </Row>
</urls> | <hashtags>
  <Row>
    <text>REST</text>
    <indices>66</indices>
    <indices>71</indices>
  </Row>
  <Row>
    <text>webapi</text>
    <indices>72</indices>
    <indices>79</indices>
  </Row>
  <Row>
    <text>api</text>
    <indices>80</indices>
    <indices>84</indices>
  </Row>
  <Row>
    <text>odata</text>
    <indices>85</indices>
    <indices>91</indices>
  </Row>
  <Row>
    <text>openapi</text>
    <indices>92</indices>
    <indices>100</indices>
  </Row>
  <Row>
    <text>graphql</text>
    <indices>101</indices>
    <indices>109</indices>
  </Row>
</hashtags> | 951595436283895807 |
| 950940273659424769 | 950940273659424769 | NULL        | 2018-01-10T13:00:03.000+09:00 | 昨年のPV No.1 ナレッジ記事は、「DynamoDB Data をTableau でビジュアライズ」。
https://t.co/nSQBElKHye                                                         | ja   | <a href="http://twitter.com" rel="nofollow">Twitter Web Client</a> | false     | 0              | false     | 0             | NULL                | false     | NULL         | false              | NULL               | NULL           | NULL                  | <contributors></contributors> | NULL                    | NULL             | NULL            | NULL          | NULL                    | NULL   | NULL                  | 709991506229248001 | CDataJapan            | CData Software Japan | 宮城 仙台市             | https://t.co/fA16p3ueQG | http://pbs.twimg.com/profile_images/709992802378190848/SRqZpTot_normal.jpg | NULL       | NULL                | <user_mentions></user_mentions> | <urls>
  <Row>
    <url>https://t.co/nSQBElKHye</url>
    <expanded_url>http://www.cdata.com/jp/kb/tech/dynamodb-odbc-tableau.rst</expanded_url>
    <display_url>cdata.com/jp/kb/tech/dyn…</display_url>
    <indices>54</indices>
    <indices>77</indices>
  </Row>
</urls>                                                                                                                                                                                                           | <hashtags></hashtags>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 950940273659424768 |
| 950938702959661056 | 950938702959661056 | NULL        | 2018-01-10T12:53:49.000+09:00 | 昨年のPV No.1 ナレッジ記事は、「DynamoDB Data をTableau でビジュアライズ」。
#dynamodb #tableau #odbc #NoSQL
https://t.co/nSQBElKHye                        | ja   | <a href="http://twitter.com" rel="nofollow">Twitter Web Client</a> | false     | 0              | false     | 1             | NULL                | false     | NULL         | false              | NULL               | NULL           | NULL                  | <contributors></contributors> | NULL                    | NULL             | NULL            | NULL          | NULL                    | NULL   | NULL                  | 709991506229248001 | CDataJapan            | CData Software Japan | 宮城 仙台市             | https://t.co/fA16p3ueQG | http://pbs.twimg.com/profile_images/709992802378190848/SRqZpTot_normal.jpg | NULL       | NULL                | <user_mentions></user_mentions> | <urls>
  <Row>
    <url>https://t.co/nSQBElKHye</url>
    <expanded_url>http://www.cdata.com/jp/kb/tech/dynamodb-odbc-tableau.rst</expanded_url>
    <display_url>cdata.com/jp/kb/tech/dyn…</display_url>
    <indices>87</indices>
    <indices>110</indices>
  </Row>
</urls>                                                                                                                                                                                                          | <hashtags>
  <Row>
    <text>dynamodb</text>
    <indices>54</indices>
    <indices>63</indices>
  </Row>
  <Row>
    <text>tableau</text>
    <indices>64</indices>
    <indices>72</indices>
  </Row>
  <Row>
    <text>odbc</text>
    <indices>73</indices>
    <indices>78</indices>
  </Row>
  <Row>
    <text>NoSQL</text>
    <indices>79</indices>
    <indices>85</indices>
  </Row>
</hashtags>                                                                                                                                                                                                    | 950938702959661055 |
+--------------------+--------------------+-------------+-------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+------+--------------------------------------------------------------------+-----------+----------------+-----------+---------------+---------------------+-----------+--------------+--------------------+--------------------+----------------+-----------------------+-------------------------------+-------------------------+------------------+-----------------+---------------+-------------------------+--------+-----------------------+--------------------+-----------------------+----------------------+--------------------+-------------------------+----------------------------------------------------------------------------+------------+---------------------+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+
>
>

本コンソールアプリケーションを終了したい場合は「QUIT」コマンドを入力してください。
JavaのコンソールアプリケーションからTwitterのデータを取得することが出来ました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0