SlideShare una empresa de Scribd logo
1 de 68
Descargar para leer sin conexión
© 2015 IBM Corporation
Informix on ARM and Informix
TimeSeries: Producing an Internet of
Things Solution – DMX-2350
Mike Walker/ 28th October 2015
Mike Walker
1
Mike Walker has been using Informix databases
for over 20 years, as a developer and as a
database administrator.
Recently Mike has primary responsibility for
Advanced DataTools Remote Monitoring
Systems.
Contact Info:
mike@advancedatatools.com
www.advancedatatools.com
Office: 303-838-0869
Cell: 303-909-4265
Internet of Things (IoT)
• Connecting together the Physical and Digital World
• Built around sensors and smart gateways
• Consumer Examples of “smart”
devices:
 Thermostats
 Door Locks
 Lightbulbs,
 Etc.
2
All connected…and all
accessible with a
smartphone
Demonstration
3
How the Pieces Fit Together
4
Smart Gateway Cloud
Sensors
Microcontroller
Microcontroller
Actuators
Lights, etc
Data Collection
Some local
processing
Control of remote
devices
Data Storage
Web access
Database
Analytics
Decision Making
Data Storage
Web access from
anywhere
Apps
Microcontroller Boards
• Electronics board with a microcontroller
• Can bridge the gap between the physical world around you and
computers
• Input and Output pins
 Read values from the environment
 Turn things on and off
• Programmable
• Generally cheap
 Intel Edison
 Pickaxe
 Arduino
 ESP8266
 Many, many others…
5
Arduino
• Electronics board & microcontroller
• Cheap ($2-75 depending on version)
• Programming language (based on Wiring)
• Arduino is Open Source/Open Hardware
• Many different varieties and clones
6
void setup(){
// declare the LED pins
as outputs
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
// declare the switch
pin as an input
pinMode(2,INPUT);
}
Sparkfun RedBoard
programmed with
Arduino
Arduino
• Use as a platform for sensors
• Add “shields” for additional functions and sensors
7
Arduino with WiFi shield
and Weather Shield:
• Temperature
• Humidity
• Light
• GPS
• Pressure/Altimeter
What is ARM?
• RISC based chipset
• Small, Low Power, low heat
• Non x86 architecture
• Runs Linux, BSD and Android
• Most phones, tablets are built on ARM processors
• The designs are owned by ARM Holdings out of Cambridge England
• Licensed to third party manufacturers to generate a variety of chip
types based on ARM
• Number of low-cost, ARM based, linux computers available
 Raspberry Pi
 Beaglebone Black
 CubieTruck
 Others…
8
Raspberry Pi
• Several models, A and B, B2 for $25 - $40
• Raspberry Pi 2 Model B has 1 GB RAM
• 700-900mhz
• SD Card Slot (MicroSD on the + models)
• 10/100 Ethernet on B models
• Onboard GPU with HDMI out
and H.264 support
 Plug it into a monitor/TV
9
Raspberry Pi is a trademark of the Raspberry Pi Foundation
Beaglebone Black
• Price: $55
• 1Ghz A8 (v7 of ARM)
• 512 RAM
• 4 GB Onboard Storage, microSD card slot
• 10/100 Ethernet
• MicroHDMI out with GPU support
• Built in private networking via USB
10
BeagleBone is a trademark of BeagleBoard.org
ARM Powered Linux Computers
– Why Should you Care?
• Small, low power, low cost, low heat.
• Easily scalable horizontally
• Useful to manage sensors or more complex tasks interacting
with the real world
• Run services off of a dedicated device without needing your
laptop
• Most ARM boards are specifically set up to easily integrate with
breadboards or with sensors
• Lots of community support and information
• They are just going to get smaller, faster and better supported
• Run a full database - can take an Informix instance in your
pocket
Ideal for the “Smart Gateway” in an
Internet of Things Solution!
11
Smart Gateway
• Somewhere to:
 Collect data
 Store data
 Make decisions
 Filter data
 Trigger other actions
 Publish data
• Receive data from
different devices
• Run analytics locally
12
Why Install a Gateway Database?
• Maintain a history
• Advanced local reporting
• Make more informed decisions locally
• Don’t need to wait to get information from the cloud
• Don’t need to rely on an Internet connection
13
Local Reporting on the Gateway
14
Why Informix?
• Over a 20 year history
• Full support from IBM
• Enterprise class database software
• Reliable & Robust
• Scalable
• Performance
• Ease of administration
• Features
 High Availability/DR
 Structured/Unstructured/Hybrid Data - Full NoSQL support – built
in JSON data types, MongoDB APIs
 REST API
 Many, many more…
15
Why Informix for IoT?
For all the same reasons, and…
• Informix TimeSeries
 Store large volumes of sensor data very efficiently
• Easily Embeddable
 No administration – DBA free
 Remote management through SQL
• Runs on low-cost hardware
 Runs on ARM (Raspberry Pi, Beaglebone Black, etc)
 Full version – no loss of features
 Small footprint – disk and memory
 OEM licensing options
16
Informix is Embeddable
• Informix includes many features that make it ideal to be the
database server embedded on an IoT gateway
 Low memory manager
 Automatically expandable/extendable disk space
 Rolling windows
 Automatic Update Statistics
 Auto Tuning
 Auto Log Rotation
 Built in scheduler
 Administration API
 Custom Deployment Installs
 …and many other features
17
Informix for ARM
• Download fully functional “Developer Edition” for free from the
IBM website
18
Sensor Data on a Gateway
• What are we going to do with this data?
• Store it in the database…using TimeSeries
19
IoT…the Problem with Data
• The Internet of Things – tens of billions of devices, each
generating many data points over time
• Storing the data efficiently is important
 Store it quickly because of high volumes
 Retrieve it quickly for useful analytics
 Maximize storage efficiency
20
Lots of Data!
• By mid-2014, 50 million Smart Meters had been installed in the
US (IEI Report, September 2014)
A single utility company with 5 million meters will still generate
over 175 billion readings each year if read every 15 minutes
21
Number of Data Points in 1 Year
Number of
Meters
Read
1 x day
Read
1 x hour
Read
1 x 15 mins
50,000,000 18,250,000,000 438,000,000,000 1,752,000,000,000
Informix TimeSeries
• TimeSeries is an efficient and fast way to store and access
datapoints that have a time component
• Stores the data elements in columnar form
• TimeSeries is included with ALL editions of Informix – it is not
an add-on
• Consider our sensor data:
 Simple data elements (temperature, humidity, light, etc)
 Readings arrive at regular intervals with timestamps
