Azure Stream Analytics でのリアルタイム Twitter 感情分析Real-time Twitter sentiment analysis in Azure Stream Analytics

Azure Event Hubs に Twitter イベントをリアルタイム入力することで、ソーシャル メディア分析のためのセンチメント分析ソリューションを構築する方法について説明します。Learn how to build a sentiment analysis solution for social media analytics by bringing real-time Twitter events into Azure Event Hubs. 次に、Azure Stream Analytics クエリを作成してデータを分析し、後で使用できるように結果を保存したり、Power BI ダッシュボードを作成してリアルタイムで分析情報を提供したりすることができます。Then write an Azure Stream Analytics query to analyze the data and store the results for later use or create a Power BI dashboard to provide insights in real time.

ソーシャル メディア分析ツールは、組織がトレンド トピックを把握するのに役立ちます。Social media analytics tools help organizations understand trending topics. トレンド トピックとは、ソーシャル メディアにおいて大量の投稿が行われているテーマや考え方のことです。Trending topics are subjects and attitudes that have a high volume of posts on social media. センチメント分析 (意見マイニングともいう) ではソーシャル メディア分析ツールを使用して、製品やアイデアに対する考え方を特定します。Sentiment analysis, which is also called opinion mining, uses social media analytics tools to determine attitudes toward a product or idea.

リアルタイム Twitter 傾向分析は、分析ツールの好例です。ハッシュタグ サブスクリプション モデルにより、特定のキーワード (ハッシュタグ) をリッスンし、フィードの感情分析を展開できます。Real-time Twitter trend analysis is a great example of an analytics tool because the hashtag subscription model enables you to listen to specific keywords (hashtags) and develop sentiment analysis of the feed.

シナリオ:リアルタイムのソーシャル メディア感情分析Scenario: Social media sentiment analysis in real time

ニュース メディア Web サイトを運営している会社は、その閲覧者に直接関係するサイト コンテンツを際立たせることで、競合他社より優位に立つことに着目しています。A company that has a news media website is interested in gaining an advantage over its competitors by featuring site content that is immediately relevant to its readers. そのため、会社は、Twitter データのリアルタイム感情分析を実行することで、閲覧者に関連するトピックのソーシャル メディア分析を使用します。The company uses social media analysis on topics that are relevant to readers by doing real-time sentiment analysis of Twitter data.

Twitter のトレンド トピックをリアルタイムで特定するには、主要なトピックのツイートの量とセンチメントに関するリアルタイム分析が必要です。To identify trending topics in real time on Twitter, the company needs real-time analytics about the tweet volume and sentiment for key topics.

前提条件Prerequisites

この攻略ガイドでは、Twitter に接続し、特定のハッシュタグ (設定可能) が付いたツイートを検索するクライアント アプリケーションを使用します。In this how-to guide, you use a client application that connects to Twitter and looks for tweets that have certain hashtags (which you can set). アプリケーションを実行し、Azure Stream Analytics を使用してツイートを分析するには、次のものが必要です。To run the application and analyze the tweets using Azure Streaming Analytics, you must have the following:

  • Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。If you don't have an Azure subscription, create a free account.
  • Twitter アカウント。A Twitter account.
  • Twitter フィードを読み取る TwitterWPFClient アプリケーション。The TwitterWPFClient application, which reads the Twitter feed. このアプリケーションを入手するには、GitHub から TwitterWPFClient.zip ファイルをダウンロードし、コンピューター上のフォルダーにパッケージを解凍します。To get this application, download the TwitterWPFClient.zip file from GitHub and then unzip the package into a folder on your computer. ソース コードを確認し、デバッガーでアプリケーションを実行する場合は、GitHub からソース コードを入手できます。If you want to see the source code and run the application in a debugger, you can get the source code from GitHub.

Stream Analytics の入力用のイベント ハブの作成Create an event hub for Streaming Analytics input

サンプル アプリケーションでは、イベントを生成し、Azure イベント ハブにプッシュします。The sample application generates events and pushes them to an Azure event hub. Azure イベント ハブは、Stream Analytics に推奨されるイベント取り込み方法です。Azure event hubs are the preferred method of event ingestion for Stream Analytics. 詳細については、Azure Event Hubs のドキュメントをご覧ください。For more information, see the Azure Event Hubs documentation.

