SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
joola.io	Workshops
Technical	Review	of	joola.io
Worksh op	Details	an d	In stru ction s
Preface
About	the	workshop
Th is	is	a	h an ds-on 	worksh op
Lab	m aterials	are	available	for	th is	worksh op
Th is	worksh op	an d	m aterials	are	available	on 	ou r	GitH u b	repo
Workshop	Goals
U n derstan d	joola.io	on 	all	of	its	com pon en ts
Be	able	to	deploy	joola.io
Pu sh 	an d	Qu ery	data	from 	th e	system
Draw	basic	Visu alization s
Lab	Details
Du rin g	th is	worksh op	we'll	be	accessin g	an 	on lin e	lab
Please	SSH 	with 	th e	followin g
$	s s h	work s hop@lab-intro.joola.io

Password:	password
*	ac c es s 	to	the	abov e	lab	is 	whitelis ted
Understanding	joola.io
What	is	joola.io?
$	npm	ins tall	joola.io

Featu re	packed	Data	An alytics	an d	Visu alization 	Fram ework
Written 	in 	N ode.JS
Scalable	to	deal	with 	h igh 	volu m es	of	data	an d	realtim e	qu eries
Secu re	an d	m u lti-ten an t
Em bed	an d	in tegrate	data	visu alization s	in to	existin g	sites	an d	apps
Open 	Sou rce
How	does	it	work?
Operates	an d	m an aged	via	a	set	of	H TTP	API	en dpoin ts
Data	pu sh ed	u sin g	JSON 	via	joola.io's	Beacon 	API
Stored	in 	cach in g	layer,	optim ized	for	qu ery
Qu eries	an d	Visu alization s	provided	by	Javascript	SDK

Th at's	all	in 	a	n u tsh ell!
Developer	Friendly
By	Data	Lovers	for	Developers
Ease	of	u se
Exten d
Em bed	an d	In tegrate
Site	specific	au tom ated	testin g
Rich 	docu m en tation
IT	Friendly
M asterless	grid
Easy	in stallation
Zero	con figu ration
Powerfu l	CLI
Sm all	footprin t
M on itor,	Alerts	an d	Logs
DBA	Friendly
Easy	Data	M odellin g
Sch em a-less
Flexible
Zero	down tim e	u pdates
Com plete	con trol
Dispatch
Nodes	Everywhere
Each 	n ode	is	a	fu lly	fu n ction in g	joola.io	system
Com m u n ication 	is	based	on 	Pu b/Su b
A	n ode	n eeds	to	qu alify	for	exeu ction
Qu alification 	can 	vary	an d	be	exten ded
Geo	prioritization
Dispatch	Routing
Every	action 	is	a	m essage
All	m essages	are	distribu ted
M essages	con tain 	secu rity	con text
Defau lt	`n otm e`	h an dlin g	logic
Backlog	processin g	of	stu ck	m essages
Command	the	Grid
U se	REPL,	CLI	or	SDK	
$	joola.io.c li
joola.io	#	admin@loc alhos t:8080	>	joolaio.s y s tem.lis tnodes ();
joola.io	#	admin@loc alhos t:8080	>	joolaio.s y s tem.terminate('nodeuid');

Wh en 	you 're	con n ected	to	on e	n ode,	you 're	con n ected	to	th e	Grid
N o	action 	is	execu ted	on 	th e	local	n ode,	bu t	dispatch ed
All	n odes	su bscribe	to	con figu ration 	ch an ges
Node.JS'	Event	Loop	Block
M an y	con sider	as	N ode.JS'	ach illes	h eel,	we	don 't
Th e	Grid	an d	Pu b/Su b	approach 	resolves	th e	core	issu e
ELB	cou n ters	an d	m on itors

