SlideShare a Scribd company logo
The Scripting
Languages of InfluxDB
A look at the scripting language options that can be
used with InfluxDB in the past, present, and future.
Gary Fowler
Product Manager
Gary Fowler is a Product Manager for InfluxDB Cloud at
InfluxData. Gary has nearly three decades of experience
in product management, program management,
software engineering and sales engineering. He
previously held Vice President roles in Product and
Engineering at iPass, Airborne Interactive and Lilee
Systems. Gary resides in Holualoa, Hawaii.
InfluxDB Scripting Languages
Agenda
1. Script Language Options with InfluxDB - past,
present, and future
2. Benefits of each Language
3. The new Script Editor in InfluxDB Cloud
DEVELOPER HAPPINESS
TIME TO AWESOME
Developers
Cloud native real time applications
requiring time series data store
Scripting Languages –
Doing more than Query
Learning curve:
STEEP
Learning curve:
LITTLE TO NONE
Capabilities:
QUERY,
TRANSFORM &
ACT
(POWERFUL)
Capabilities:
QUERY ONLY
(EASY)
INFLUXQL
SQL*
FLUX
* Coming soon
Flux
• Functional Scripting
Language
• Optimized for ETL,
monitoring, and alerting
• Not just for queries, but
also for transforming and
triggering actions
• Used with OSS, Enterprise,
& current Cloud product
Influx Query
Language (InfluxQL)
• SQL-like query language for
working with data in
InfluxDB databases
• InfluxDB’s first Query
Language
• Standard SQL functions +
time series extensions
• /query API available with
OSS, Enterprise, and Cloud
• Cloud UI support coming
soon
Coming soon:
Native SQL
• IOx powered InfluxDB
Cloud brings SQL support
• SQL editor within InfluxDB
Cloud in development
(Coming Soon)
• PostgresQL Wire Protocol
Support
Future
Flux 1.0 • First official versioned
release
Whats in it for the
customer?
Planned: InfluxQL
Cloud Support
• InfluxQL Editor option in
InfluxDB Cloud
• Easier transition from OSS
or Enterprise
Future: Tasks in
your language
• Use Python or Javascript
within InfluxDB
• Create downsampling and
other tasks that can run
inside InfluxDB cloud
• Data stays internal and in
the cloud
Future: Javascript
Tasks
• Use Javascript within the
Cloud UI
• Create downsampling and
other tasks that can run
inside InfluxDB cloud
• Data stays internal and in
the cloud
Choosing a Language
Selection Factors
Flux SQL InfluxQL Python/Javascript
Need most power and
flexibility
Transition from
relational DB
Already using with OSS
& Enterprise
Python or Javascript
Expertise
Need to transform or
otherwise manipulate
data, not just query it
Previous SQL Expertise Previous InfluxQL or
SQL Expertise
Want to move existing
Python code into the
Cloud
Need to combine data
sources
Only need to do fast,
simple queries
Need to make REST or
other API calls
Easier API transition
from other SQL DBs
Selection Factors
Flux SQL InfluxQL Python/Javascri
pt
Need most power and
flexibility
Transition from
relational DB
Already using with OSS
& Enterprise
Python or Javascript
Expertise
Need to transform or
otherwise manipulate
data, not just query it
Previous SQL Expertise Previous InfluxQL or
SQL Expertise
Want to move existing
Python code into the
Cloud
Need to combine data
sources
Only need to do fast,
simple queries
Need to make REST or
other API calls
Easier API transition
from other SQL DBs
Examples of ways you can use Flux
The Power of Flux
Query from Multiple
Data Sources
import "sql"
import "influxdata/influxdb/secrets"
username = secrets.get(key:
"POSTGRES_USER")
password = secrets.get(key:
"POSTGRES_PASS")
sql.from(
driverName: "postgres",
dataSourceName:
"postgresql://${username}:${password}@loc
alhost:5432",
query: "SELECT * FROM example_table",
)
Make outbound
API calls
import "json"
import "http"
lastReported =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses")
|> last()
|> findColumn(fn: (key) => true, column: "_level")
http.post(
url: "http://myawsomeurl.com/api/notify",
headers: {Authorization: "Bearer mySuPerSecRetTokEn",
"Content-type": "application/json"},
data: json.encode(v: lastReported[0]),
)
Downsample Data
option task = {name: "Downsampling CPU",
every: 1m}
data = from(bucket: "my-bucket")
|> range(start: -2h)
|> filter(fn: (r) =>
(r["_measurement"] == "cpu"))
|> filter(fn: (r) =>
(r["_field"] == "usage_user"))
data
|> aggregateWindow(every: 10s, fn: mean,
createEmpty: false)
|> set(key: "agg_type",value: "mean_cpu")
|> to(bucket: "downsampled", org:
"my-org", tagColumns: ["agg_type"])
Flux vs. Custom
Application
Eliminates the need to
extract/download a large
dataset to your own
application for evaluation and
transformation
Script Editing
New Script Editor - InfluxDB Cloud
➔ Multi-Language Editing
➔ Instructional - learn while using
➔ Instructional - help users write
more performant queries
➔ Schema Browsing
➔ Faster Iteration
➔ Loading/Saving/Re-using Scripts
➔ Remove forced visual selection
vs. script editing choice
➔ Invokable Script Editing
Why a new Script Editor?
New Script Editor
Language Support
• Flux Supported
• SQL In-Development
• InfluxQL Planned
• Python Planned
• Javascript Planned
Instructional Schema Browser
1. Helps introduce new user’s
to InfluxDB Elements via
Contextual Help
2. Helps users understand the
shape of their data &
hierarchical structure
Schema — > Flux Sync
• Do queries with no
scripting knowledge
• Shows you the script
that gets created based
on your selections to
help you learn
• Add code to your script
without losing the ability
to choose filters from
the schema browser
Load and Save Scripts
• Long awaited feature of the Script Editor
• Basic Load/Save for now, but planning to add versioning,
labels/folder organization, and permissions in the future
Edit Invokable
Scripts
You can use the script editor
to edit invocable scripts and
gather their URL
Improved
Performance
Improved Performance,
especially when working with
larger Datasets
VS Code Extension You can use the Flux VS
Code extension to edit Flux
PostgreSQL Wire
Protocol
Write SQL scripts/queries
from your own tools that
support the PostgreSQL Wire
Protocol
T H A N K Y O U