イベント ハブの名前空間とイベント ハブを作成するCreate an event hub namespace and event hub

イベント ハブの名前空間を作成し、その名前空間にイベント ハブを追加します。Create an event hub namespace, and then add an event hub to that namespace. イベント ハブの名前空間は、関連するイベント バス インスタンスを論理的にグループ化するために使われます。Event hub namespaces are used to logically group related event bus instances.

  1. Azure Portal にログインし、 [リソースの作成] > [モノのインターネット] > [イベント ハブ] をクリックします。Log in to the Azure portal and click Create a resource > Internet of Things > Event Hub.

  2. [名前空間の作成] ブレードで、名前空間の名前 (例: <yourname>-socialtwitter-eh-ns) を入力します。In the Create namespace blade, enter a namespace name such as <yourname>-socialtwitter-eh-ns. 名前空間には任意の名前を使用できますが、この名前は URL で有効である必要があり、Azure 全体で一意である必要があります。You can use any name for the namespace, but the name must be valid for a URL and it must be unique across Azure.

  3. サブスクリプションを選択し、リソース グループを作成または選択して、 [作成] をクリックします。Select a subscription and create or choose a resource group, then click Create.

    イベント ハブの名前空間の作成

  4. イベント ハブの名前空間のデプロイが完了したら、Azure リソースの一覧でその名前空間を見つけます。When the namespace has finished deploying, find the event hub namespace in your list of Azure resources.

  5. 新しい名前空間をクリックし、名前空間ブレードで [+ イベント ハブ] をクリックします。Click the new namespace, and in the namespace blade, click + Event Hub.

    新しいイベント ハブを作成するための [イベント ハブの追加] ボタン

  6. 新しいイベント ハブに socialtwitter-eh という名前を付けます。Name the new event hub socialtwitter-eh. 別の名前を使用してもかまいません。You can use a different name. その場合、名前を書き留めておきます。後でこの名前が必要になります。If you do, make a note of it, because you need the name later. イベント ハブの他のオプションを設定する必要はありません。You don't need to set any other options for the event hub.

    新しいイベント ハブを作成するためのブレード

  7. Create をクリックしてください。Click Create.

イベント ハブへのアクセスを許可するGrant access to the event hub