U sin g	th e	righ t	tool	for	th e	job
M ade	ou r	software	better
Accessing	joola.io
Via	H TTP	API	en dpoin ts
U se	SDK,	CLI,	cU RL	or	write	you r	own
Sh ipped	with 	Web	Adm in 	con sole
Ou t-of-th e-box	fu lly	fu n ction in g	an alytics	site
Rich 	docu m en tation
Pushing	Data
Pushing	Data	is	Easy
joolaio.beac on.ins ert('c ollec tion-purc has es ',	{
				times tamp:	new	Date(),
				Play er:	{
								Us ername:	'A	play er',
								Dev ic e:	'Des k top',
								Brows er:	'Chrome'
				},
				ip:	'127.0.0.1',
				Vis its :	1,
				Vis itDuration:	123,
				Clic k s :	23,
				Purhc as es :	{
								Amount:	123
								Currenc y :	'USD',
								Status :	'Proc es s ed'
				}
}});
Data	Modelling
Describe	you r	data	as	a	JSON 	docu m en t(s)
Docu m en ts	are	stored	in 	a	Collection
Sch em a-less,	docu m en ts	can 	be	of	differen t	stru ctu re
Su pport	for	all	data	types
Su pport	for	Stron g-Typed	collection s
Push	What	You'll	Need
Store	on ly	data	relatin g	to	An alytics
Separate	in to	logical	collection s
Describe	every	m etric	with 	as	m an y	attribu tes	as	possible
Pass	raw	data,	don 't	aggregate
Pu sh 	an 	array	of	docu m en ts	wh en 	possible
Caching	Layer
Based	on 	leadin g	providers,	su ch 	as	M on goDB,	Cassan dra	an d	m ore
Exten d	to	su pport	addition al
In sert,	u pdate	an d	delete	directly	from 	cach e
Execu te	qu eries	directly	on 	cach in g	layer
N orm alized	access	to	u n derlyin g	cach e	via	Beacon 	API
Query
Understanding	Queries
Describe	wh at	you 	wish 	to	display,	rath er	th an 	h ow	to	get	it	(SQL)
Su pport	for	Realtim e	(WebSocket)
Join 	data	from 	m u ltiple	collection s
Relative	tim efram es
Advan ced	filters
Dim en sion 	an d	M etric	tran sform ation s
M an y	aggregation 	operators,	in clu din g	U n iqu e	Cou n t
Basic	Query
Describe	th e	requ ired	dim en sion s	an d	m etric,	n ot	h ow	to	qu ery	th em
joolaio.query .fetc h({
				timeframe:	'las t_month',
				interv al:	'day s ',
				dimens ions :	['times tamp',	'dev ic e'],
				metric s :	['v is its ',	{
								k ey :	'av gv is itduration',
								name:	'Av g.	Vis it	Duration',
								depends On:	'v is itduration',
								aggregation:	'av g',
								s uffix :	'ms .'
				}]
},	func tion(err,	res ult){
				c ons ole.log(res ult.doc uments );
});
Calculated	Metrics
Com pose	virtu al,	calcu lated	m etrics	on -th e-fly
metric s :	[{
				k ey :'av gamountperplay er',
				name:	'Av g.	Amount	per	Play er',
				formula:	{
								depends On:[{
												k ey :	'av gamount',
												depends On:	'Purc has e.Amount',
												aggregation:	'av g'
								},	{
												k ey :	'play erc ount',
												depends On:	'Play er.Us ername',
												aggregation:	'uc ount'
								}],
								run:	'func tion(av gamount,	play erc ount)	{return	av gamount/play erc ount;}'
				}
}]
Query	Filters
M u ltiple	filters	-	m u tli-level	filters	-	per	m etric	filters
timeframe:	'las t_month',
interv al:	'day s ',
metric s :	[{
				k ey :	'play erc ount',
				depends On:	'Play er.Us ername',
				aggregation:	'uc ount',
				filter:	[
								['Play er.Brows er',	'eq',	'Chrome']]
}],
filter:	[
				['Play er.Dev ic e',	'eq',	'Des k top']
]
Query	Results
Con tain 	retrieved	docu m en ts	an d	m eta-data	describin g	th e	qu ery	an d	its	tim in gs.
Resu lts	con tain 	both 	raw	an d	form atted	valu es.
res ults :	[
				{
								v alues :{
												times tamp:	'2014-03-09T14:03:34.412Z',
												av gduration:	'123	ms .'
								},
								formattedValues :	{
												times tamp:	'Sun	Mar	09	2014	15:03:34	GMT+0100	(CET)',
												av gduration:	123'
								}
				},
				{...}
]
Realtime
Bu ilt-in 	in to	all	visu alization s	an d	in tegral	part	of	qu ery.fetch
joolaio.query .fetc h({
				//query 	params ,	s uc h	as 	timeframe,	metric s ,	etc ...
				realtime:	true
});