More Related Content

Similar to Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022

Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
lennartkats
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
Ankit Chohan
 

Similar to Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022 (20)

DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
 
Real Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & CouchbaseReal Time Streaming with Flink & Couchbase
Real Time Streaming with Flink & Couchbase
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
Case Study : InfluxDB
Case Study : InfluxDBCase Study : InfluxDB
Case Study : InfluxDB
 
Vinay Kumar [InfluxData] | InfluxDB API Overview | InfluxDays 2022
Vinay Kumar [InfluxData] | InfluxDB API Overview  | InfluxDays 2022Vinay Kumar [InfluxData] | InfluxDB API Overview  | InfluxDays 2022
Vinay Kumar [InfluxData] | InfluxDB API Overview | InfluxDays 2022
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
 
Apache Flex: Overview
Apache Flex: OverviewApache Flex: Overview
Apache Flex: Overview
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product Developers
 
The ABC's of IaC
The ABC's of IaCThe ABC's of IaC
The ABC's of IaC
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dc
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
Api and Fluency
Api and FluencyApi and Fluency
Api and Fluency
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
How the Automation of a Benchmark Famework Keeps Pace with the Dev Cycle at I...
 
DevOps for Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for Databricks
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
 

More from InfluxData

How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
InfluxData
 
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
InfluxData
 
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
InfluxData
 

More from InfluxData (20)

Announcing InfluxDB Clustered
Announcing InfluxDB ClusteredAnnouncing InfluxDB Clustered
Announcing InfluxDB Clustered
 
Best Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow EcosystemBest Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow Ecosystem
 
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
 
Power Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDBPower Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDB
 
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
 
Build an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING StackBuild an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING Stack
 
Meet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using RustMeet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using Rust
 
Introducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud DedicatedIntroducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud Dedicated
 
Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB
 
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
 
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
 
Introducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage EngineIntroducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage Engine
 
Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena
 
Understanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage EngineUnderstanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage Engine
 
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDBStreamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
 
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
 
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»НАДІЯ ФЕДЮШКО БАЦ  «Професійне зростання QA спеціаліста»
НАДІЯ ФЕДЮШКО БАЦ «Професійне зростання QA спеціаліста»
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 

