Add new analytics category
Add twitter-analytics sample Update `admin-local` references with `server-local`
This commit is contained in:
10
README.adoc
10
README.adoc
@@ -6,12 +6,18 @@ This repository provides sample starter applications and code for use with the S
|
||||
|
||||
### link:streaming/http-to-cassandra/README.adoc[http-cassandra]
|
||||
|
||||
A data pipeline demonstration that consumes data from an `http` endpoint and writes the payload to Cassandra database using the `cassandra` sink.
|
||||
A data pipeline demonstration that consumes data from an `http` endpoint and writes the payload to Cassandra database using the `cassandra` sink application.
|
||||
|
||||
### link:streaming/http-to-mysql/README.adoc[http-mysql]
|
||||
|
||||
A data pipeline demonstration that consumes data from an `http` endpoint and writes the payload to MySQL database using the `jdbc` sink.
|
||||
A data pipeline demonstration that consumes data from an `http` endpoint and writes the payload to MySQL database using the `jdbc` sink application.
|
||||
|
||||
## Task / Batch
|
||||
|
||||
## Analytics
|
||||
|
||||
### link:analytics/twitter-analytics/README.adoc[twitter-analytics]
|
||||
|
||||
A data pipeline demonstration that consumes data from twitter-firehose using `twitterstream` source application and computes simple analytics over data-in-trasnsit with the help of `field-value-counter` sink application.
|
||||
|
||||
## Data Science
|
||||
|
||||
160
analytics/twitter-analytics/README.adoc
Normal file
160
analytics/twitter-analytics/README.adoc
Normal file
@@ -0,0 +1,160 @@
|
||||
:sectnums:
|
||||
= Twitter Analytics
|
||||
|
||||
In this demonstration, you will learn how to orchestrate a data pipeline using http://cloud.spring.io/spring-cloud-dataflow/[Spring Cloud Data Flow] to consume data from _TwitterStream_ and compute simple analytics over data-in-transit using _Field-Value-Counter_.
|
||||
|
||||
We will begin by discussing the steps to prep, configure and operationalize Spring Cloud Data Flow's `local-server`, a Spring Boot application.
|
||||
|
||||
== Using Local SPI
|
||||
|
||||
=== Prerequisites
|
||||
|
||||
In order to get started, make sure that you have the following components:
|
||||
|
||||
* Local build of link:https://github.com/spring-cloud/spring-cloud-dataflow[Spring Cloud Data Flow]
|
||||
* Running instance of link:http://redis.io/[Redis]
|
||||
* Twitter credentials from link:https://apps.twitter.com/[Twitter Developers] site
|
||||
|
||||
=== Running the Sample Locally
|
||||
|
||||
. Launch the `local-server`
|
||||
+
|
||||
```
|
||||
$ cd <PATH/TO/SPRING-CLOUD-DATAFLOW>
|
||||
$ java -jar spring-cloud-dataflow-server-local/target/spring-cloud-dataflow-server-local-1.0.0.BUILD-SNAPSHOT.jar
|
||||
|
||||
```
|
||||
+
|
||||
|
||||
. Connect to Spring Cloud Data Flow's `shell`
|
||||
+
|
||||
```
|
||||
$ cd <PATH/TO/SPRING-CLOUD-DATAFLOW>
|
||||
$ java -jar spring-cloud-dataflow-shell/target/spring-cloud-dataflow-shell-1.0.0.BUILD-SNAPSHOT.jar
|
||||
|
||||
____ ____ _ __
|
||||
/ ___| _ __ _ __(_)_ __ __ _ / ___| | ___ _ _ __| |
|
||||
\___ \| '_ \| '__| | '_ \ / _` | | | | |/ _ \| | | |/ _` |
|
||||
___) | |_) | | | | | | | (_| | | |___| | (_) | |_| | (_| |
|
||||
|____/| .__/|_| |_|_| |_|\__, | \____|_|\___/ \__,_|\__,_|
|
||||
____ |_| _ __|___/ __________
|
||||
| _ \ __ _| |_ __ _ | ___| | _____ __ \ \ \ \ \ \
|
||||
| | | |/ _` | __/ _` | | |_ | |/ _ \ \ /\ / / \ \ \ \ \ \
|
||||
| |_| | (_| | || (_| | | _| | | (_) \ V V / / / / / / /
|
||||
|____/ \__,_|\__\__,_| |_| |_|\___/ \_/\_/ /_/_/_/_/_/
|
||||
|
||||
1.0.0.BUILD-SNAPSHOT
|
||||
|
||||
Welcome to the Spring Cloud Data Flow shell. For assistance hit TAB or type "help".
|
||||
dataflow:>version
|
||||
1.0.0.BUILD-SNAPSHOT
|
||||
```
|
||||
|
||||
+
|
||||
. Create and deploy the following streams
|
||||
+
|
||||
```
|
||||
(1) dataflow:>stream create tweets --definition "twitterstream --consumerKey=<CONSUMER_KEY> --consumerSecret=<CONSUMER_SECRET> --accessToken=<ACCESS_TOKEN> --accessTokenSecret=<ACCESS_TOKEN_SECRET> | log"
|
||||
Created new stream 'tweets'
|
||||
|
||||
(2) dataflow:>stream create tweetlang --definition ":tweets.twitterstream > field-value-counter --fieldName=lang --name=language --store=redis" --deploy
|
||||
Created and deployed new stream 'tweetlang'
|
||||
|
||||
(3) dataflow:>stream create tagcount --definition ":tweets.twitterstream > field-value-counter --fieldName=entities.hashtags.text --name=hashtags --store=redis" --deploy
|
||||
Created and deployed new stream 'tagcount'
|
||||
|
||||
(4) dataflow:>stream deploy tweets
|
||||
Deployed stream 'tweets'
|
||||
```
|
||||
NOTE: To get a consumerKey and consumerSecret you need to register a twitter application. If you don’t already have one set up, you can create an app at the link:https://apps.twitter.com/[Twitter Developers] site to get these credentials. The tokens `<CONSUMER_KEY>`, `<CONSUMER_SECRET>`, `<CONSUMER_SECRET>`, and `<ACCESS_TOKEN_SECRET>` are required to be replaced with your account credentials.
|
||||
|
||||
+
|
||||
. Verify the streams are successfully deployed. Where: (1) is the primary pipeline; (2) and (3) are tapping the primary pipeline with the DSL syntax `<stream-name>.<label/app name>` [e.x. `:tweets.twitterstream`]; and (4) is the final deployment of primary pipeline
|
||||
|
||||
+
|
||||
```
|
||||
dataflow:>stream list
|
||||
```
|
||||
+
|
||||
. Notice that `tweetlang.field-value-counter`, `tagcount.field-value-counter`, `tweets.log` and `tweets.twitterstream` link:https://github.com/spring-cloud/spring-cloud-stream-modules/[Spring Cloud Stream] applications are running as Spring Boot applications within the `local-server`.
|
||||
+
|
||||
|
||||
```
|
||||
2016-02-16 11:43:26.174 INFO 10189 --- [nio-9393-exec-2] o.s.c.d.d.l.OutOfProcessModuleDeployer : deploying module org.springframework.cloud.stream.module:field-value-counter-sink:jar:exec:1.0.0.BUILD-SNAPSHOT instance 0
|
||||
Logs will be in /var/folders/c3/ctx7_rns6x30tq7rb76wzqwr0000gp/T/spring-cloud-data-flow-6990537012958280418/tweetlang-1455651806160/tweetlang.field-value-counter
|
||||
2016-02-16 11:43:26.206 INFO 10189 --- [nio-9393-exec-3] o.s.c.d.d.l.OutOfProcessModuleDeployer : deploying module org.springframework.cloud.stream.module:field-value-counter-sink:jar:exec:1.0.0.BUILD-SNAPSHOT instance 0
|
||||
Logs will be in /var/folders/c3/ctx7_rns6x30tq7rb76wzqwr0000gp/T/spring-cloud-data-flow-6990537012958280418/tagcount-1455651806202/tagcount.field-value-counter
|
||||
2016-02-16 11:43:26.806 INFO 10189 --- [nio-9393-exec-4] o.s.c.d.d.l.OutOfProcessModuleDeployer : deploying module org.springframework.cloud.stream.module:log-sink:jar:exec:1.0.0.BUILD-SNAPSHOT instance 0
|
||||
Logs will be in /var/folders/c3/ctx7_rns6x30tq7rb76wzqwr0000gp/T/spring-cloud-data-flow-6990537012958280418/tweets-1455651806800/tweets.log
|
||||
2016-02-16 11:43:26.813 INFO 10189 --- [nio-9393-exec-4] o.s.c.d.d.l.OutOfProcessModuleDeployer : deploying module org.springframework.cloud.stream.module:twitterstream-source:jar:exec:1.0.0.BUILD-SNAPSHOT instance 0
|
||||
Logs will be in /var/folders/c3/ctx7_rns6x30tq7rb76wzqwr0000gp/T/spring-cloud-data-flow-6990537012958280418/tweets-1455651806800/tweets.twitterstream
|
||||
```
|
||||
+
|
||||
. Verify that two `field-value-counter` with the names `hashtags` and `language` is listing successfully
|
||||
+
|
||||
```
|
||||
dataflow:>field-value-counter list
|
||||
╔════════════════════════╗
|
||||
║Field Value Counter name║
|
||||
╠════════════════════════╣
|
||||
║hashtags ║
|
||||
║language ║
|
||||
╚════════════════════════╝
|
||||
```
|
||||
+
|
||||
. Verify you can query individual `field-value-counter` results successfully
|
||||
+
|
||||
```
|
||||
dataflow:>field-value-counter display hashtags
|
||||
Displaying values for field value counter 'hashtags'
|
||||
╔══════════════════════════════════════╤═════╗
|
||||
║ Value │Count║
|
||||
╠══════════════════════════════════════╪═════╣
|
||||
║KCA │ 40║
|
||||
║PENNYSTOCKS │ 17║
|
||||
║TEAMBILLIONAIRE │ 17║
|
||||
║UCL │ 11║
|
||||
║... │ ..║
|
||||
║... │ ..║
|
||||
║... │ ..║
|
||||
╚══════════════════════════════════════╧═════╝
|
||||
|
||||
dataflow:>field-value-counter display language
|
||||
Displaying values for field value counter 'language'
|
||||
╔═════╤═════╗
|
||||
║Value│Count║
|
||||
╠═════╪═════╣
|
||||
║en │1,171║
|
||||
║es │ 337║
|
||||
║ar │ 296║
|
||||
║und │ 251║
|
||||
║pt │ 175║
|
||||
║ja │ 137║
|
||||
║.. │ ...║
|
||||
║.. │ ...║
|
||||
║.. │ ...║
|
||||
╚═════╧═════╝
|
||||
|
||||
```
|
||||
|
||||
+
|
||||
. Go to `admin-ui` accessible at `http://localhost:9393` and launch the `Analytics` tab. From the default `Dashboard` menu, select the following combinations to visualize real-time updates on `field-value-counter`.
|
||||
|
||||
- For real-time updates on `language` tags, select:
|
||||
.. Metric Type as `Field-Value-Counters`
|
||||
.. Stream as `language`
|
||||
.. Visualization as `Bubble-Chart` or `Pie-Chart`
|
||||
- For real-time updates on `hashtags` tags, select:
|
||||
.. Metric Type as `Field-Value-Counters`
|
||||
.. Stream as `hashtags`
|
||||
.. Visualization as `Bubble-Chart` or `Pie-Chart`
|
||||
|
||||
image::/images/twitter_anlaytics.png[Twitter Analytics Visualization]
|
||||
|
||||
== Summary
|
||||
|
||||
In this sample, you have learned:
|
||||
|
||||
* How to use Spring Cloud Data Flow in `local-server` mode
|
||||
* How to use Spring Cloud Data Flow's `shell`
|
||||
* How to create streaming data pipeline to compute simple analytics using `Twitter Stream` and `Field Value Counter` data microservices
|
||||
BIN
analytics/twitter-analytics/images/twitter_analytics.png
Normal file
BIN
analytics/twitter-analytics/images/twitter_analytics.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 416 KiB |
@@ -34,7 +34,7 @@ CREATE TABLE book (
|
||||
+
|
||||
```
|
||||
$ cd <PATH/TO/SPRING-CLOUD-DATAFLOW>
|
||||
$ java -jar spring-cloud-dataflow-admin-local/target/spring-cloud-dataflow-admin-local-1.0.0.BUILD-SNAPSHOT.jar
|
||||
$ java -jar spring-cloud-dataflow-server-local/target/spring-cloud-dataflow-server-local-1.0.0.BUILD-SNAPSHOT.jar
|
||||
|
||||
```
|
||||
+
|
||||
|
||||
@@ -33,7 +33,7 @@ CREATE TABLE names
|
||||
|
||||
```
|
||||
$ cd <PATH/TO/SPRING-CLOUD-DATAFLOW>
|
||||
$ java -jar spring-cloud-dataflow-admin-local/target/spring-cloud-dataflow-admin-local-1.0.0.BUILD-SNAPSHOT.jar
|
||||
$ java -jar spring-cloud-dataflow-server-local/target/spring-cloud-dataflow-server-local-1.0.0.BUILD-SNAPSHOT.jar
|
||||
|
||||
```
|
||||
+
|
||||
|
||||
Reference in New Issue
Block a user