First	execu tion 	retu rn s	en tire	tim efram e
Followin g	packets	retu rn 	on ly	delta
Data	con sisten cy	assu ran ce
Visualization
Plotting	Data
Part	of	th e	Javascript	SDK
Easy	as	copy-paste
Sh ape	to	th e	desired	look,	feel	an d	beh avior
Offers	jQu ery	plu gin s
Rich 	Docu m en tation 	an d	Playgrou n d
Visualization	Types
M etric	Box
Sparklin e
Pie	Ch art
Tim elin e
Table
Drawing	a	Visualization
Easy	as	a	copy-pastin g	from 	th e	wiki
Accepts	a	Qu ery	object	an d	addition al	form attin g	option s
joolaio.v iz .timeline({
				c ontainer:	doc ument.getElementBy Id('drawhere'),
				query :	{
								dimens ions :['times tamp'],
								metric s :	['v alue']
});

U ses	H TM L5,	su pports	all	device	types	(m obiles,	tablets)
Integrate,	Embed	and	Extend
Integrate
Design ed	an d	bu ilt	for	in tegration
Pu sh 	data	from 	an y	data	sou rce	type	wh ile	keepin g	con trol	of	logic
Su pport	for	h igh -rate	distribu ted,	gu aran teed	writes
JSON 	collection s	provide	flexibility	an d	site	specific	in tegration
Collect	data	from 	all	parts	of	th e	bu sin ess
Leverage	joola.io	to	redu ce	overh ead	of	operation al	databases
Embed
Seam less	drop-in 	visu alization s	in 	you r	site	an d	apps
Even t	driven 	com m u n ication 	with 	con tain er	page
Copy-paste	from 	wiki
On ly	fron t-en d	developers	are	n eeded,	redu ce	DBA	overh ead
Con trol	th e	tin iest	detail	of	look,	feel	an d	flow
Respon sive,	H TM L5,	CSS3	stan dards
Extend
M issin g	a	featu re?
Easy	to	learn 	in frastru ctu re	an d	code
Follows	best	practices	gu idelin es	an d	m eth odology
Access	to	sou rce	code,	issu es,	wiki	an d	kn ow-h ow
Con tribu te	to	open 	sou rce	project
Exten d	an yth in g	from 	cach in g	layer	to	visu alization s
Endless	Possibilities
Analytics-as-a-Service
Offer	an alytics	an d	visu alization s	to	you r	en d-u sers	
Scalable	an d	redu n dan t	to	su pport	very	large	operation s
M u lti-ten an t	an d	secu re
Easy	bran din g	an d	clien t	in tegration
Web	Analytics
Easy	to	setu p	an d	con figu ration
Gath er	an d	join 	m u ltiple	data	sou rces	in to	a	sin gle	store
joolaio.beac on.ins ert('performanc e',	window.performanc e);

Setu p	alerts	on 	specific	u ser	activity	or	th resh old
Ad	Serving
N o	n eed	to	pre-determ in e	au dien ces	an d	segm en ts
Leverage	split	secon d	qu ery	tim es
Apply	advan ced	filters	an d	segm en ts	in 	realtim e
Determ in e	best	m atch 	by	u n lim ited	param eters
Perform 	fu ll/partial	segm en tation 	on -th e-fly
Infographics
Offer	"live"	in fograph ics
Com bin e	realtim e	calcu lation s	in to	static	con ten t
Segm en ted	in fograph ics
Secu re/m u lti-ten an t	in fograph ics
THANK	YOU
Visit	ou r	GitH u b	to	read	m ore	abou t	joola.io

Más contenido relacionado

La actualidad más candente

John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenJohn Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenPostgresOpen
 
20210928_pgunconf_hll_count
20210928_pgunconf_hll_count20210928_pgunconf_hll_count
20210928_pgunconf_hll_countKohei KaiGai
 
ClickHouse Features for Advanced Users, by Aleksei Milovidov
ClickHouse Features for Advanced Users, by Aleksei MilovidovClickHouse Features for Advanced Users, by Aleksei Milovidov
ClickHouse Features for Advanced Users, by Aleksei MilovidovAltinity Ltd
 
TensorFrames: Google Tensorflow on Apache Spark
TensorFrames: Google Tensorflow on Apache SparkTensorFrames: Google Tensorflow on Apache Spark
TensorFrames: Google Tensorflow on Apache SparkDatabricks
 
Scaling Deep Learning with MXNet
Scaling Deep Learning with MXNetScaling Deep Learning with MXNet
Scaling Deep Learning with MXNetAI Frontiers
 
[243] turning data into value
[243] turning data into value[243] turning data into value
[243] turning data into valueNAVER D2
 
Accelerating Local Search with PostgreSQL (KNN-Search)
Accelerating Local Search with PostgreSQL (KNN-Search)Accelerating Local Search with PostgreSQL (KNN-Search)
Accelerating Local Search with PostgreSQL (KNN-Search)Jonathan Katz
 
Distance oracle - Truy vấn nhanh khoảng cách giữa hai điểm bất kỳ trên đồ thị
Distance oracle - Truy vấn nhanh khoảng cách giữa hai điểm bất kỳ trên đồ thịDistance oracle - Truy vấn nhanh khoảng cách giữa hai điểm bất kỳ trên đồ thị
Distance oracle - Truy vấn nhanh khoảng cách giữa hai điểm bất kỳ trên đồ thịHong Ong
 
Unified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsUnified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsAltinity Ltd
 
JRubyKaigi2010 Hadoop Papyrus
JRubyKaigi2010 Hadoop PapyrusJRubyKaigi2010 Hadoop Papyrus
JRubyKaigi2010 Hadoop PapyrusKoichi Fujikawa
 
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...Altinity Ltd
 
20181025_pgconfeu_lt_gstorefdw
20181025_pgconfeu_lt_gstorefdw20181025_pgconfeu_lt_gstorefdw
20181025_pgconfeu_lt_gstorefdwKohei KaiGai
 
GeoMesa on Apache Spark SQL with Anthony Fox
GeoMesa on Apache Spark SQL with Anthony FoxGeoMesa on Apache Spark SQL with Anthony Fox
GeoMesa on Apache Spark SQL with Anthony FoxDatabricks
 
Goal Based Data Production with Sim Simeonov
Goal Based Data Production with Sim SimeonovGoal Based Data Production with Sim Simeonov
Goal Based Data Production with Sim SimeonovDatabricks
 
Time Series Analysis by JavaScript LL matsuri 2013
Time Series Analysis by JavaScript LL matsuri 2013 Time Series Analysis by JavaScript LL matsuri 2013
Time Series Analysis by JavaScript LL matsuri 2013 Daichi Morifuji
 
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster PerformanceWebinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster PerformanceAltinity Ltd
 
User Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryUser Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryDatabricks
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_IndexKohei KaiGai
 

La actualidad más candente (20)

John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenJohn Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
 
20210928_pgunconf_hll_count
20210928_pgunconf_hll_count20210928_pgunconf_hll_count
20210928_pgunconf_hll_count
 
ClickHouse Features for Advanced Users, by Aleksei Milovidov
ClickHouse Features for Advanced Users, by Aleksei MilovidovClickHouse Features for Advanced Users, by Aleksei Milovidov
ClickHouse Features for Advanced Users, by Aleksei Milovidov
 
TensorFrames: Google Tensorflow on Apache Spark
TensorFrames: Google Tensorflow on Apache SparkTensorFrames: Google Tensorflow on Apache Spark
TensorFrames: Google Tensorflow on Apache Spark
 
Scaling Deep Learning with MXNet
Scaling Deep Learning with MXNetScaling Deep Learning with MXNet
Scaling Deep Learning with MXNet
 
[243] turning data into value
[243] turning data into value[243] turning data into value
[243] turning data into value
 
Accelerating Local Search with PostgreSQL (KNN-Search)
Accelerating Local Search with PostgreSQL (KNN-Search)Accelerating Local Search with PostgreSQL (KNN-Search)
Accelerating Local Search with PostgreSQL (KNN-Search)
 
Distance oracle - Truy vấn nhanh khoảng cách giữa hai điểm bất kỳ trên đồ thị
Distance oracle - Truy vấn nhanh khoảng cách giữa hai điểm bất kỳ trên đồ thịDistance oracle - Truy vấn nhanh khoảng cách giữa hai điểm bất kỳ trên đồ thị
Distance oracle - Truy vấn nhanh khoảng cách giữa hai điểm bất kỳ trên đồ thị
 
PostgreSQL: Advanced indexing
PostgreSQL: Advanced indexingPostgreSQL: Advanced indexing
PostgreSQL: Advanced indexing
 
Unified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsUnified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco Systems
 
JRubyKaigi2010 Hadoop Papyrus
JRubyKaigi2010 Hadoop PapyrusJRubyKaigi2010 Hadoop Papyrus
JRubyKaigi2010 Hadoop Papyrus
 
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
 
20181025_pgconfeu_lt_gstorefdw
20181025_pgconfeu_lt_gstorefdw20181025_pgconfeu_lt_gstorefdw
20181025_pgconfeu_lt_gstorefdw
 
GeoMesa on Apache Spark SQL with Anthony Fox
GeoMesa on Apache Spark SQL with Anthony FoxGeoMesa on Apache Spark SQL with Anthony Fox
GeoMesa on Apache Spark SQL with Anthony Fox
 
Hadoop
HadoopHadoop
Hadoop
 
Goal Based Data Production with Sim Simeonov
Goal Based Data Production with Sim SimeonovGoal Based Data Production with Sim Simeonov
Goal Based Data Production with Sim Simeonov
 
Time Series Analysis by JavaScript LL matsuri 2013
Time Series Analysis by JavaScript LL matsuri 2013 Time Series Analysis by JavaScript LL matsuri 2013
Time Series Analysis by JavaScript LL matsuri 2013
 
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster PerformanceWebinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
Webinar: Strength in Numbers: Introduction to ClickHouse Cluster Performance
 
User Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love StoryUser Defined Aggregation in Apache Spark: A Love Story
User Defined Aggregation in Apache Spark: A Love Story
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
 

Similar a Technical Review of joola.io Workshops

Questions On The Code And Core Module
Questions On The Code And Core ModuleQuestions On The Code And Core Module
Questions On The Code And Core ModuleKatie Gulley
 
WPS Application Patterns
WPS Application PatternsWPS Application Patterns
WPS Application PatternsDaniel Nüst
 
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Webbeyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
beyond tellerrand: Mobile Apps with JavaScript – There's More Than WebHeiko Behrens
 
Intro to hadoop ecosystem
Intro to hadoop ecosystemIntro to hadoop ecosystem
Intro to hadoop ecosystemGrzegorz Kolpuc
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineRicardo Silva
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnelukdpe
 
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Guillaume Laforge
 
Platform agnostic information systems development
Platform agnostic information systems developmentPlatform agnostic information systems development
Platform agnostic information systems developmentMark Jayson Fuentes
 
Stored-Procedures-Presentation
Stored-Procedures-PresentationStored-Procedures-Presentation
Stored-Procedures-PresentationChuck Walker
 
Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)Jonathan Felch
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for CassandraEdward Capriolo
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"DataStax Academy
 