Gary Fowler [InfluxData] | InfluxDB Scripting Languages | InfluxDays 2022

  • 1.
  • 3. A look at the scripting language options that can be used with InfluxDB in the past, present, and future. Gary Fowler Product Manager Gary Fowler is a Product Manager for InfluxDB Cloud at InfluxData. Gary has nearly three decades of experience in product management, program management, software engineering and sales engineering. He previously held Vice President roles in Product and Engineering at iPass, Airborne Interactive and Lilee Systems. Gary resides in Holualoa, Hawaii. InfluxDB Scripting Languages
  • 4. Agenda 1. Script Language Options with InfluxDB - past, present, and future 2. Benefits of each Language 3. The new Script Editor in InfluxDB Cloud
  • 5. DEVELOPER HAPPINESS TIME TO AWESOME Developers Cloud native real time applications requiring time series data store
  • 7. Learning curve: STEEP Learning curve: LITTLE TO NONE Capabilities: QUERY, TRANSFORM & ACT (POWERFUL) Capabilities: QUERY ONLY (EASY) INFLUXQL SQL* FLUX * Coming soon
  • 8. Flux • Functional Scripting Language • Optimized for ETL, monitoring, and alerting • Not just for queries, but also for transforming and triggering actions • Used with OSS, Enterprise, & current Cloud product
  • 9. Influx Query Language (InfluxQL) • SQL-like query language for working with data in InfluxDB databases • InfluxDB’s first Query Language • Standard SQL functions + time series extensions • /query API available with OSS, Enterprise, and Cloud • Cloud UI support coming soon
  • 10. Coming soon: Native SQL • IOx powered InfluxDB Cloud brings SQL support • SQL editor within InfluxDB Cloud in development (Coming Soon) • PostgresQL Wire Protocol Support
  • 12. Flux 1.0 • First official versioned release Whats in it for the customer?
  • 13. Planned: InfluxQL Cloud Support • InfluxQL Editor option in InfluxDB Cloud • Easier transition from OSS or Enterprise
  • 14. Future: Tasks in your language • Use Python or Javascript within InfluxDB • Create downsampling and other tasks that can run inside InfluxDB cloud • Data stays internal and in the cloud
  • 15. Future: Javascript Tasks • Use Javascript within the Cloud UI • Create downsampling and other tasks that can run inside InfluxDB cloud • Data stays internal and in the cloud
  • 17. Selection Factors Flux SQL InfluxQL Python/Javascript Need most power and flexibility Transition from relational DB Already using with OSS & Enterprise Python or Javascript Expertise Need to transform or otherwise manipulate data, not just query it Previous SQL Expertise Previous InfluxQL or SQL Expertise Want to move existing Python code into the Cloud Need to combine data sources Only need to do fast, simple queries Need to make REST or other API calls Easier API transition from other SQL DBs
  • 18. Selection Factors Flux SQL InfluxQL Python/Javascri pt Need most power and flexibility Transition from relational DB Already using with OSS & Enterprise Python or Javascript Expertise Need to transform or otherwise manipulate data, not just query it Previous SQL Expertise Previous InfluxQL or SQL Expertise Want to move existing Python code into the Cloud Need to combine data sources Only need to do fast, simple queries Need to make REST or other API calls Easier API transition from other SQL DBs
  • 19. Examples of ways you can use Flux The Power of Flux
  • 20. Query from Multiple Data Sources import "sql" import "influxdata/influxdb/secrets" username = secrets.get(key: "POSTGRES_USER") password = secrets.get(key: "POSTGRES_PASS") sql.from( driverName: "postgres", dataSourceName: "postgresql://${username}:${password}@loc alhost:5432", query: "SELECT * FROM example_table", )
  • 21. Make outbound API calls import "json" import "http" lastReported = from(bucket: "example-bucket") |> range(start: -1m) |> filter(fn: (r) => r._measurement == "statuses") |> last() |> findColumn(fn: (key) => true, column: "_level") http.post( url: "http://myawsomeurl.com/api/notify", headers: {Authorization: "Bearer mySuPerSecRetTokEn", "Content-type": "application/json"}, data: json.encode(v: lastReported[0]), )
  • 22. Downsample Data option task = {name: "Downsampling CPU", every: 1m} data = from(bucket: "my-bucket") |> range(start: -2h) |> filter(fn: (r) => (r["_measurement"] == "cpu")) |> filter(fn: (r) => (r["_field"] == "usage_user")) data |> aggregateWindow(every: 10s, fn: mean, createEmpty: false) |> set(key: "agg_type",value: "mean_cpu") |> to(bucket: "downsampled", org: "my-org", tagColumns: ["agg_type"])
  • 23. Flux vs. Custom Application Eliminates the need to extract/download a large dataset to your own application for evaluation and transformation
  • 25. New Script Editor - InfluxDB Cloud
  • 26. ➔ Multi-Language Editing ➔ Instructional - learn while using ➔ Instructional - help users write more performant queries ➔ Schema Browsing ➔ Faster Iteration ➔ Loading/Saving/Re-using Scripts ➔ Remove forced visual selection vs. script editing choice ➔ Invokable Script Editing Why a new Script Editor?
  • 27. New Script Editor Language Support • Flux Supported • SQL In-Development • InfluxQL Planned • Python Planned • Javascript Planned
  • 28. Instructional Schema Browser 1. Helps introduce new user’s to InfluxDB Elements via Contextual Help 2. Helps users understand the shape of their data & hierarchical structure
  • 29. Schema — > Flux Sync • Do queries with no scripting knowledge • Shows you the script that gets created based on your selections to help you learn • Add code to your script without losing the ability to choose filters from the schema browser
  • 30. Load and Save Scripts • Long awaited feature of the Script Editor • Basic Load/Save for now, but planning to add versioning, labels/folder organization, and permissions in the future
  • 31. Edit Invokable Scripts You can use the script editor to edit invocable scripts and gather their URL
  • 33. VS Code Extension You can use the Flux VS Code extension to edit Flux
  • 34. PostgreSQL Wire Protocol Write SQL scripts/queries from your own tools that support the PostgreSQL Wire Protocol
  • 35. T H A N K Y O U