プロセスがイベント ハブにデータを送信できるようにするには、イベント ハブに、適切なアクセスを許可するポリシーが必要です。Before a process can send data to an event hub, the event hub must have a policy that allows appropriate access. アクセス ポリシーにより、承認情報を含む接続文字列が生成されます。The access policy produces a connection string that includes authorization information.

  1. イベント名前空間ブレードで、 [イベント ハブ] をクリックし、新しいイベント ハブの名前をクリックします。In the event namespace blade, click Event Hubs and then click the name of your new event hub.

  2. イベント ハブ ブレードで、 [共有アクセス ポリシー] をクリックし、 [+ 追加] をクリックします。In the event hub blade, click Shared access policies and then click + Add.

    注意

    イベント ハブの名前空間ではなく、イベント ハブを操作していることを確認してください。Make sure you're working with the event hub, not the event hub namespace.

  3. socialtwitter-access という名前のポリシーを追加し、 [要求][管理] を選択します。Add a policy named socialtwitter-access and for Claim, select Manage.

    イベント ハブの新しいアクセス ポリシーを作成するためのブレード

  4. Create をクリックしてください。Click Create.

  5. ポリシーがデプロイされたら、共有アクセス ポリシーの一覧でそのポリシーをクリックします。After the policy has been deployed, click it in the list of shared access policies.

  6. [接続文字列 - 主キー] というボックスを見つけ、接続文字列の横のコピー ボタンをクリックします。Find the box labeled CONNECTION STRING-PRIMARY KEY and click the copy button next to the connection string.

    アクセス ポリシーの接続文字列の主キーのコピー

  7. 接続文字列をテキスト エディターに貼り付けます。Paste the connection string into a text editor. この接続文字列は、少し編集を加えた後に、次のセクションで必要になります。You need this connection string for the next section, after you make some small edits to it.

    接続文字列は次のようになります。The connection string looks like this:

    Endpoint=sb://YOURNAME-socialtwitter-eh-ns.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=Gw2NFZw6r...FxKbXaC2op6a0ZsPkI=;EntityPath=socialtwitter-eh
    

    接続文字列には、セミコロンで区切られた複数のキーと値のペア (EndpointSharedAccessKeyNameSharedAccessKeyEntityPath) が含まれています。Notice that the connection string contains multiple key-value pairs, separated with semicolons: Endpoint, SharedAccessKeyName, SharedAccessKey, and EntityPath.

    注意

    セキュリティのため、この例では接続文字列の一部が削除されています。For security, parts of the connection string in the example have been removed.

  8. テキスト エディターで、接続文字列から EntityPath のペアを削除します (前にあるセミコロンも忘れずに削除してください)。In the text editor, remove the EntityPath pair from the connection string (don't forget to remove the semicolon that precedes it). 作業が完了すると、接続文字列は次のようになります。When you're done, the connection string looks like this:

    Endpoint=sb://YOURNAME-socialtwitter-eh-ns.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=Gw2NFZw6r...FxKbXaC2op6a0ZsPkI=
    

Twitter クライアント アプリケーションの構成および開始Configure and start the Twitter client application

クライアント アプリケーションは、Twitter からツイート イベントを直接取得します。The client application gets tweet events directly from Twitter. そのために、クライアント アプリケーションには Twitter ストリーミング API を呼び出すためのアクセス許可が必要です。In order to do so, it needs permission to call the Twitter Streaming APIs. このアクセス許可を構成するために、Twitter でアプリケーションを作成し、一意の資格情報 (OAuth トークンなど) を生成します。To configure that permission, you create an application in Twitter, which generates unique credentials (such as an OAuth token). 次に、API 呼び出しを行うときにこれらの資格情報を使用するようにクライアント アプリケーションを構成します。You can then configure the client application to use these credentials when it makes API calls.

Twitter アプリケーションを作成するCreate a Twitter application

この攻略ガイドで使用できる Twitter アプリケーションがまだない場合は、アプリケーションを作成できます。If you do not already have a Twitter application that you can use for this how-to guide, you can create one. Twitter アカウントを既に持っている必要があります。You must already have a Twitter account.

注意

Twitter でアプリケーションを作成し、キー、シークレット、トークンを取得するための正確なプロセスが変更されている場合があります。The exact process in Twitter for creating an application and getting the keys, secrets, and token might change. 以下の手順が Twitter サイトで表示される内容と一致しない場合は、Twitter の開発者向けドキュメントを参照してください。If these instructions don't match what you see on the Twitter site, refer to the Twitter developer documentation.

  1. Web ブラウザーで Twitter の開発者用ページに移動して、 [Create an app](アプリの作成) を選択します。From a web browser, go to Twitter For Developers, and select Create an app. Twitter 開発者アカウントを申請する必要があるというメッセージが表示される場合があります。You might see a message saying that you need to apply for a Twitter developer account. お気軽にお申し込みください。申請が承認されると、確認メールを受け取ります。Feel free to do so, and after your application has been approved you should see a confirmation email. 開発者アカウントの承認には、数日かかることがあります。It could take several days to be approved for a developer account.

    Twitter 開発者アカウントの確認Twitter developer account confirmation

    Twitter アプリケーションの詳細Twitter application details

  2. [Create an application](アプリケーションの作成) ページで新しいアプリの詳細を入力し、 [Create your Twitter application](Twitter アプリケーションの作成) を選択します。In the Create an application page, provide the details for the new app, and then select Create your Twitter application.

    Twitter アプリケーションの詳細Twitter application details

  3. アプリケーションのページで [Keys and Tokens](キーとトークン) タブを選択し、 [Consumer API Key](コンシューマー API キー)[Consumer API Secret Key](コンシューマー API シークレット キー) の値をコピーします。In the application page, select the Keys and Tokens tab and copy the values for Consumer API Key and Consumer API Secret Key. さらに、 [Access Token and Access Token Secret](アクセス トークンとアクセス トークン シークレット) の下の [Create](作成) を選択して、アクセス トークンを生成します。Also, select Create under Access Token and Access Token Secret to generate the access tokens. [Access Token](アクセス トークン)[Access Token Secret](アクセス トークン シークレット) の値をコピーします。Copy the values for Access Token and Access Token Secret.

    Twitter アプリケーションの詳細Twitter application details

Twitter アプリケーションについて取得した値を保存します。Save the values that you retrieved for the Twitter application. 値は、この操作方法で後ほど必要になります。You need the values later in the how-to.

注意

Twitter アプリケーションのキーとシークレットにより、Twitter アカウントにアクセスできるようになります。The keys and secrets for the Twitter application provide access to your Twitter account. Twitter のパスワードと同様に、この情報は機密情報として扱ってください。Treat this information as sensitive, the same as you do your Twitter password. たとえば、他のユーザーに提供するアプリケーションにこの情報を埋め込まないでください。For example, don't embed this information in an application that you give to others.

クライアント アプリケーションを構成するConfigure the client application

特定のトピックに関するツイート イベントを収集するために、Twitter のストリーミング API を使用して Twitter データに接続するクライアント アプリケーションを作成しました。We've created a client application that connects to Twitter data using Twitter's Streaming APIs to collect tweet events about a specific set of topics. このアプリケーションでは、次のセンチメント値を各ツイートに割り当てる、Sentiment140 オープン ソース ツールを使用します。The application uses the Sentiment140 open source tool, which assigns the following sentiment value to each tweet:

  • 0 = 否定0 = negative
  • 2 = 中立2 = neutral
  • 4 = 肯定4 = positive

ツイート イベントにセンチメント値が割り当てられると、これらのイベントは先ほど作成したイベント ハブにプッシュされます。After the tweet events have been assigned a sentiment value, they are pushed to the event hub that you created earlier.

アプリケーションを実行するには、Twitter のキーやイベント ハブの接続文字列などの特定の情報が必要となります。Before the application runs, it requires certain information from you, like the Twitter keys and the event hub connection string. 構成情報は次の方法で指定できます。You can provide the configuration information in these ways:

  • アプリケーションを実行し、アプリケーションの UI を使用して、キー、シークレット、接続文字列を入力します。Run the application, and then use the application's UI to enter the keys, secrets, and connection string. この場合、構成情報は現在のセッションで使用されますが、保存されません。If you do this, the configuration information is used for your current session, but it isn't saved.
  • アプリケーションの .config ファイルを編集し、値を設定します。Edit the application's .config file and set the values there. この方法では構成情報が保持されますが、この機密性の高い情報がコンピューター上にプレーン テキストで保存されることになります。This approach persists the configuration information, but it also means that this potentially sensitive information is stored in plain text on your computer.

次の手順は両方の方法を示しています。The following procedure documents both approaches.

  1. 前提条件に記載されている TwitterWPFClient.zip アプリケーションのダウンロードと解凍が完了していることを確認します。Make sure you've downloaded and unzipped the TwitterWPFClient.zip application, as listed in the prerequisites.

  2. 実行時に (現在のセッションでのみ) 値を設定するには、TwitterWPFClient.exe アプリケーションを実行します。To set the values at run time (and only for the current session), run the TwitterWPFClient.exe application. 値の入力を求められたら、次の値を入力します。When the application prompts you, enter the following values:

    • Twitter のコンシューマー キー (API キー)。The Twitter Consumer Key (API Key).
    • Twitter のコンシューマー シークレット (API シークレット)。The Twitter Consumer Secret (API Secret).
    • Twitter のアクセス トークン。The Twitter Access Token.
    • Twitter のアクセス トークン シークレット。The Twitter Access Token Secret.
    • 以前に保存した接続文字列情報。The connection string information that you saved earlier. EntityPath のキーと値のペアを削除した接続文字列を使用していることを確認してください。Make sure that you use the connection string that you removed the EntityPath key-value pair from.
    • 感情の判定対象となる Twitter のキーワード。The Twitter keywords that you want to determine sentiment for.

    設定を表示する (一部ぼかし表示)、実行中の TwitterWpfClient アプリケーション

  3. 値を永続的に設定するには、テキスト エディターを使用して TwitterWpfClient.exe.config ファイルを開きます。To set the values persistently, use a text editor to open the TwitterWpfClient.exe.config file. 次に、<appSettings> 要素内で次の操作を行います。Then in the <appSettings> element, do this:

    • oauth_consumer_key を Twitter のコンシューマー キー (API キー) に設定します。Set oauth_consumer_key to the Twitter Consumer Key (API Key).

    • oauth_consumer_secret を Twitter のコンシューマー シークレット (API シークレット) に設定します。Set oauth_consumer_secret to the Twitter Consumer Secret (API Secret).

    • oauth_token を Twitter のアクセス トークンに設定します。Set oauth_token to the Twitter Access Token.

    • oauth_token_secret を Twitter のアクセス トークン シークレットに設定します。Set oauth_token_secret to the Twitter Access Token Secret.

      <appSettings> 要素の後の部分で次の変更を加えます。Later in the <appSettings> element, make these changes:

    • EventHubName をイベント ハブ名 (つまり、エンティティ パスの値) に設定します。Set EventHubName to the event hub name (that is, to the value of the entity path).

    • EventHubNameConnectionString を接続文字列に設定します。Set EventHubNameConnectionString to the connection string. EntityPath のキーと値のペアを削除した接続文字列を使用していることを確認してください。Make sure that you use the connection string that you removed the EntityPath key-value pair from.

      <appSettings> セクションは、次の例のようになりますThe <appSettings> section looks like the following example. (わかりやすさとセキュリティのために、一部の行をラップし、一部の文字を削除しています)。(For clarity and security, we wrapped some lines and removed some characters.)

      Twitter のキーとシークレットおよびイベント ハブの接続文字列情報を示す、テキスト エディターの TwitterWpfClient アプリケーション構成ファイル

  4. アプリケーションをまだ起動していなかった場合は、TwitterWpfClient.exe を実行します。If you didn't already start the application, run TwitterWpfClient.exe now.

  5. 緑の開始ボタンをクリックして、ソーシャル センチメントを収集します。Click the green start button to collect social sentiment. CreatedAtTopicSentimentScore の値が設定されたツイート イベントがイベント ハブに送信されていることがわかります。You see Tweet events with the CreatedAt, Topic, and SentimentScore values being sent to your event hub.

    ツイートの一覧を表示する、実行中の TwitterWpfClient アプリケーション

    注意

    エラーが発生し、ウィンドウの下部にツイートのストリームが表示されない場合は、キーとシークレットを再確認してください。If you see errors, and you don't see a stream of tweets displayed in the lower part of the window, double-check the keys and secrets. また、接続文字列も確認してください (EntityPath のキーと値が含まれていないことを確認します)。Also check the connection string (make sure that it does not include the EntityPath key and value.)

Stream Analytics のジョブの作成Create a Stream Analytics job

ツイート イベントが Twitter からリアルタイムでストリーミングされるようになったので、これらのイベントをリアルタイムで分析する Stream Analytics ジョブを設定します。Now that tweet events are streaming in real time from Twitter, you can set up a Stream Analytics job to analyze these events in real time.

  1. Azure Portal で、 [リソースの作成] > [モノのインターネット] > [Stream Analytics ジョブ] の順にクリックします。In the Azure portal, click Create a resource > Internet of Things > Stream Analytics job.

  2. ジョブに socialtwitter-sa-job という名前を付け、サブスクリプション、リソース グループ、場所を指定します。Name the job socialtwitter-sa-job and specify a subscription, resource group, and location.

    最適なパフォーマンスを実現し、リージョン間でのデータ転送の料金がかからないように、ジョブとイベント ハブを同じリージョンに配置することをお勧めします。It's a good idea to place the job and the event hub in the same region for best performance and so that you don't pay to transfer data between regions.

    新しい Stream Analytics ジョブの作成

  3. Create をクリックしてください。Click Create.

    ジョブが作成され、ポータルにジョブの詳細が表示されます。The job is created and the portal displays job details.

ジョブの入力の指定Specify the job input

  1. Stream Analytics ジョブで、ジョブ ブレードの中央にある [ジョブ トポロジ][入力] をクリックします。In your Stream Analytics job, under Job Topology in the middle of the job blade, click Inputs.

  2. [入力] ブレードで [+ 追加] をクリックし、ブレードに次の値を入力します。In the Inputs blade, click + Add and then fill out the blade with these values:

    • 入力のエイリアス:TwitterStream という名前を使用します。Input alias: Use the name TwitterStream. この名前は後で必要になるため、別の名前を使用する場合は書き留めておきます。If you use a different name, make a note of it because you need it later.

    • [ソースの種類] : [データ ストリーム] を選択します。Source type: Select Data stream.

    • ソース: [イベント ハブ] を選択します。Source: Select Event hub.

    • [インポート オプション] : [現在のサブスクリプションのイベント ハブを使う] を選択します。Import option: Select Use event hub from current subscription.

    • [Service Bus 名前空間] : 以前に作成したイベント ハブの名前空間 (<yourname>-socialtwitter-eh-ns) を選択します。Service bus namespace: Select the event hub namespace that you created earlier (<yourname>-socialtwitter-eh-ns).

    • [イベント ハブ] : 以前に作成したイベント ハブ (socialtwitter-eh) を選択します。Event hub: Select the event hub that you created earlier (socialtwitter-eh).

    • [イベント ハブ ポリシー名] : 以前に作成したアクセス ポリシー (socialtwitter-access) を選択します。Event hub policy name: Select the access policy that you created earlier (socialtwitter-access).

      Stream Analytics ジョブの新しい入力の作成

  3. Create をクリックしてください。Click Create.

ジョブ クエリの指定Specify the job query

Stream Analytics は、変換を記述するための単純な宣言型のクエリのモデルをサポートします。Stream Analytics supports a simple, declarative query model that describes transformations. 言語に関する詳細については、 Azure Stream Analytics クエリ言語リファレンスを参照してください。To learn more about the language, see the Azure Stream Analytics Query Language Reference. この攻略ガイドでは、Twitter データに対するいくつかのクエリを作成してテストすることができます。This how-to guide helps you author and test several queries over Twitter data.

トピック間のメンション数を比較するには、タンブリング ウィンドウを使用して、5 秒ごとにトピック別のメンション数を取得します。To compare the number of mentions among topics, you can use a Tumbling window to get the count of mentions by topic every five seconds.

  1. [入力] ブレードを閉じます (まだ閉じていない場合)。Close the Inputs blade if you haven't already.

  2. [概要] ブレードで、クエリ ボックスの右上付近にある [クエリの編集] をクリックします。In the Overview blade, click Edit Query near the top right of the Query box. そのジョブ用に構成されている入力と出力が一覧表示されます。出力に送信される入力ストリームを変換できるクエリを作成できます。Azure lists the inputs and outputs that are configured for the job, and lets you create a query that lets you transform the input stream as it is sent to the output.

  3. TwitterWpfClient アプリケーションが実行されていることを確認します。Make sure that the TwitterWpfClient application is running.

  4. [クエリ] ブレードで、TwitterStream 入力の横の点をクリックし、 [入力からのサンプル データ] を選びます。In the Query blade, click the dots next to the TwitterStream input and then select Sample data from input.

    Stream Analytics ジョブ エントリにサンプル データを使用するためのメニュー オプション - [入力からのサンプル データ] を選択

    取得するサンプル データの量を指定できるブレードが開きます。データの量は、入力ストリームの読み取り期間で定義されています。This opens a blade that lets you specify how much sample data to get, defined in terms of how long to read the input stream.

  5. [分] を 3 に設定し、 [OK] をクリックします。Set Minutes to 3 and then click OK.

    "3 分" が選択された入力ストリームのサンプリング オプション。

    入力ストリームから 3 分間分のデータがサンプリングされ、サンプル データの準備ができると通知されますAzure samples 3 minutes' worth of data from the input stream and notifies you when the sample data is ready. (少し時間がかかります)。(This takes a short while.)

    サンプル データは一時的に保存され、クエリ ウィンドウを開いている間使用できます。The sample data is stored temporarily and is available while you have the query window open. クエリ ウィンドウを閉じると、サンプル データは破棄されるので、サンプル データの新しいセットを作成する必要があります。If you close the query window, the sample data is discarded, and you have to create a new set of sample data.

  6. コード エディターでクエリを次のように変更します。Change the query in the code editor to the following:

    SELECT System.Timestamp as Time, Topic, COUNT(*)
    FROM TwitterStream TIMESTAMP BY CreatedAt
    GROUP BY TUMBLINGWINDOW(s, 5), Topic
    

    入力のエイリアスとして TwitterStream を使用しなかった場合は、クエリで TwitterStream の代わりに選択したエイリアスを使用します。If didn't use TwitterStream as the alias for the input, substitute your alias for TwitterStream in the query.

    このクエリでは、 TIMESTAMP BY キーワードを使用して、一時的な計算に使用されるペイロードのタイムスタンプ フィールドを指定しています。This query uses the TIMESTAMP BY keyword to specify a timestamp field in the payload to be used in the temporal computation. このフィールドが指定されていない場合は、各イベントがイベント ハブに到着した時間を使用してウィンドウ化操作が実行されます。If this field isn't specified, the windowing operation is performed by using the time that each event arrived at the event hub. 詳細については、「Stream Analytics Query Language Reference」(Stream Analytics クエリ言語リファレンス) の「Arrival Time Vs Application Time」(到着時間とアプリケーション時間) を参照してください。Learn more in the "Arrival Time vs Application Time" section of Stream Analytics Query Reference.

    このクエリは、System.Timestamp プロパティを使用して、各期間の終わりのタイムスタンプにもアクセスします。This query also accesses a timestamp for the end of each window by using the System.Timestamp property.

  7. [Test] をクリックします。Click Test. サンプリングされたデータに対してクエリが実行されます。The query runs against the data that you sampled.

  8. [保存] をクリックします。Click Save. クエリが Stream Analytics ジョブの一部として保存されますThis saves the query as part of the Streaming Analytics job. (サンプル データは保存されません)。(It doesn't save the sample data.)

ストリームのさまざまなフィールドを使用した実験Experiment using different fields from the stream

次の表に、JSON ストリーミング データに含まれるフィールドを示します。The following table lists the fields that are part of the JSON streaming data. クエリ エディターで自由にお試しください。Feel free to experiment in the query editor.

JSON プロパティJSON property 定義Definition
CreatedAtCreatedAt ツイートが作成された時刻The time that the tweet was created
トピックTopic 指定したキーワードと一致するトピックThe topic that matches the specified keyword
SentimentScoreSentimentScore Sentiment140 のセンチメント スコアThe sentiment score from Sentiment140
AuthorAuthor ツイートを送信した Twitter ハンドルThe Twitter handle that sent the tweet
TextText ツイートの全文The full body of the tweet

出力シンクの作成Create an output sink

イベント ストリーム、イベントを取り込むためのイベント ハブ入力、ストリームに対して変換を実行するためのクエリを定義しました。You have now defined an event stream, an event hub input to ingest events, and a query to perform a transformation over the stream. 最後に、ジョブの出力シンクを定義します。The last step is to define an output sink for the job.

この攻略ガイドでは、ジョブ クエリから Azure Blob Storage に集計済みのツイート イベントを書き込みます。In this how-to guide, you write the aggregated tweet events from the job query to Azure Blob storage. アプリケーションのニーズに応じて、Azure SQL Database、Azure Table Storage、Event Hubs、または Power BI に結果をプッシュすることもできます。You can also push your results to Azure SQL Database, Azure Table storage, Event Hubs, or Power BI, depending on your application needs.

ジョブの出力の指定Specify the job output

  1. [ジョブ トポロジ] セクションで、 [出力] ボックスをクリックします。In the Job Topology section, click the Output box.

  2. [出力] ブレードで [+ 追加] をクリックし、ブレードに次の値を入力します。In the Outputs blade, click + Add and then fill out the blade with these values:

    • 出力のエイリアス:TwitterStream-Output という名前を使用します。Output alias: Use the name TwitterStream-Output.

    • シンク: [Blob ストレージ] を選択します。Sink: Select Blob storage.

    • [インポート オプション] : [現在のサブスクリプションの BLOB ストレージを使う] を選択します。Import options: Select Use blob storage from current subscription.

    • [ストレージ アカウント]Storage account. [新しいストレージ アカウントを作成する] を選択します。Select Create a new storage account.

    • [ストレージ アカウント] (2 つ目のボックス):Storage account (second box). YOURNAMEsa」と入力します。YOURNAME は、自分の名前または別の一意の文字列です。Enter YOURNAMEsa, where YOURNAME is your name or another unique string. 名前には小文字と数字だけを使用できます。名前は Azure 全体で一意である必要があります。The name can use only lowercase letters and numbers, and it must be unique across Azure.

    • [コンテナー]Container. socialtwitter」と入力します。Enter socialtwitter. ストレージ アカウント名とコンテナー名は、BLOB ストレージの URI を指定するときに次のように組み合わせて使われます。The storage account name and container name are used together to provide a URI for the blob storage, like this:

      http://YOURNAMEsa.blob.core.windows.net/socialtwitter/...

      Stream Analytics ジョブの [新しい出力] ブレード

  3. Create をクリックしてください。Click Create.

    ストレージ アカウントが作成され、キーが自動的に生成されます。Azure creates the storage account and generates a key automatically.

  4. [出力] ブレードを閉じます。Close the Outputs blade.

ジョブの開始Start the job

ジョブ入力、クエリ、出力が指定されました。A job input, query, and output are specified. これで、Stream Analytics ジョブを開始する準備が整いました。You are ready to start the Stream Analytics job.

  1. TwitterWpfClient アプリケーションが実行されていることを確認します。Make sure that the TwitterWpfClient application is running.

  2. ジョブ ブレードで、 [開始] をクリックします。In the job blade, click Start.

    Stream Analytics ジョブの開始

  3. [ジョブの開始] ブレードで、 [ジョブ出力の開始時刻][Now](今すぐ) を選択し、 [開始] をクリックします。In the Start job blade, for Job output start time, select Now and then click Start.

    Stream Analytics ジョブの [ジョブの開始] ブレード

    ジョブが開始されたことが通知され、ジョブ ブレードに表示される状態が [実行中] になります。Azure notifies you when the job has started, and in the job blade, the status is displayed as Running.

    ジョブを実行中

センチメント分析の出力表示View output for sentiment analysis

ジョブの実行が開始されたら、リアルタイム Twitter ストリームの処理中に、感情分析の出力を表示できます。After your job has started running and is processing the real-time Twitter stream, you can view the output for sentiment analysis.

Azure Storage エクスプローラーAzure エクスプローラーなどのツールを使用して、ジョブ出力をリアルタイムで表示できます。You can use a tool like Azure Storage Explorer or Azure Explorer to view your job output in real time. ここから、Power BI を使用してアプリケーションを拡張し、次のスクリーンショットに示すようなカスタマイズされたダッシュボードを含めることができます。From here, you can use Power BI to extend your application to include a customized dashboard like the one shown in the following screenshot:

Power BI

Twitter のセンチメントを理解するために使用できるもう 1 つのクエリは、スライディング ウィンドウに基づいています。Another query you can use to understand Twitter sentiment is based on a Sliding Window. トレンド トピックを特定するには、指定された期間にメンションのしきい値を超えるトピックを検索します。To identify trending topics, you look for topics that cross a threshold value for mentions in a specified amount of time.

この攻略ガイドでは、直近の 5 秒間で 20 回を超えてメンションされたトピックをチェックします。For the purposes of this how-to, you check for topics that are mentioned more than 20 times in the last 5 seconds.

  1. ジョブ ブレードで [停止] をクリックしてジョブを停止します。In the job blade, click Stop to stop the job.

  2. [ジョブ トポロジ] セクションで、 [クエリ] ボックスをクリックします。In the Job Topology section, click the Query box.

  3. クエリを次のように変更します。Change the query to the following:

    SELECT System.Timestamp as Time, Topic, COUNT(*) as Mentions
    FROM TwitterStream TIMESTAMP BY CreatedAt
    GROUP BY SLIDINGWINDOW(s, 5), topic
    HAVING COUNT(*) > 20
    
  4. [保存] をクリックします。Click Save.

  5. TwitterWpfClient アプリケーションが実行されていることを確認します。Make sure that the TwitterWpfClient application is running.

  6. [開始] をクリックし、新しいクエリを使用してジョブを再開します。Click Start to restart the job using the new query.

サポートを受けるGet support

さらにサポートが必要な場合は、 Azure Stream Analytics フォーラムを参照してください。For further assistance, try our Azure Stream Analytics forum.

次のステップNext steps