Complex Event Processing - A brief overview
Complex Event Processing - A brief overviewComplex Event Processing - A brief overview
Complex Event Processing - A brief overviewIstván Dávid
 
Swift profiling middleware and tools
Swift profiling middleware and toolsSwift profiling middleware and tools
Swift profiling middleware and toolszhang hua
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisC4Media
 
Hadoop & Zing
Hadoop & ZingHadoop & Zing
Hadoop & ZingLong Dao
 
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2
 

Similar a Technical Review of joola.io Workshops (20)

Questions On The Code And Core Module
Questions On The Code And Core ModuleQuestions On The Code And Core Module
Questions On The Code And Core Module
 
WPS Application Patterns
WPS Application PatternsWPS Application Patterns
WPS Application Patterns
 
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Webbeyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
beyond tellerrand: Mobile Apps with JavaScript – There's More Than Web
 
NodeJS for Beginner
NodeJS for BeginnerNodeJS for Beginner
NodeJS for Beginner
 
ELAVARASAN.pdf
ELAVARASAN.pdfELAVARASAN.pdf
ELAVARASAN.pdf
 
Intro to hadoop ecosystem
Intro to hadoop ecosystemIntro to hadoop ecosystem
Intro to hadoop ecosystem
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnel
 
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008
 
Platform agnostic information systems development
Platform agnostic information systems developmentPlatform agnostic information systems development
Platform agnostic information systems development
 