22
Sensor Data
Traditional Relational Model
23
Sensor Id 40b0a36b
Sensor Name R01
Sensor
Location
Living
Room
Sensor Id 40b0a36b
Timestamp 2014-04-14
11:30
Temperature 69.50
Sensor Id 40b0a36b
Timestamp 2014-04-14
11:31
Temperature 69.75
Sensor Id 40b0a36b
Timestamp 2014-04-14
11:32
Temperature 70.00
Parent key value
is repeated for
each reading
Do we need the
timestamp?
Overhead for
each record
saved
The value is all we
want!
Sensor Data
TimeSeries Model
• Store all of the readings in the SAME record
• Append them to the TimeSeries column
With a regular timestamp, if we know the start time of readings, we can
work out the timestamp of any reading by its offset.
Irregular TimeSeries stores the timestamp with the data
24
Sensor Id 40b0a36b
Sensor Name R01
Sensor Location Living Room
Temperature 69.50, 69.75, 70.00, …
TimeSeries
Column
What does a TimeSeries look like?
The values are stored in a single column
sensor_id 40b79f8e
xbee_name R03
sensor_location Arduino Sensor 2
sensor_data origin(2015-01-18 18:30:00.00000), calendar(ts_1min), containe
r(sensor_container), threshold(0), regular, [NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, (66.6 ,38.7 ,67 ), (
65.3 ,40.2 ,67 ), (63.9 ,42.2 ,67 ), (63.3 ,42.7 ,
66 ), (62.6 ,43.7 ,67 ), (62.1 ,45.0 ,66 ), (61.5
,45.6 ,66 ), (61.2 ,46.6 ,67 ), (60.8 ,47.1 ,67
), (60.3 ,48.1 ,67 ), (60.1 ,48.1 ,67 ), (59.7 ,4
8.2 ,67 ), (59.5 ,49.2 ,67 ), (59.4 ,48.7 ,67 ),
25
Consider our utility company with 5 million smart meters…
They will only have 5 million records in their “meter” table, regardless of
how many “readings” they store
Creating a TimeSeries
1. Create a Calendar Pattern
 Defines valid time intervals for TimeSeries data
2. Create a Calendar Table, referencing the Pattern
 Defines a calendar based on start date/time & pattern
3. Create a Row Type to store the TimeSeries
4. Create a Container for the TimeSeries data, referencing the
Row Type
 Specifies where the TimeSeries data is stored
5. Create a Table with a TimeSeries column, using the Row
Type
26
Creating a TimeSeries – Sensor Example
• Create the structures to store the sensor information and
TimeSeries
• Not creating a Calendar in this example – instead use a
predefined one when create the TimeSeries
27
Creating a TimeSeries – Row Type
create row type sensor_reading(
timestamp datetime year to fraction(5),
temperature decimal(4,1),
humidity decimal(4,1),
lightlevel smallint
);
• Define a custom row type – a structure
• Allows us to store three data values (temperature, humidity
light level) with a timestamp
28
Creating a TimeSeries - Table
create table sensor(
sensor_id char(8),
xbee_name char(3),
sensor_location char(20),
sensor_data TimeSeries(sensor_reading)
);
• Define a table to store the sensor information
• Referencing our custom row type for the sensor data
29
Creating a TimeSeries - Container
execute procedure TSContainerCreate
('sensor_container',
'sensordbs',
'sensor_reading',
256,
256);
• Defines where the TimeSeries data will be stored
• “sensordbs” is an existing DBSpace (assigned disk space)
• References our custom row type (sensor_reading)
30
Creating a TimeSeries – Create Sensor Record
insert into sensor values (
"40b79f8e",
"R03",
"Arduino Sensor 2",
TSCreate(
'ts_1min',
'2015-01-18 18:30:00.00000',
0, 0, 0,
'sensor_container'));
• Create one record for each sensor
31
Predefined calendar –
new value each minute
Creating a TimeSeries – Store Sensor Data
update sensor
set sensor_data =
PutElem(sensor_data,
row("2015-01-18 18:30:00.00000",
78.1, 45.5, 70)::sensor_reading)
where xbee_name = "R03";
• Update the appropriate sensor record with new values
32
TimeSeries – Querying the Sensor Data
• Query the table
select *
from sensor
where xbee_name matches "R03";
• The values are stored in a single column
sensor_id 40b79f8e
xbee_name R03
sensor_location Arduino Sensor 2
sensor_data origin(2015-01-18 18:30:00.00000), calendar(ts_1min), containe
r(sensor_container), threshold(0), regular, [NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, (66.6 ,38.7 ,67 ), (
65.3 ,40.2 ,67 ), (63.9 ,42.2 ,67 ), (63.3 ,42.7 ,
66 ), (62.6 ,43.7 ,67 ), (62.1 ,45.0 ,66 ), (61.5
,45.6 ,66 ), (61.2 ,46.6 ,67 ), (60.8 ,47.1 ,67
), (60.3 ,48.1 ,67 ), (60.1 ,48.1 ,67 ), (59.7 ,4
8.2 ,67 ), (59.5 ,49.2 ,67 ), (59.4 ,48.7 ,67 ),
...
33
TimeSeries – Querying the Sensor Data
• Query values for a timestamp
select
sensor_id,
xbee_name,
GetElem(sensor_data, '2015-01-18 18:40:00') as readings
from sensor
where xbee_name matches "R03";
• The values are returned as the custom row type
sensor_id 40b79f8e
xbee_name R03
readings ROW('2015-01-18 18:40:00.00000',65.3 ,40.2
,67 )
34
TimeSeries – Virtual Table Interface
• Using a Virtual Table Interface (VTI) simplifies the use of
TimeSeries data by displaying the data in a relational format
 Each TimeSeries element can be treated as a “row” of data
through the VTI
execute procedure tscreatevirtualtab(
'sensor_vti',
'sensor');
35
TimeSeries – Query the VTI
select *
from sensor_vti
where sensor_location = "Arduino Sensor 2"
sensor_id 40b79f8e
xbee_name R03
sensor_location Arduino Sensor 2
timestamp 2015-01-18 18:39:00.00000
temperature 66.6
humidity 38.7
lightlevel 67
sensor_id 40b79f8e
xbee_name R03
sensor_location Arduino Sensor 2
timestamp 2015-01-18 18:40:00.00000
temperature 65.3
humidity 40.2
lightlevel 67
36
Timestamps
and data
values broken
into individual
records
Looks Relational!
TimeSeries – Row Type
• The Row Type in the example allows us to store three values:
 Temperature
 Humidity
 Light Level
• Some sensors may not send all of the values – for example, may
just send the temperature
 Lots of NULL values in the TimeSeries
... (69.6 ,NULL,NULL), (69.1 ,NULL,NULL), (69.8 ,N
ULL,NULL), (69.6 ,NULL,NULL), (69.6 ,NULL,NULL), (69.6 ,NUL
L,NULL), (69.6 ,NULL,NULL), (69.6 ,NULL,NULL), (69.6 ,NULL,
NULL), (69.6 ,NULL,NULL), (69.8 ,NULL,NULL),
• What if I want to add a new sensor type – for example, “Volume
Level”?
37
Need to be able to store
Unstructured Data
Unstructured Data
• Schema is not rigidly defined
• JSON & NoSQL Documents
• Uses key value pairs, for example:
{"data": {"temperature": 70.2, "humidity": 45.0}}
Informix includes a native JSON data type
38
MongoDB
• MongoDB is a popular document-orientated, NoSQL database
• Informix supports connections from Mongo based applications
• Uses a wire listener to allow connectivity
• Example: Connect from the mongo shell to an Informix
database
39
REST API
• Can use a REST API to work with an Informix database
• Driverless access
• Uses a wire listener
• Example: Connect from a browser to an Informix database
http://10.10.10.20:27018/sysmaster/systables?query={tabid:{$lte:5}
}&fields={tabname:1}&sort={tabname:-1}
40
TimeSeries and JSON
• As of Informix 12.10.xC4, TimeSeries supports unstructured
data
create row type sensor_info
(
timestamp datetime year to fraction(5),
values bson
);
create table sensor2 (
sensor_id char(20),
sensor_type char(15),
sensor_data timeseries(sensor_info),
primary key (sensor_id)
);
41
TimeSeries and JSON
• Store different types of readings in the same record structure within
TimeSeries, using key-value pairs:
sensor_id 1
sensor_type Temp+Humidity
sensor_data origin(2015-09-18 14:30:00.00000), calendar(ts_1min), container(se
nsor2_data_container), threshold(0), regular, [('{"temperature":70
,"humidity":45}'), ('{"temperature":71,"humidity":43}'), ('{"tempe
rature":72,"humidity":40}')]
sensor_id 2
sensor_type Temp
sensor_data origin(2015-09-18 14:30:00.00000), calendar(ts_1min), container(se
nsor2_data_container), threshold(0), regular, [('{"temperature":82
}'), ('{"temperature":78}'), ('{"temperature":80}')]
sensor_id 3
sensor_type Sound
sensor_data origin(2015-09-18 14:30:00.00000), calendar(ts_1min), container(se
nsor2_data_container), threshold(0), regular, [('{"volume":5}'), (
'{"volume":15}'), ('{"volume":12}')]
42
IBM Internet of Things Foundation
• IBM have created their own, cloud-hosted service for IoT
• Part of the IBM Bluemix platform
43
Bluemix
Cloud based services
Pick and choose what you want
IBM Internet of Things Foundation
IoTF on Bluemix
44
Add the Internet of
Things Service
IBM Internet of Things Foundation
• Register a Device
• Publish events using MQTT protocol
45
Putting it all Together!
• We have covered:
 Sensors/Microcontrollers
 ARM
 Smart Gateway
 Local Informix Database
 TimeSeries
 Unstructured Data
 Mongo and REST API Database Connectivity
 Internet of Things Foundation on Bluemix
Now to put it all together for our IoT Solution!
46
Node-RED
• Graphical tool – run in a browser
• Use to put together data flows and apply operations
• Additional “nodes” can be added to increase the functionality
• Custom “nodes” can be written
47
Node-RED
IoT Solution with (almost) no programming!
48
Subscribe to
MQTT topic
Insert into
local Informix
TimeSeries
Push to IoTF
in Bluemix
Incoming Sensor Data
• The sensors are connected wirelessly (WiFi)
• They are publishing data to a message broker using MQTT
• The broker is running on a Raspberry Pi 2
49
Broker
Subscriber
SubscriberPublisher
Publisher
MQTT
MQTT Topic – Incoming Data
50
topic/sensor {"id":"78c40e02b7c5","v":{"t":85.7,"h":
25,"l": 3.1,"p":74631,"b": 8.33}}
topic/sensor {"id":"78c40e02b7c5","v":{"t":85.8,"h":
25,"l": 3.1,"p":74634,"b": 8.31}}
topic/sensor {"id":"78c40e02b7c5","v":{"t":85.8,"h":
25,"l": 3.1,"p":74635,"b": 8.34}}
topic/sensor {"id":"78c40e02b7c5","v":{"t":85.9,"h":
25,"l": 3.1,"p":74637,"b": 8.31}}
topic/sensor {"id":"78c40e02b7c5","v":{"t":85.9,"h":
25,"l": 3.1,"p":74637,"b": 8.34}}
Node-RED subscribes to this
same topic with the MQTT node
to receive the sensor data
Write to a Local Database
51
Node-RED uses the
timeseries-out node to write
reformatted data to a local
Informix database
• The TimeSeries node uses the REST API to write to the local
database
• The database and table must already exist
• A virtual table will be created automatically against the
underlying table
Query the Sensor Data in the Database
• Example using the Mongo syntax:
db.sensor_v.find({sensor_id:"78c40e02b7c5",
timestamp: {$gt:"2015-09-18
17:50:42.00000"}}).sort({timestamp:-1}).limit(1)
{
"sensor_id" : "78c40e02b7c5",
"timestamp" : ISODate("2015-09-
18T23:56:21.000Z"),
"values" : {
"temp" : 81.9000000000000060,
"humidity" : 27,
"light" : 0.8000000000000000,
"pressure" : 74740,
"battery" : 8.3399999999999999
}
}
52
Query the Sensor Data in the Database
• Example using dbaccess:
select
clip(
sensor_data,
CURRENT - 15 units second,
CURRENT,
0) data
from sensor
where sensor_id = "78c40e02b7c5";
data origin(2015-09-18 21:24:28.00000), calendar(ts_1sec), container(sensor_da
ta_container), threshold(0), irregular, [('{"temp":75.5,"humidity":32,"li
ght":0.2,"pressure":74878,"battery":8.34}')@2015-09-18 21:24:28.00000, ('
{"temp":75.5,"humidity":32,"light":0.2,"pressure":74877,"battery":8.34}')
@2015-09-18 21:24:31.00000, ('{"temp":75.40000000000001,"humidity":32,"li
ght":0.2,"pressure":74876,"battery":8.34}')@2015-09-18 21:24:35.00000, ('
{"temp":75.40000000000001,"humidity":32,"light":0.2,"pressure":74875,"bat
tery":8.34}')@2015-09-18 21:24:41.00000]
53
Note the irregular TimeSeries –
each reading has a timestamp
Push Data to the IoT Foundation in Bluemix
• Must have a Bluemix account (free)
• Must have added the “Internet of
Things” Service
54
Node-RED uses the ibmiot
out node to push to the IoT
Foundation in Bluemix
Push Data to the IoT Foundation in Bluemix
55
View the recent
events using the
Bluemix Console
Query Data in the IoT Foundation in Bluemix
• Use the REST API to:
 Register/Unregister a device
 Update/View a device
 Retrieve historical data
• Example:
https://<orgid>.internetofthings.ibmcloud.com/api/v0002/historian/ty
pes/Arduino/devices/78c40e02b7c5
56
Query Data in the IoT Foundation in Bluemix
{
"events": [
{
"device_type": "Arduino",
"device_id": "78c40e02b7c5",
"evt_type": "sensor-event",
"timestamp": {
"$date": 1442629738722
},
"evt": {
"temp": 77,
"humidity": 29,
"light": 0.1,
"pressure": 74874,
"battery": 8.34
}
},
...
57
Bluemix Apps
• Can create an app and “push” it to Bluemix
• Example Visualization app uses node.js
• Download from github:
https://github.com/ibm-messaging/iot-visualization
• Create a “SDK for node.js” app on
Bluemix
• Push the downloaded app to
Bluemix
• Link the App to the
Internet of Things Service
58
Shows node.js
app linked to
IoTF
Bluemix Apps
http://vizualize.mybluemix.net/dashboard
59
Use Node-RED to Pull from Bluemix IoTF
• Use the ibmiot in node to pull from Bluemix
• Use the iot-datasource node to graph the data
60
Use Node-RED Graphing Node
http://10.10.10.20:1880/dash/
61
More Resources
• Webcasts covering Informix, ARM, Internet of Things:
http://advancedatatools.com/Informix/Webcasts.html
• Compare Informix versions:
http://www.ibm.com/developerworks/data/library/techarticle/dm-
0801doe/
• Docker Site:
https://hub.docker.com/r/ibmcom/informix-innovator-c/
• Advanced DataToolsTraining:
http://advancedatatools.com/Training/InformixTraining.html
62
63
Informix Support and Training from the Informix Champions!
Advanced DataTools is an Advanced Level IBM Informix Data Management Partner, and has been an authorized
Informix partner since 1993. We have a long-term relationship with IBM, we have priority access to high-level support
staff, technical information, and Beta programs. Our team has been working with Informix since its inception, and
includes 8 Senior Informix Database Consultants, 4 IBM Champions, 2 IIUG Director’s Award winners, and an IBM
Gold Consultant.
• Informix Training
• Informix Consulting
• Informix Development
• Informix Remote DBA Support Monitoring
• Informix Performance Tuning
Free Informix Performance Tuning Webcast replays at:
http://advancedatatools.com/Informix/Webcasts.html
Call: (800) 807-6732 x101 or Email: info@advancedatatools.com
Web: http://www.advancedatatools.com
We Value Your Feedback!
Don’t forget to submit your Insight session and speaker
feedback! Your feedback is very important to us – we use it
to continually improve the conference.
Access your surveys at insight2015survey.com to quickly
submit your surveys from your smartphone, laptop or
conference kiosk.
64
65
Notices and Disclaimers
Copyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form
without written permission from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for
accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to
update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO
EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO,
LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted
according to the terms and conditions of the agreements under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as
illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other
results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services
available in all countries in which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the
views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or
other guidance or advice to any individual participant or their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the
identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the
customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will
ensure that the customer is in compliance with any law.
66
Notices and Disclaimers (con’t)
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly
available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance,
compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the
suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to
interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights,
trademarks or other intellectual property right.
• IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document
Management System™, FASP®, FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM
SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON,
OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®,
pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ,
Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of
International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at:
www.ibm.com/legal/copytrade.shtml.
© 2015 IBM Corporation
Thank You

Más contenido relacionado

La actualidad más candente

IBM Informix - What's new in 12.10.xc7
IBM Informix - What's new in 12.10.xc7IBM Informix - What's new in 12.10.xc7
IBM Informix - What's new in 12.10.xc7Pradeep Natarajan
 
12 Ways to Use PLCs & SQL Databases Together
12 Ways to Use PLCs & SQL Databases Together12 Ways to Use PLCs & SQL Databases Together
12 Ways to Use PLCs & SQL Databases TogetherInductive Automation
 
Processing IoT Data with Apache Kafka
Processing IoT Data with Apache KafkaProcessing IoT Data with Apache Kafka
Processing IoT Data with Apache KafkaMatthew Howlett
 
Data Centric Transformation in Telecom
Data Centric Transformation in TelecomData Centric Transformation in Telecom
Data Centric Transformation in TelecomDataWorks Summit
 
Q radar architecture deep dive
Q radar architecture   deep diveQ radar architecture   deep dive
Q radar architecture deep diveKamal Mouline
 
5 Paths to HPC - SUSE
5 Paths to HPC - SUSE5 Paths to HPC - SUSE
5 Paths to HPC - SUSEJeff Reser
 
Data Acquisition and Control
Data Acquisition and Control Data Acquisition and Control
Data Acquisition and Control ICP DAS USA, Inc.
 
Historian & Live Dashboard
Historian & Live DashboardHistorian & Live Dashboard
Historian & Live DashboardAvanceon-Lahore
 
Pushing the Boundaries of Data Visualization
Pushing the Boundaries of Data VisualizationPushing the Boundaries of Data Visualization
Pushing the Boundaries of Data VisualizationInductive Automation
 
Real-time analysis using an in-memory data grid - Cloud Expo 2013
Real-time analysis using an in-memory data grid - Cloud Expo 2013Real-time analysis using an in-memory data grid - Cloud Expo 2013
Real-time analysis using an in-memory data grid - Cloud Expo 2013ScaleOut Software
 
ZigBee Wireless Data Acquisition Technology
ZigBee Wireless Data Acquisition TechnologyZigBee Wireless Data Acquisition Technology
ZigBee Wireless Data Acquisition TechnologyICP DAS USA, Inc.
 
IBM SoftLayer - overview of Cloud Infrastructure
IBM SoftLayer - overview of Cloud Infrastructure IBM SoftLayer - overview of Cloud Infrastructure
IBM SoftLayer - overview of Cloud Infrastructure Avinaba Basu
 
Data Acquisition Automation for NiFi in a Hybrid Cloud environment – the Path...
Data Acquisition Automation for NiFi in a Hybrid Cloud environment – the Path...Data Acquisition Automation for NiFi in a Hybrid Cloud environment – the Path...
Data Acquisition Automation for NiFi in a Hybrid Cloud environment – the Path...DataWorks Summit
 
Cloud Architecture in the Data Center
Cloud Architecture in the Data CenterCloud Architecture in the Data Center
Cloud Architecture in the Data CenterInterVision Systems
 
Building Blocks for Hybrid IT
Building Blocks for Hybrid ITBuilding Blocks for Hybrid IT
Building Blocks for Hybrid ITRightScale
 
Analytics with unified file and object
Analytics with unified file and object Analytics with unified file and object
Analytics with unified file and object Sandeep Patil
 

La actualidad más candente (20)

IBM Informix - What's new in 12.10.xc7
IBM Informix - What's new in 12.10.xc7IBM Informix - What's new in 12.10.xc7
IBM Informix - What's new in 12.10.xc7
 
12 Ways to Use PLCs & SQL Databases Together
12 Ways to Use PLCs & SQL Databases Together12 Ways to Use PLCs & SQL Databases Together
12 Ways to Use PLCs & SQL Databases Together
 
inmation Presentation_2017
inmation Presentation_2017inmation Presentation_2017
inmation Presentation_2017
 
Edge comp
Edge compEdge comp
Edge comp
 
Omc AMIS evenement 26012017 Dennis van Soest
Omc AMIS evenement 26012017 Dennis van SoestOmc AMIS evenement 26012017 Dennis van Soest
Omc AMIS evenement 26012017 Dennis van Soest
 
Processing IoT Data with Apache Kafka
Processing IoT Data with Apache KafkaProcessing IoT Data with Apache Kafka
Processing IoT Data with Apache Kafka
 
Data Centric Transformation in Telecom
Data Centric Transformation in TelecomData Centric Transformation in Telecom
Data Centric Transformation in Telecom
 
Q radar architecture deep dive
Q radar architecture   deep diveQ radar architecture   deep dive
Q radar architecture deep dive
 
5 Paths to HPC - SUSE
5 Paths to HPC - SUSE5 Paths to HPC - SUSE
5 Paths to HPC - SUSE
 
Data Acquisition and Control
Data Acquisition and Control Data Acquisition and Control
Data Acquisition and Control
 
Historian & Live Dashboard
Historian & Live DashboardHistorian & Live Dashboard
Historian & Live Dashboard
 
Chapter 10
Chapter 10Chapter 10
Chapter 10
 
Pushing the Boundaries of Data Visualization
Pushing the Boundaries of Data VisualizationPushing the Boundaries of Data Visualization
Pushing the Boundaries of Data Visualization
 
Real-time analysis using an in-memory data grid - Cloud Expo 2013
Real-time analysis using an in-memory data grid - Cloud Expo 2013Real-time analysis using an in-memory data grid - Cloud Expo 2013
Real-time analysis using an in-memory data grid - Cloud Expo 2013
 
ZigBee Wireless Data Acquisition Technology
ZigBee Wireless Data Acquisition TechnologyZigBee Wireless Data Acquisition Technology
ZigBee Wireless Data Acquisition Technology
 
IBM SoftLayer - overview of Cloud Infrastructure
IBM SoftLayer - overview of Cloud Infrastructure IBM SoftLayer - overview of Cloud Infrastructure
IBM SoftLayer - overview of Cloud Infrastructure
 
Data Acquisition Automation for NiFi in a Hybrid Cloud environment – the Path...
Data Acquisition Automation for NiFi in a Hybrid Cloud environment – the Path...Data Acquisition Automation for NiFi in a Hybrid Cloud environment – the Path...
Data Acquisition Automation for NiFi in a Hybrid Cloud environment – the Path...
 
Cloud Architecture in the Data Center
Cloud Architecture in the Data CenterCloud Architecture in the Data Center
Cloud Architecture in the Data Center
 
Building Blocks for Hybrid IT
Building Blocks for Hybrid ITBuilding Blocks for Hybrid IT
Building Blocks for Hybrid IT
 
Analytics with unified file and object
Analytics with unified file and object Analytics with unified file and object
Analytics with unified file and object
 

Destacado

What's new in IBM Informix 12.1?
What's new in IBM Informix 12.1?What's new in IBM Informix 12.1?
What's new in IBM Informix 12.1?Keshav Murthy
 
Tokyo Cassandra Summit 2014: Tunable Consistency by Al Tobey
Tokyo Cassandra Summit 2014: Tunable Consistency by Al TobeyTokyo Cassandra Summit 2014: Tunable Consistency by Al Tobey
Tokyo Cassandra Summit 2014: Tunable Consistency by Al TobeyDataStax Academy
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlPradip Bhandari
 
Time Series Data in a Time Series World
Time Series Data in a Time Series WorldTime Series Data in a Time Series World
Time Series Data in a Time Series WorldMapR Technologies
 
Introduction to ibm internet of things foundation
Introduction to ibm internet of things foundationIntroduction to ibm internet of things foundation
Introduction to ibm internet of things foundationBernard Kufluk
 
20161227 Taipei Smart IOT Innovation Lab workshop
20161227 Taipei Smart IOT Innovation Lab workshop20161227 Taipei Smart IOT Innovation Lab workshop
20161227 Taipei Smart IOT Innovation Lab workshopHu-Cheng Lee
 
Internet of Things and IBM
Internet of Things and IBMInternet of Things and IBM
Internet of Things and IBMArrow ECS UK
 
IoT SMART BUS WITH LoRa
IoT SMART BUS WITH LoRaIoT SMART BUS WITH LoRa
IoT SMART BUS WITH LoRaJosh Lrt
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOKris Findlay
 
Cc internet of things LoRa and IoT - Innovation Enablers
Cc internet of things   LoRa and IoT - Innovation Enablers Cc internet of things   LoRa and IoT - Innovation Enablers
Cc internet of things LoRa and IoT - Innovation Enablers JWORKS powered by Ordina
 
02 Raspberry Pi GPIO Interface on Node-RED (Some correction)
02 Raspberry Pi GPIO Interface on Node-RED (Some correction)02 Raspberry Pi GPIO Interface on Node-RED (Some correction)
02 Raspberry Pi GPIO Interface on Node-RED (Some correction)Mr.Nukoon Phimsen
 
Intro Lora - Makers.ID Meetup
Intro Lora - Makers.ID MeetupIntro Lora - Makers.ID Meetup
Intro Lora - Makers.ID MeetupMif Masterz
 
Comarch BLE & LoRa devices
Comarch BLE & LoRa devices Comarch BLE & LoRa devices
Comarch BLE & LoRa devices Comarch
 
ML on Big Data: Real-Time Analysis on Time Series
ML on Big Data: Real-Time Analysis on Time SeriesML on Big Data: Real-Time Analysis on Time Series
ML on Big Data: Real-Time Analysis on Time SeriesSigmoid
 
Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT광운 이
 
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜SORACOM,INC
 

Destacado (20)

What's new in IBM Informix 12.1?
What's new in IBM Informix 12.1?What's new in IBM Informix 12.1?
What's new in IBM Informix 12.1?
 
Tokyo Cassandra Summit 2014: Tunable Consistency by Al Tobey
Tokyo Cassandra Summit 2014: Tunable Consistency by Al TobeyTokyo Cassandra Summit 2014: Tunable Consistency by Al Tobey
Tokyo Cassandra Summit 2014: Tunable Consistency by Al Tobey
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin Control
 
Time Series Data in a Time Series World
Time Series Data in a Time Series WorldTime Series Data in a Time Series World
Time Series Data in a Time Series World
 
Introduction to ibm internet of things foundation
Introduction to ibm internet of things foundationIntroduction to ibm internet of things foundation
Introduction to ibm internet of things foundation
 
20161227 Taipei Smart IOT Innovation Lab workshop
20161227 Taipei Smart IOT Innovation Lab workshop20161227 Taipei Smart IOT Innovation Lab workshop
20161227 Taipei Smart IOT Innovation Lab workshop
 
MQTT
MQTTMQTT
MQTT
 
Internet of Things and IBM
Internet of Things and IBMInternet of Things and IBM
Internet of Things and IBM
 
Data manipulation with RapidMiner Studio 7
Data manipulation with RapidMiner Studio 7Data manipulation with RapidMiner Studio 7
Data manipulation with RapidMiner Studio 7
 
IoT SMART BUS WITH LoRa
IoT SMART BUS WITH LoRaIoT SMART BUS WITH LoRa
IoT SMART BUS WITH LoRa
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIO
 
Cc internet of things LoRa and IoT - Innovation Enablers
Cc internet of things   LoRa and IoT - Innovation Enablers Cc internet of things   LoRa and IoT - Innovation Enablers
Cc internet of things LoRa and IoT - Innovation Enablers
 
02 Raspberry Pi GPIO Interface on Node-RED (Some correction)
02 Raspberry Pi GPIO Interface on Node-RED (Some correction)02 Raspberry Pi GPIO Interface on Node-RED (Some correction)
02 Raspberry Pi GPIO Interface on Node-RED (Some correction)
 
Intro Lora - Makers.ID Meetup
Intro Lora - Makers.ID MeetupIntro Lora - Makers.ID Meetup
Intro Lora - Makers.ID Meetup
 
Comarch BLE & LoRa devices
Comarch BLE & LoRa devices Comarch BLE & LoRa devices
Comarch BLE & LoRa devices
 
Something about Kafka - Why Kafka is so fast
Something about Kafka - Why Kafka is so fastSomething about Kafka - Why Kafka is so fast
Something about Kafka - Why Kafka is so fast
 
ML on Big Data: Real-Time Analysis on Time Series
ML on Big Data: Real-Time Analysis on Time SeriesML on Big Data: Real-Time Analysis on Time Series
ML on Big Data: Real-Time Analysis on Time Series
 
Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT
 
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
 

Similar a Informix on ARM and informix Timeseries - producing an Internet-of-Things solution

Ibm_IoT_Architecture_and_Capabilities
Ibm_IoT_Architecture_and_CapabilitiesIbm_IoT_Architecture_and_Capabilities
Ibm_IoT_Architecture_and_CapabilitiesIBM_Info_Management
 
TM4C-IoT-Gateway-with-Security-Protection_0.pdf
TM4C-IoT-Gateway-with-Security-Protection_0.pdfTM4C-IoT-Gateway-with-Security-Protection_0.pdf
TM4C-IoT-Gateway-with-Security-Protection_0.pdfssuser8b324e
 
IBM IoT Architecture and Capabilities at the Edge and Cloud
IBM IoT Architecture and Capabilities at the Edge and Cloud IBM IoT Architecture and Capabilities at the Edge and Cloud
IBM IoT Architecture and Capabilities at the Edge and Cloud Pradeep Natarajan
 
HOME AUTOMATION USING INTERNET OF THINGS.pptx
HOME AUTOMATION USING INTERNET OF THINGS.pptxHOME AUTOMATION USING INTERNET OF THINGS.pptx
HOME AUTOMATION USING INTERNET OF THINGS.pptxKhanArshidIqbal
 
IoT, ready for business
IoT, ready for businessIoT, ready for business
IoT, ready for businessJon Mikel Inza
 
Nodemcu and IOT.pptx
Nodemcu and IOT.pptxNodemcu and IOT.pptx
Nodemcu and IOT.pptxDixonSunny2
 
iot enabling technologies for IOT subject
iot enabling technologies for IOT subjectiot enabling technologies for IOT subject
iot enabling technologies for IOT subjectKotiBabu7
 
IoT Enabling Technologies
IoT Enabling TechnologiesIoT Enabling Technologies
IoT Enabling TechnologiesPrakash Honnur
 
Gustavo Zastrow - Introduction to AWS IoT Core and MQTT
Gustavo Zastrow - Introduction to AWS  IoT Core and MQTTGustavo Zastrow - Introduction to AWS  IoT Core and MQTT
Gustavo Zastrow - Introduction to AWS IoT Core and MQTTGustavoRuizZastrow
 
LCA13: Jason Taylor Keynote - ARM & Disaggregated Rack - LCA13-Hong - 6 March...
LCA13: Jason Taylor Keynote - ARM & Disaggregated Rack - LCA13-Hong - 6 March...LCA13: Jason Taylor Keynote - ARM & Disaggregated Rack - LCA13-Hong - 6 March...
LCA13: Jason Taylor Keynote - ARM & Disaggregated Rack - LCA13-Hong - 6 March...Linaro
 
Why Gateways are Important in Your IoT Architecture
Why Gateways are Important in Your IoT ArchitectureWhy Gateways are Important in Your IoT Architecture
Why Gateways are Important in Your IoT ArchitectureIBM Analytics
 
Intro to InfluxDB
Intro to InfluxDBIntro to InfluxDB
Intro to InfluxDBInfluxData
 
Code PaLOUsa Azure IoT Workshop
Code PaLOUsa Azure IoT WorkshopCode PaLOUsa Azure IoT Workshop
Code PaLOUsa Azure IoT WorkshopMike Branstein
 
Iot meets Serverless
Iot meets ServerlessIot meets Serverless
Iot meets ServerlessNarendran R
 
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDB
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDBMongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDB
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDBMongoDB
 

Similar a Informix on ARM and informix Timeseries - producing an Internet-of-Things solution (20)

Ibm_IoT_Architecture_and_Capabilities
Ibm_IoT_Architecture_and_CapabilitiesIbm_IoT_Architecture_and_Capabilities
Ibm_IoT_Architecture_and_Capabilities
 
Smart building mendix azure influx / smart City / IoT
Smart building mendix azure influx  / smart  City / IoT Smart building mendix azure influx  / smart  City / IoT
Smart building mendix azure influx / smart City / IoT
 
Chap003
Chap003Chap003
Chap003
 
TM4C-IoT-Gateway-with-Security-Protection_0.pdf
TM4C-IoT-Gateway-with-Security-Protection_0.pdfTM4C-IoT-Gateway-with-Security-Protection_0.pdf
TM4C-IoT-Gateway-with-Security-Protection_0.pdf
 
IBM IoT Architecture and Capabilities at the Edge and Cloud
IBM IoT Architecture and Capabilities at the Edge and Cloud IBM IoT Architecture and Capabilities at the Edge and Cloud
IBM IoT Architecture and Capabilities at the Edge and Cloud
 
HOME AUTOMATION USING INTERNET OF THINGS.pptx
HOME AUTOMATION USING INTERNET OF THINGS.pptxHOME AUTOMATION USING INTERNET OF THINGS.pptx
HOME AUTOMATION USING INTERNET OF THINGS.pptx
 
IoT, ready for business
IoT, ready for businessIoT, ready for business
IoT, ready for business
 
Nodemcu and IOT.pptx
Nodemcu and IOT.pptxNodemcu and IOT.pptx
Nodemcu and IOT.pptx
 
iot enabling technologies for IOT subject
iot enabling technologies for IOT subjectiot enabling technologies for IOT subject
iot enabling technologies for IOT subject
 
IoT Enabling Technologies
IoT Enabling TechnologiesIoT Enabling Technologies
IoT Enabling Technologies
 
Gustavo Zastrow - Introduction to AWS IoT Core and MQTT
Gustavo Zastrow - Introduction to AWS  IoT Core and MQTTGustavo Zastrow - Introduction to AWS  IoT Core and MQTT
Gustavo Zastrow - Introduction to AWS IoT Core and MQTT
 
LCA13: Jason Taylor Keynote - ARM & Disaggregated Rack - LCA13-Hong - 6 March...
LCA13: Jason Taylor Keynote - ARM & Disaggregated Rack - LCA13-Hong - 6 March...LCA13: Jason Taylor Keynote - ARM & Disaggregated Rack - LCA13-Hong - 6 March...
LCA13: Jason Taylor Keynote - ARM & Disaggregated Rack - LCA13-Hong - 6 March...
 
Why Gateways are Important in Your IoT Architecture
Why Gateways are Important in Your IoT ArchitectureWhy Gateways are Important in Your IoT Architecture
Why Gateways are Important in Your IoT Architecture
 
IoT and Its Application
IoT and Its ApplicationIoT and Its Application
IoT and Its Application
 
I learning lot
I learning lotI learning lot
I learning lot
 
Intro to InfluxDB
Intro to InfluxDBIntro to InfluxDB
Intro to InfluxDB
 
Code PaLOUsa Azure IoT Workshop
Code PaLOUsa Azure IoT WorkshopCode PaLOUsa Azure IoT Workshop
Code PaLOUsa Azure IoT Workshop
 
Iot meets Serverless
Iot meets ServerlessIot meets Serverless
Iot meets Serverless
 
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDB
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDBMongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDB
MongoDB.local Atlanta: MongoDB @ Sensus: Xylem IoT and MongoDB
 
iot unit1.pdf
iot unit1.pdfiot unit1.pdf
iot unit1.pdf
 

Más de IBM_Info_Management

World of Watson - DB2 for Linux, UNIX and Windows Roadmap
World of Watson - DB2 for Linux, UNIX and Windows RoadmapWorld of Watson - DB2 for Linux, UNIX and Windows Roadmap
World of Watson - DB2 for Linux, UNIX and Windows RoadmapIBM_Info_Management
 
Security best practices for informix
Security best practices for informixSecurity best practices for informix
Security best practices for informixIBM_Info_Management
 
Leveraging compute power at the edge - M2M solutions with Informix in the IoT...
Leveraging compute power at the edge - M2M solutions with Informix in the IoT...Leveraging compute power at the edge - M2M solutions with Informix in the IoT...
Leveraging compute power at the edge - M2M solutions with Informix in the IoT...IBM_Info_Management
 
Always on high availability best practices for informix
Always on high availability best practices for informixAlways on high availability best practices for informix
Always on high availability best practices for informixIBM_Info_Management
 
End-to-end solution demonstration: From concept to delivery-Intel/IBM
End-to-end solution demonstration: From concept to delivery-Intel/IBMEnd-to-end solution demonstration: From concept to delivery-Intel/IBM
End-to-end solution demonstration: From concept to delivery-Intel/IBMIBM_Info_Management
 
Business value Drivers for IoT Solutions
Business value Drivers for IoT SolutionsBusiness value Drivers for IoT Solutions
Business value Drivers for IoT SolutionsIBM_Info_Management
 

Más de IBM_Info_Management (6)

World of Watson - DB2 for Linux, UNIX and Windows Roadmap
World of Watson - DB2 for Linux, UNIX and Windows RoadmapWorld of Watson - DB2 for Linux, UNIX and Windows Roadmap
World of Watson - DB2 for Linux, UNIX and Windows Roadmap
 
Security best practices for informix
Security best practices for informixSecurity best practices for informix
Security best practices for informix
 
Leveraging compute power at the edge - M2M solutions with Informix in the IoT...
Leveraging compute power at the edge - M2M solutions with Informix in the IoT...Leveraging compute power at the edge - M2M solutions with Informix in the IoT...
Leveraging compute power at the edge - M2M solutions with Informix in the IoT...
 
Always on high availability best practices for informix
Always on high availability best practices for informixAlways on high availability best practices for informix
Always on high availability best practices for informix
 
End-to-end solution demonstration: From concept to delivery-Intel/IBM
End-to-end solution demonstration: From concept to delivery-Intel/IBMEnd-to-end solution demonstration: From concept to delivery-Intel/IBM
End-to-end solution demonstration: From concept to delivery-Intel/IBM
 
Business value Drivers for IoT Solutions
Business value Drivers for IoT SolutionsBusiness value Drivers for IoT Solutions
Business value Drivers for IoT Solutions
 

Último

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
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
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Último (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
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
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

Informix on ARM and informix Timeseries - producing an Internet-of-Things solution

  • 1. © 2015 IBM Corporation Informix on ARM and Informix TimeSeries: Producing an Internet of Things Solution – DMX-2350 Mike Walker/ 28th October 2015
  • 2. Mike Walker 1 Mike Walker has been using Informix databases for over 20 years, as a developer and as a database administrator. Recently Mike has primary responsibility for Advanced DataTools Remote Monitoring Systems. Contact Info: mike@advancedatatools.com www.advancedatatools.com Office: 303-838-0869 Cell: 303-909-4265
  • 3. Internet of Things (IoT) • Connecting together the Physical and Digital World • Built around sensors and smart gateways • Consumer Examples of “smart” devices:  Thermostats  Door Locks  Lightbulbs,  Etc. 2 All connected…and all accessible with a smartphone
  • 5. How the Pieces Fit Together 4 Smart Gateway Cloud Sensors Microcontroller Microcontroller Actuators Lights, etc Data Collection Some local processing Control of remote devices Data Storage Web access Database Analytics Decision Making Data Storage Web access from anywhere Apps
  • 6. Microcontroller Boards • Electronics board with a microcontroller • Can bridge the gap between the physical world around you and computers • Input and Output pins  Read values from the environment  Turn things on and off • Programmable • Generally cheap  Intel Edison  Pickaxe  Arduino  ESP8266  Many, many others… 5
  • 7. Arduino • Electronics board & microcontroller • Cheap ($2-75 depending on version) • Programming language (based on Wiring) • Arduino is Open Source/Open Hardware • Many different varieties and clones 6 void setup(){ // declare the LED pins as outputs pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); // declare the switch pin as an input pinMode(2,INPUT); } Sparkfun RedBoard programmed with Arduino
  • 8. Arduino • Use as a platform for sensors • Add “shields” for additional functions and sensors 7 Arduino with WiFi shield and Weather Shield: • Temperature • Humidity • Light • GPS • Pressure/Altimeter
  • 9. What is ARM? • RISC based chipset • Small, Low Power, low heat • Non x86 architecture • Runs Linux, BSD and Android • Most phones, tablets are built on ARM processors • The designs are owned by ARM Holdings out of Cambridge England • Licensed to third party manufacturers to generate a variety of chip types based on ARM • Number of low-cost, ARM based, linux computers available  Raspberry Pi  Beaglebone Black  CubieTruck  Others… 8
  • 10. Raspberry Pi • Several models, A and B, B2 for $25 - $40 • Raspberry Pi 2 Model B has 1 GB RAM • 700-900mhz • SD Card Slot (MicroSD on the + models) • 10/100 Ethernet on B models • Onboard GPU with HDMI out and H.264 support  Plug it into a monitor/TV 9 Raspberry Pi is a trademark of the Raspberry Pi Foundation
  • 11. Beaglebone Black • Price: $55 • 1Ghz A8 (v7 of ARM) • 512 RAM • 4 GB Onboard Storage, microSD card slot • 10/100 Ethernet • MicroHDMI out with GPU support • Built in private networking via USB 10 BeagleBone is a trademark of BeagleBoard.org
  • 12. ARM Powered Linux Computers – Why Should you Care? • Small, low power, low cost, low heat. • Easily scalable horizontally • Useful to manage sensors or more complex tasks interacting with the real world • Run services off of a dedicated device without needing your laptop • Most ARM boards are specifically set up to easily integrate with breadboards or with sensors • Lots of community support and information • They are just going to get smaller, faster and better supported • Run a full database - can take an Informix instance in your pocket Ideal for the “Smart Gateway” in an Internet of Things Solution! 11
  • 13. Smart Gateway • Somewhere to:  Collect data  Store data  Make decisions  Filter data  Trigger other actions  Publish data • Receive data from different devices • Run analytics locally 12
  • 14. Why Install a Gateway Database? • Maintain a history • Advanced local reporting • Make more informed decisions locally • Don’t need to wait to get information from the cloud • Don’t need to rely on an Internet connection 13
  • 15. Local Reporting on the Gateway 14
  • 16. Why Informix? • Over a 20 year history • Full support from IBM • Enterprise class database software • Reliable & Robust • Scalable • Performance • Ease of administration • Features  High Availability/DR  Structured/Unstructured/Hybrid Data - Full NoSQL support – built in JSON data types, MongoDB APIs  REST API  Many, many more… 15
  • 17. Why Informix for IoT? For all the same reasons, and… • Informix TimeSeries  Store large volumes of sensor data very efficiently • Easily Embeddable  No administration – DBA free  Remote management through SQL • Runs on low-cost hardware  Runs on ARM (Raspberry Pi, Beaglebone Black, etc)  Full version – no loss of features  Small footprint – disk and memory  OEM licensing options 16
  • 18. Informix is Embeddable • Informix includes many features that make it ideal to be the database server embedded on an IoT gateway  Low memory manager  Automatically expandable/extendable disk space  Rolling windows  Automatic Update Statistics  Auto Tuning  Auto Log Rotation  Built in scheduler  Administration API  Custom Deployment Installs  …and many other features 17
  • 19. Informix for ARM • Download fully functional “Developer Edition” for free from the IBM website 18
  • 20. Sensor Data on a Gateway • What are we going to do with this data? • Store it in the database…using TimeSeries 19
  • 21. IoT…the Problem with Data • The Internet of Things – tens of billions of devices, each generating many data points over time • Storing the data efficiently is important  Store it quickly because of high volumes  Retrieve it quickly for useful analytics  Maximize storage efficiency 20
  • 22. Lots of Data! • By mid-2014, 50 million Smart Meters had been installed in the US (IEI Report, September 2014) A single utility company with 5 million meters will still generate over 175 billion readings each year if read every 15 minutes 21 Number of Data Points in 1 Year Number of Meters Read 1 x day Read 1 x hour Read 1 x 15 mins 50,000,000 18,250,000,000 438,000,000,000 1,752,000,000,000
  • 23. Informix TimeSeries • TimeSeries is an efficient and fast way to store and access datapoints that have a time component • Stores the data elements in columnar form • TimeSeries is included with ALL editions of Informix – it is not an add-on • Consider our sensor data:  Simple data elements (temperature, humidity, light, etc)  Readings arrive at regular intervals with timestamps 22
  • 24. Sensor Data Traditional Relational Model 23 Sensor Id 40b0a36b Sensor Name R01 Sensor Location Living Room Sensor Id 40b0a36b Timestamp 2014-04-14 11:30 Temperature 69.50 Sensor Id 40b0a36b Timestamp 2014-04-14 11:31 Temperature 69.75 Sensor Id 40b0a36b Timestamp 2014-04-14 11:32 Temperature 70.00 Parent key value is repeated for each reading Do we need the timestamp? Overhead for each record saved The value is all we want!
  • 25. Sensor Data TimeSeries Model • Store all of the readings in the SAME record • Append them to the TimeSeries column With a regular timestamp, if we know the start time of readings, we can work out the timestamp of any reading by its offset. Irregular TimeSeries stores the timestamp with the data 24 Sensor Id 40b0a36b Sensor Name R01 Sensor Location Living Room Temperature 69.50, 69.75, 70.00, … TimeSeries Column
  • 26. What does a TimeSeries look like? The values are stored in a single column sensor_id 40b79f8e xbee_name R03 sensor_location Arduino Sensor 2 sensor_data origin(2015-01-18 18:30:00.00000), calendar(ts_1min), containe r(sensor_container), threshold(0), regular, [NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (66.6 ,38.7 ,67 ), ( 65.3 ,40.2 ,67 ), (63.9 ,42.2 ,67 ), (63.3 ,42.7 , 66 ), (62.6 ,43.7 ,67 ), (62.1 ,45.0 ,66 ), (61.5 ,45.6 ,66 ), (61.2 ,46.6 ,67 ), (60.8 ,47.1 ,67 ), (60.3 ,48.1 ,67 ), (60.1 ,48.1 ,67 ), (59.7 ,4 8.2 ,67 ), (59.5 ,49.2 ,67 ), (59.4 ,48.7 ,67 ), 25 Consider our utility company with 5 million smart meters… They will only have 5 million records in their “meter” table, regardless of how many “readings” they store
  • 27. Creating a TimeSeries 1. Create a Calendar Pattern  Defines valid time intervals for TimeSeries data 2. Create a Calendar Table, referencing the Pattern  Defines a calendar based on start date/time & pattern 3. Create a Row Type to store the TimeSeries 4. Create a Container for the TimeSeries data, referencing the Row Type  Specifies where the TimeSeries data is stored 5. Create a Table with a TimeSeries column, using the Row Type 26
  • 28. Creating a TimeSeries – Sensor Example • Create the structures to store the sensor information and TimeSeries • Not creating a Calendar in this example – instead use a predefined one when create the TimeSeries 27
  • 29. Creating a TimeSeries – Row Type create row type sensor_reading( timestamp datetime year to fraction(5), temperature decimal(4,1), humidity decimal(4,1), lightlevel smallint ); • Define a custom row type – a structure • Allows us to store three data values (temperature, humidity light level) with a timestamp 28
  • 30. Creating a TimeSeries - Table create table sensor( sensor_id char(8), xbee_name char(3), sensor_location char(20), sensor_data TimeSeries(sensor_reading) ); • Define a table to store the sensor information • Referencing our custom row type for the sensor data 29
  • 31. Creating a TimeSeries - Container execute procedure TSContainerCreate ('sensor_container', 'sensordbs', 'sensor_reading', 256, 256); • Defines where the TimeSeries data will be stored • “sensordbs” is an existing DBSpace (assigned disk space) • References our custom row type (sensor_reading) 30
  • 32. Creating a TimeSeries – Create Sensor Record insert into sensor values ( "40b79f8e", "R03", "Arduino Sensor 2", TSCreate( 'ts_1min', '2015-01-18 18:30:00.00000', 0, 0, 0, 'sensor_container')); • Create one record for each sensor 31 Predefined calendar – new value each minute
  • 33. Creating a TimeSeries – Store Sensor Data update sensor set sensor_data = PutElem(sensor_data, row("2015-01-18 18:30:00.00000", 78.1, 45.5, 70)::sensor_reading) where xbee_name = "R03"; • Update the appropriate sensor record with new values 32
  • 34. TimeSeries – Querying the Sensor Data • Query the table select * from sensor where xbee_name matches "R03"; • The values are stored in a single column sensor_id 40b79f8e xbee_name R03 sensor_location Arduino Sensor 2 sensor_data origin(2015-01-18 18:30:00.00000), calendar(ts_1min), containe r(sensor_container), threshold(0), regular, [NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (66.6 ,38.7 ,67 ), ( 65.3 ,40.2 ,67 ), (63.9 ,42.2 ,67 ), (63.3 ,42.7 , 66 ), (62.6 ,43.7 ,67 ), (62.1 ,45.0 ,66 ), (61.5 ,45.6 ,66 ), (61.2 ,46.6 ,67 ), (60.8 ,47.1 ,67 ), (60.3 ,48.1 ,67 ), (60.1 ,48.1 ,67 ), (59.7 ,4 8.2 ,67 ), (59.5 ,49.2 ,67 ), (59.4 ,48.7 ,67 ), ... 33
  • 35. TimeSeries – Querying the Sensor Data • Query values for a timestamp select sensor_id, xbee_name, GetElem(sensor_data, '2015-01-18 18:40:00') as readings from sensor where xbee_name matches "R03"; • The values are returned as the custom row type sensor_id 40b79f8e xbee_name R03 readings ROW('2015-01-18 18:40:00.00000',65.3 ,40.2 ,67 ) 34
  • 36. TimeSeries – Virtual Table Interface • Using a Virtual Table Interface (VTI) simplifies the use of TimeSeries data by displaying the data in a relational format  Each TimeSeries element can be treated as a “row” of data through the VTI execute procedure tscreatevirtualtab( 'sensor_vti', 'sensor'); 35
  • 37. TimeSeries – Query the VTI select * from sensor_vti where sensor_location = "Arduino Sensor 2" sensor_id 40b79f8e xbee_name R03 sensor_location Arduino Sensor 2 timestamp 2015-01-18 18:39:00.00000 temperature 66.6 humidity 38.7 lightlevel 67 sensor_id 40b79f8e xbee_name R03 sensor_location Arduino Sensor 2 timestamp 2015-01-18 18:40:00.00000 temperature 65.3 humidity 40.2 lightlevel 67 36 Timestamps and data values broken into individual records Looks Relational!
  • 38. TimeSeries – Row Type • The Row Type in the example allows us to store three values:  Temperature  Humidity  Light Level • Some sensors may not send all of the values – for example, may just send the temperature  Lots of NULL values in the TimeSeries ... (69.6 ,NULL,NULL), (69.1 ,NULL,NULL), (69.8 ,N ULL,NULL), (69.6 ,NULL,NULL), (69.6 ,NULL,NULL), (69.6 ,NUL L,NULL), (69.6 ,NULL,NULL), (69.6 ,NULL,NULL), (69.6 ,NULL, NULL), (69.6 ,NULL,NULL), (69.8 ,NULL,NULL), • What if I want to add a new sensor type – for example, “Volume Level”? 37 Need to be able to store Unstructured Data
  • 39. Unstructured Data • Schema is not rigidly defined • JSON & NoSQL Documents • Uses key value pairs, for example: {"data": {"temperature": 70.2, "humidity": 45.0}} Informix includes a native JSON data type 38
  • 40. MongoDB • MongoDB is a popular document-orientated, NoSQL database • Informix supports connections from Mongo based applications • Uses a wire listener to allow connectivity • Example: Connect from the mongo shell to an Informix database 39
  • 41. REST API • Can use a REST API to work with an Informix database • Driverless access • Uses a wire listener • Example: Connect from a browser to an Informix database http://10.10.10.20:27018/sysmaster/systables?query={tabid:{$lte:5} }&fields={tabname:1}&sort={tabname:-1} 40
  • 42. TimeSeries and JSON • As of Informix 12.10.xC4, TimeSeries supports unstructured data create row type sensor_info ( timestamp datetime year to fraction(5), values bson ); create table sensor2 ( sensor_id char(20), sensor_type char(15), sensor_data timeseries(sensor_info), primary key (sensor_id) ); 41
  • 43. TimeSeries and JSON • Store different types of readings in the same record structure within TimeSeries, using key-value pairs: sensor_id 1 sensor_type Temp+Humidity sensor_data origin(2015-09-18 14:30:00.00000), calendar(ts_1min), container(se nsor2_data_container), threshold(0), regular, [('{"temperature":70 ,"humidity":45}'), ('{"temperature":71,"humidity":43}'), ('{"tempe rature":72,"humidity":40}')] sensor_id 2 sensor_type Temp sensor_data origin(2015-09-18 14:30:00.00000), calendar(ts_1min), container(se nsor2_data_container), threshold(0), regular, [('{"temperature":82 }'), ('{"temperature":78}'), ('{"temperature":80}')] sensor_id 3 sensor_type Sound sensor_data origin(2015-09-18 14:30:00.00000), calendar(ts_1min), container(se nsor2_data_container), threshold(0), regular, [('{"volume":5}'), ( '{"volume":15}'), ('{"volume":12}')] 42
  • 44. IBM Internet of Things Foundation • IBM have created their own, cloud-hosted service for IoT • Part of the IBM Bluemix platform 43 Bluemix Cloud based services Pick and choose what you want
  • 45. IBM Internet of Things Foundation IoTF on Bluemix 44 Add the Internet of Things Service
  • 46. IBM Internet of Things Foundation • Register a Device • Publish events using MQTT protocol 45
  • 47. Putting it all Together! • We have covered:  Sensors/Microcontrollers  ARM  Smart Gateway  Local Informix Database  TimeSeries  Unstructured Data  Mongo and REST API Database Connectivity  Internet of Things Foundation on Bluemix Now to put it all together for our IoT Solution! 46
  • 48. Node-RED • Graphical tool – run in a browser • Use to put together data flows and apply operations • Additional “nodes” can be added to increase the functionality • Custom “nodes” can be written 47
  • 49. Node-RED IoT Solution with (almost) no programming! 48 Subscribe to MQTT topic Insert into local Informix TimeSeries Push to IoTF in Bluemix
  • 50. Incoming Sensor Data • The sensors are connected wirelessly (WiFi) • They are publishing data to a message broker using MQTT • The broker is running on a Raspberry Pi 2 49 Broker Subscriber SubscriberPublisher Publisher MQTT
  • 51. MQTT Topic – Incoming Data 50 topic/sensor {"id":"78c40e02b7c5","v":{"t":85.7,"h": 25,"l": 3.1,"p":74631,"b": 8.33}} topic/sensor {"id":"78c40e02b7c5","v":{"t":85.8,"h": 25,"l": 3.1,"p":74634,"b": 8.31}} topic/sensor {"id":"78c40e02b7c5","v":{"t":85.8,"h": 25,"l": 3.1,"p":74635,"b": 8.34}} topic/sensor {"id":"78c40e02b7c5","v":{"t":85.9,"h": 25,"l": 3.1,"p":74637,"b": 8.31}} topic/sensor {"id":"78c40e02b7c5","v":{"t":85.9,"h": 25,"l": 3.1,"p":74637,"b": 8.34}} Node-RED subscribes to this same topic with the MQTT node to receive the sensor data
  • 52. Write to a Local Database 51 Node-RED uses the timeseries-out node to write reformatted data to a local Informix database • The TimeSeries node uses the REST API to write to the local database • The database and table must already exist • A virtual table will be created automatically against the underlying table
  • 53. Query the Sensor Data in the Database • Example using the Mongo syntax: db.sensor_v.find({sensor_id:"78c40e02b7c5", timestamp: {$gt:"2015-09-18 17:50:42.00000"}}).sort({timestamp:-1}).limit(1) { "sensor_id" : "78c40e02b7c5", "timestamp" : ISODate("2015-09- 18T23:56:21.000Z"), "values" : { "temp" : 81.9000000000000060, "humidity" : 27, "light" : 0.8000000000000000, "pressure" : 74740, "battery" : 8.3399999999999999 } } 52
  • 54. Query the Sensor Data in the Database • Example using dbaccess: select clip( sensor_data, CURRENT - 15 units second, CURRENT, 0) data from sensor where sensor_id = "78c40e02b7c5"; data origin(2015-09-18 21:24:28.00000), calendar(ts_1sec), container(sensor_da ta_container), threshold(0), irregular, [('{"temp":75.5,"humidity":32,"li ght":0.2,"pressure":74878,"battery":8.34}')@2015-09-18 21:24:28.00000, (' {"temp":75.5,"humidity":32,"light":0.2,"pressure":74877,"battery":8.34}') @2015-09-18 21:24:31.00000, ('{"temp":75.40000000000001,"humidity":32,"li ght":0.2,"pressure":74876,"battery":8.34}')@2015-09-18 21:24:35.00000, (' {"temp":75.40000000000001,"humidity":32,"light":0.2,"pressure":74875,"bat tery":8.34}')@2015-09-18 21:24:41.00000] 53 Note the irregular TimeSeries – each reading has a timestamp
  • 55. Push Data to the IoT Foundation in Bluemix • Must have a Bluemix account (free) • Must have added the “Internet of Things” Service 54 Node-RED uses the ibmiot out node to push to the IoT Foundation in Bluemix
  • 56. Push Data to the IoT Foundation in Bluemix 55 View the recent events using the Bluemix Console
  • 57. Query Data in the IoT Foundation in Bluemix • Use the REST API to:  Register/Unregister a device  Update/View a device  Retrieve historical data • Example: https://<orgid>.internetofthings.ibmcloud.com/api/v0002/historian/ty pes/Arduino/devices/78c40e02b7c5 56
  • 58. Query Data in the IoT Foundation in Bluemix { "events": [ { "device_type": "Arduino", "device_id": "78c40e02b7c5", "evt_type": "sensor-event", "timestamp": { "$date": 1442629738722 }, "evt": { "temp": 77, "humidity": 29, "light": 0.1, "pressure": 74874, "battery": 8.34 } }, ... 57
  • 59. Bluemix Apps • Can create an app and “push” it to Bluemix • Example Visualization app uses node.js • Download from github: https://github.com/ibm-messaging/iot-visualization • Create a “SDK for node.js” app on Bluemix • Push the downloaded app to Bluemix • Link the App to the Internet of Things Service 58 Shows node.js app linked to IoTF
  • 61. Use Node-RED to Pull from Bluemix IoTF • Use the ibmiot in node to pull from Bluemix • Use the iot-datasource node to graph the data 60
  • 62. Use Node-RED Graphing Node http://10.10.10.20:1880/dash/ 61
  • 63. More Resources • Webcasts covering Informix, ARM, Internet of Things: http://advancedatatools.com/Informix/Webcasts.html • Compare Informix versions: http://www.ibm.com/developerworks/data/library/techarticle/dm- 0801doe/ • Docker Site: https://hub.docker.com/r/ibmcom/informix-innovator-c/ • Advanced DataToolsTraining: http://advancedatatools.com/Training/InformixTraining.html 62
  • 64. 63 Informix Support and Training from the Informix Champions! Advanced DataTools is an Advanced Level IBM Informix Data Management Partner, and has been an authorized Informix partner since 1993. We have a long-term relationship with IBM, we have priority access to high-level support staff, technical information, and Beta programs. Our team has been working with Informix since its inception, and includes 8 Senior Informix Database Consultants, 4 IBM Champions, 2 IIUG Director’s Award winners, and an IBM Gold Consultant. • Informix Training • Informix Consulting • Informix Development • Informix Remote DBA Support Monitoring • Informix Performance Tuning Free Informix Performance Tuning Webcast replays at: http://advancedatatools.com/Informix/Webcasts.html Call: (800) 807-6732 x101 or Email: info@advancedatatools.com Web: http://www.advancedatatools.com
  • 65. We Value Your Feedback! Don’t forget to submit your Insight session and speaker feedback! Your feedback is very important to us – we use it to continually improve the conference. Access your surveys at insight2015survey.com to quickly submit your surveys from your smartphone, laptop or conference kiosk. 64
  • 66. 65 Notices and Disclaimers Copyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM. U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM. Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided. Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice. Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation. It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
  • 67. 66 Notices and Disclaimers (con’t) Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right. • IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
  • 68. © 2015 IBM Corporation Thank You