Stored-Procedures-Presentation
Stored-Procedures-PresentationStored-Procedures-Presentation
Stored-Procedures-Presentation
 
Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
 
Complex Event Processing - A brief overview
Complex Event Processing - A brief overviewComplex Event Processing - A brief overview
Complex Event Processing - A brief overview
 
Swift profiling middleware and tools
Swift profiling middleware and toolsSwift profiling middleware and tools
Swift profiling middleware and tools
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
 
Hadoop & Zing
Hadoop & ZingHadoop & Zing
Hadoop & Zing
 
Handout3o
Handout3oHandout3o
Handout3o
 
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
 

Último

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

Technical Review of joola.io Workshops

  • 3. About the workshop Th is is a h an ds-on worksh op Lab m aterials are available for th is worksh op Th is worksh op an d m aterials are available on ou r GitH u b repo
  • 4. Workshop Goals U n derstan d joola.io on all of its com pon en ts Be able to deploy joola.io Pu sh an d Qu ery data from th e system Draw basic Visu alization s
  • 5. Lab Details Du rin g th is worksh op we'll be accessin g an on lin e lab Please SSH with th e followin g $ s s h work s hop@lab-intro.joola.io Password: password * ac c es s to the abov e lab is whitelis ted
  • 7. What is joola.io? $ npm ins tall joola.io Featu re packed Data An alytics an d Visu alization Fram ework Written in N ode.JS Scalable to deal with h igh volu m es of data an d realtim e qu eries Secu re an d m u lti-ten an t Em bed an d in tegrate data visu alization s in to existin g sites an d apps Open Sou rce
  • 8. How does it work? Operates an d m an aged via a set of H TTP API en dpoin ts Data pu sh ed u sin g JSON via joola.io's Beacon API Stored in cach in g layer, optim ized for qu ery Qu eries an d Visu alization s provided by Javascript SDK Th at's all in a n u tsh ell!
  • 9. Developer Friendly By Data Lovers for Developers Ease of u se Exten d Em bed an d In tegrate Site specific au tom ated testin g Rich docu m en tation
  • 10. IT Friendly M asterless grid Easy in stallation Zero con figu ration Powerfu l CLI Sm all footprin t M on itor, Alerts an d Logs
  • 11. DBA Friendly Easy Data M odellin g Sch em a-less Flexible Zero down tim e u pdates Com plete con trol
  • 13. Nodes Everywhere Each n ode is a fu lly fu n ction in g joola.io system Com m u n ication is based on Pu b/Su b A n ode n eeds to qu alify for exeu ction Qu alification can vary an d be exten ded Geo prioritization
  • 14. Dispatch Routing Every action is a m essage All m essages are distribu ted M essages con tain secu rity con text Defau lt `n otm e` h an dlin g logic Backlog processin g of stu ck m essages
  • 15. Command the Grid U se REPL, CLI or SDK $ joola.io.c li joola.io # admin@loc alhos t:8080 > joolaio.s y s tem.lis tnodes (); joola.io # admin@loc alhos t:8080 > joolaio.s y s tem.terminate('nodeuid'); Wh en you 're con n ected to on e n ode, you 're con n ected to th e Grid N o action is execu ted on th e local n ode, bu t dispatch ed All n odes su bscribe to con figu ration ch an ges
  • 16. Node.JS' Event Loop Block M an y con sider as N ode.JS' ach illes h eel, we don 't Th e Grid an d Pu b/Su b approach resolves th e core issu e ELB cou n ters an d m on itors U sin g th e righ t tool for th e job M ade ou r software better
  • 17. Accessing joola.io Via H TTP API en dpoin ts U se SDK, CLI, cU RL or write you r own Sh ipped with Web Adm in con sole Ou t-of-th e-box fu lly fu n ction in g an alytics site Rich docu m en tation
  • 19. Pushing Data is Easy joolaio.beac on.ins ert('c ollec tion-purc has es ', { times tamp: new Date(), Play er: { Us ername: 'A play er', Dev ic e: 'Des k top', Brows er: 'Chrome' }, ip: '127.0.0.1', Vis its : 1, Vis itDuration: 123, Clic k s : 23, Purhc as es : { Amount: 123 Currenc y : 'USD', Status : 'Proc es s ed' } }});
  • 20. Data Modelling Describe you r data as a JSON docu m en t(s) Docu m en ts are stored in a Collection Sch em a-less, docu m en ts can be of differen t stru ctu re Su pport for all data types Su pport for Stron g-Typed collection s
  • 21. Push What You'll Need Store on ly data relatin g to An alytics Separate in to logical collection s Describe every m etric with as m an y attribu tes as possible Pass raw data, don 't aggregate Pu sh an array of docu m en ts wh en possible
  • 22. Caching Layer Based on leadin g providers, su ch as M on goDB, Cassan dra an d m ore Exten d to su pport addition al In sert, u pdate an d delete directly from cach e Execu te qu eries directly on cach in g layer N orm alized access to u n derlyin g cach e via Beacon API
  • 23. Query
  • 24. Understanding Queries Describe wh at you wish to display, rath er th an h ow to get it (SQL) Su pport for Realtim e (WebSocket) Join data from m u ltiple collection s Relative tim efram es Advan ced filters Dim en sion an d M etric tran sform ation s M an y aggregation operators, in clu din g U n iqu e Cou n t
  • 25. Basic Query Describe th e requ ired dim en sion s an d m etric, n ot h ow to qu ery th em joolaio.query .fetc h({ timeframe: 'las t_month', interv al: 'day s ', dimens ions : ['times tamp', 'dev ic e'], metric s : ['v is its ', { k ey : 'av gv is itduration', name: 'Av g. Vis it Duration', depends On: 'v is itduration', aggregation: 'av g', s uffix : 'ms .' }] }, func tion(err, res ult){ c ons ole.log(res ult.doc uments ); });
  • 26. Calculated Metrics Com pose virtu al, calcu lated m etrics on -th e-fly metric s : [{ k ey :'av gamountperplay er', name: 'Av g. Amount per Play er', formula: { depends On:[{ k ey : 'av gamount', depends On: 'Purc has e.Amount', aggregation: 'av g' }, { k ey : 'play erc ount', depends On: 'Play er.Us ername', aggregation: 'uc ount' }], run: 'func tion(av gamount, play erc ount) {return av gamount/play erc ount;}' } }]
  • 27. Query Filters M u ltiple filters - m u tli-level filters - per m etric filters timeframe: 'las t_month', interv al: 'day s ', metric s : [{ k ey : 'play erc ount', depends On: 'Play er.Us ername', aggregation: 'uc ount', filter: [ ['Play er.Brows er', 'eq', 'Chrome']] }], filter: [ ['Play er.Dev ic e', 'eq', 'Des k top'] ]
  • 28. Query Results Con tain retrieved docu m en ts an d m eta-data describin g th e qu ery an d its tim in gs. Resu lts con tain both raw an d form atted valu es. res ults : [ { v alues :{ times tamp: '2014-03-09T14:03:34.412Z', av gduration: '123 ms .' }, formattedValues : { times tamp: 'Sun Mar 09 2014 15:03:34 GMT+0100 (CET)', av gduration: 123' } }, {...} ]
  • 29. Realtime Bu ilt-in in to all visu alization s an d in tegral part of qu ery.fetch joolaio.query .fetc h({ //query params , s uc h as timeframe, metric s , etc ... realtime: true }); First execu tion retu rn s en tire tim efram e Followin g packets retu rn on ly delta Data con sisten cy assu ran ce
  • 31. Plotting Data Part of th e Javascript SDK Easy as copy-paste Sh ape to th e desired look, feel an d beh avior Offers jQu ery plu gin s Rich Docu m en tation an d Playgrou n d
  • 33. Drawing a Visualization Easy as a copy-pastin g from th e wiki Accepts a Qu ery object an d addition al form attin g option s joolaio.v iz .timeline({ c ontainer: doc ument.getElementBy Id('drawhere'), query : { dimens ions :['times tamp'], metric s : ['v alue'] }); U ses H TM L5, su pports all device types (m obiles, tablets)
  • 35. Integrate Design ed an d bu ilt for in tegration Pu sh data from an y data sou rce type wh ile keepin g con trol of logic Su pport for h igh -rate distribu ted, gu aran teed writes JSON collection s provide flexibility an d site specific in tegration Collect data from all parts of th e bu sin ess Leverage joola.io to redu ce overh ead of operation al databases
  • 36. Embed Seam less drop-in visu alization s in you r site an d apps Even t driven com m u n ication with con tain er page Copy-paste from wiki On ly fron t-en d developers are n eeded, redu ce DBA overh ead Con trol th e tin iest detail of look, feel an d flow Respon sive, H TM L5, CSS3 stan dards
  • 37. Extend M issin g a featu re? Easy to learn in frastru ctu re an d code Follows best practices gu idelin es an d m eth odology Access to sou rce code, issu es, wiki an d kn ow-h ow Con tribu te to open sou rce project Exten d an yth in g from cach in g layer to visu alization s
  • 39. Analytics-as-a-Service Offer an alytics an d visu alization s to you r en d-u sers Scalable an d redu n dan t to su pport very large operation s M u lti-ten an t an d secu re Easy bran din g an d clien t in tegration
  • 40. Web Analytics Easy to setu p an d con figu ration Gath er an d join m u ltiple data sou rces in to a sin gle store joolaio.beac on.ins ert('performanc e', window.performanc e); Setu p alerts on specific u ser activity or th resh old
  • 41. Ad Serving N o n eed to pre-determ in e au dien ces an d segm en ts Leverage split secon d qu ery tim es Apply advan ced filters an d segm en ts in realtim e Determ in e best m atch by u n lim ited param eters Perform fu ll/partial segm en tation on -th e-fly
  • 42. Infographics Offer "live" in fograph ics Com bin e realtim e calcu lation s in to static con ten t Segm en ted in fograph ics Secu re/m u lti-ten an t in fograph ics
  • 43. THANK YOU Visit ou r GitH u b to read m ore abou t joola.io