SlideShare a Scribd company logo
HPCC Systems - ECL Intro 
Big Data Querying Made EZ 
By Fujio Turner 
Enterprise Control Language 
explained for Programmers 
@FujioTurner
Comparison 
Block Based File Based 
JAVA C++ 
Petabytes 
1-80,000 Jobs/day 
Since 2005 
Exabytes 
Non-Indexed 4X-13X 
Indexed: 2K-3K Jobs/sec 
Since 2000 
? ? ? ? ? ? 
Thor Roxie
What Is ECL? 
ECL (Enterprise Control Language) is a C++ based query 
language for use with HPCC Systems Big Data platform. 
ECLs syntax and format is very simple and easy to learn.! 
! 
Note - ECL is very similar to Hadoop’s pig ,but! 
more expressive and feature rich.
Comparing ECL to General Programming 
In this presentation you will see how in ECL loading and 
querying data is just like reading and finding data in a 
plain text file.! 
general programming (general common logic)! 
vs.! 
ECL 
General Code HERE ECL Code HERE 
General ECL
Example Text File 
Name State Age 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
Customer Data May 2010 
~/cdata_2010.txt! 
example file name 
= ~/hpcc::cdata_2010.txt 
ECL example file distributed in HPCC cluster
Opening File: general programming vs ECL 
d = fopen(‘~/cdata_2010.txt’) 
File Location 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
General ECL
Opening File: general programming vs ECL 
d = fopen(‘~/cdata_2010.txt’) 
File Location 
Open File Function 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
General ECL
Organizing: general programming vs ECL 
d = fopen(‘~/cdata_2010.txt’) 
new_d = split( d ,“rn”) 
Split Data(d) by Row 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
General ECL
Organizing: general programming vs ECL 
d = fopen(‘~/cdata_2010.txt’) 
new_d = split( d ,“rn”) 
cs := RECORD! 
! STRING20 Name;! 
! STRING2 State;! 
! INT3 Age;! 
END 
Split Data(d) by Row 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
Use This Schema on this file! 
to Give Structure to Data 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
General ECL
Find “Sara”: general programming vs ECL 
cs := RECORD! 
! STRING20 Name;! 
! STRING2 State;! 
! INT3 Age;! 
END 
d = fopen(‘~/cdata_2010.txt’) 
new_d = split( d ,“rn”) 
Split Data by Column 
for(x = 0; x< 3; x++){! 
! row = new_d[x]! 
! new_row = split(row,“ ”)! 
! if(new_row[0] == ‘Sara’){! 
! ! print ”Found Sara”! 
! }! 
} 
0 1 2 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
General ECL
Find “Sara”: general programming vs ECL 
cs := RECORD! 
! STRING20 Name;! 
! STRING2 State;! 
! INT3 Age;! 
END 
d = fopen(‘~/cdata_2010.txt’) 
new_d = split( d ,“rn”) 
Split Data by Column 
for(x = 0; x< 3; x++){! 
! row = new_d[x]! 
! new_row = split(row,“ ”)! 
! if(new_row[0] == ‘Sara’){! 
! ! print ”Found Sara”! 
! }! 
} 
0 1 2 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
Filter Data By 
General ECL
Find “Sara”: general programming vs ECL 
cs := RECORD! 
! STRING20 Name;! 
! STRING2 State;! 
! INT3 Age;! 
END 
d = fopen(‘~/cdata_2010.txt’) 
new_d = split( d ,“rn”) 
Split Data by Column 
for(x = 0; x< 3; x++){! 
! row = new_d[x]! 
! new_row = split(row,“ ”)! 
! if(new_row[0] == ‘Sara’){! 
! ! print ”Found Sara”! 
! }! 
} 
0 1 2 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
Filter Data By 
Output 
General ECL
Find “Sara”: general programming vs ECL 
cs := RECORD! 
! STRING20 Name;! 
! STRING2 State;! 
! INT3 Age;! 
END 
d = fopen(‘~/cdata_2010.txt’) 
new_d = split( d ,“rn”) 
Split Data by Column 
for(x = 0; x< 3; x++){! 
! row = new_d[x]! 
! new_row = split(row,“ ”)! 
! if(new_row[0] == ‘Sara’){! 
! ! print ”Found Sara”! 
! }! 
} 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
sara := d(Name = ‘Sara’); 
0 1 2 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
Filter Data By 
Output 
General ECL
Find “Sara”: general programming vs ECL 
cs := RECORD! 
! STRING20 Name;! 
! STRING2 State;! 
! INT3 Age;! 
END 
d = fopen(‘~/cdata_2010.txt’) 
new_d = split( d ,“rn”) 
Split Data by Column 
for(x = 0; x< 3; x++){! 
! row = new_d[x]! 
! new_row = split(row,“ ”)! 
! if(new_row[0] == ‘Sara’){! 
! ! print ”Found Sara”! 
! }! 
} 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
sara := d(Name = ’Sara’); 
OUTPUT(sara); 
0 1 2 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
Filter Data By 
Output 
General ECL
Find “Sara” & Older then 50: general programming vs ECL 
cs := RECORD! 
! STRING20 Name;! 
! STRING2 State;! 
! INT3 Age;! 
END 
d = fopen(‘~/cdata_2010.txt’) 
new_d = split( d ,“rn”) 
for(x = 0; x< 3; x++){! 
! row = new_d[x]! 
! new_row = row.split(“ ”)! 
! if(new row[0] == ‘Sara’ and row[2] >50){! 
! ! print ”Found Sara”! 
! }! 
} 
d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); 
sara := d(Name = ‘Sara’ AND Age > 50); 
OUTPUT(sara); 
0 1 2 
Kevin CA 45 
Mark MI 27 
Sara FL 64 
General ECL
ECL is EZ 
•Make your own functions & libraries in ECL.! 
•Modularize your code with “Import”: reuse old code 
Machine Learning Built-in 
http://hpccsystems.com/ml
ECL Plugin for Eclipse IDE 
http://hpccsystems.com/products-and-services/products/plugins/eclipse-ide
ECL + Others Languages 
ECL is C++ based so all your C/C++ code can be used in ECL.! 
&! 
Use other languages and methods like below to query too.
ECL GUIDE 
http://hpccsystems.com/download/docs/ecl-language-reference 
JOIN! 
MERGE! 
LENGTH! 
REGEX! 
ROUND! 
SUM! 
COUNT! 
TRIM! 
WHEN! 
AVE! 
ABS! 
CASE! 
DEDUP! 
NORMALIZE! 
DENORMALIZE! 
IF! 
SORT! 
GROUP! 
more ….
For More HPCC “How To’s” Go to 
Query with 
Plain SQL 
http://www.slideshare.net/hpccsystems/jdbc-hpcc 
or SQL TO ECL 
http://www.slideshare.net/FujioTurner/meet-up-sqldemopp
Watch how to install 
HPCC Systems 
in 5 Minutes 
Download HPCC Systems 
Open Source 
Community Edition 
http://hpccsystems.com/download/ 
http://www.youtube.com/watch?v=8SV43DCUqJg 
or 
Source Code 
https://github.com/hpcc-systems
HPCC Systems - ECL for Programmers - Big Data - Data Scientist

More Related Content

What's hot

Cassandra introduction apache con 2014 budapest
Cassandra introduction apache con 2014 budapestCassandra introduction apache con 2014 budapest
Cassandra introduction apache con 2014 budapest
Duyhai Doan
 
ComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical SciencesComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical Sciencesalexstorer
 
10 context switching
10 context switching10 context switching
10 context switching
JihoonKim157
 
Commit2015 kharchenko - python generators - ext
Commit2015   kharchenko - python generators - extCommit2015   kharchenko - python generators - ext
Commit2015 kharchenko - python generators - ext
Maxym Kharchenko
 
Web Application Security 101 - 05 Enumeration
Web Application Security 101 - 05 EnumerationWeb Application Security 101 - 05 Enumeration
Web Application Security 101 - 05 Enumeration
Websecurify
 
MongoDB Advanced Topics
MongoDB Advanced TopicsMongoDB Advanced Topics
MongoDB Advanced TopicsCésar Rodas
 
Oracle Essbase for Oracle Cloud Infrastructure Marketplace のご紹介[2021年2月版]
Oracle Essbase for Oracle Cloud Infrastructure Marketplace のご紹介[2021年2月版]Oracle Essbase for Oracle Cloud Infrastructure Marketplace のご紹介[2021年2月版]
Oracle Essbase for Oracle Cloud Infrastructure Marketplace のご紹介[2021年2月版]
オラクルエンジニア通信
 
PyCon Russian 2015 - Dive into full text search with python.
PyCon Russian 2015 - Dive into full text search with python.PyCon Russian 2015 - Dive into full text search with python.
PyCon Russian 2015 - Dive into full text search with python.
Andrii Soldatenko
 
Odessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and PythonOdessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and Python
Max Klymyshyn
 
Shell Script to Extract IP Address, MAC Address Information
Shell Script to Extract IP Address, MAC Address InformationShell Script to Extract IP Address, MAC Address Information
Shell Script to Extract IP Address, MAC Address Information
VCP Muthukrishna
 
Unix Basics Commands
Unix Basics CommandsUnix Basics Commands
Unix Basics Commands
Sameeran Jenna
 
Unified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsUnified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco Systems
Altinity Ltd
 
Extending Spark SQL API with Easier to Use Array Types Operations with Marek ...
Extending Spark SQL API with Easier to Use Array Types Operations with Marek ...Extending Spark SQL API with Easier to Use Array Types Operations with Marek ...
Extending Spark SQL API with Easier to Use Array Types Operations with Marek ...
Databricks
 
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
Altinity Ltd
 
What is the best full text search engine for Python?
What is the best full text search engine for Python?What is the best full text search engine for Python?
What is the best full text search engine for Python?
Andrii Soldatenko
 
Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2
Charles Givre
 
Bash Script Disk Space Utilization Report and EMail
Bash Script Disk Space Utilization Report and EMailBash Script Disk Space Utilization Report and EMail
Bash Script Disk Space Utilization Report and EMail
VCP Muthukrishna
 
Workshop on command line tools - day 1
Workshop on command line tools - day 1Workshop on command line tools - day 1
Workshop on command line tools - day 1
Leandro Lima
 
File Space Usage Information and EMail Report - Shell Script
File Space Usage Information and EMail Report - Shell ScriptFile Space Usage Information and EMail Report - Shell Script
File Space Usage Information and EMail Report - Shell Script
VCP Muthukrishna
 
Installing Apache Hive, internal and external table, import-export
Installing Apache Hive, internal and external table, import-export Installing Apache Hive, internal and external table, import-export
Installing Apache Hive, internal and external table, import-export
Rupak Roy
 

What's hot (20)

Cassandra introduction apache con 2014 budapest
Cassandra introduction apache con 2014 budapestCassandra introduction apache con 2014 budapest
Cassandra introduction apache con 2014 budapest
 
ComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical SciencesComputeFest 2012: Intro To R for Physical Sciences
ComputeFest 2012: Intro To R for Physical Sciences
 
10 context switching
10 context switching10 context switching
10 context switching
 
Commit2015 kharchenko - python generators - ext
Commit2015   kharchenko - python generators - extCommit2015   kharchenko - python generators - ext
Commit2015 kharchenko - python generators - ext
 
Web Application Security 101 - 05 Enumeration
Web Application Security 101 - 05 EnumerationWeb Application Security 101 - 05 Enumeration
Web Application Security 101 - 05 Enumeration
 
MongoDB Advanced Topics
MongoDB Advanced TopicsMongoDB Advanced Topics
MongoDB Advanced Topics
 
Oracle Essbase for Oracle Cloud Infrastructure Marketplace のご紹介[2021年2月版]
Oracle Essbase for Oracle Cloud Infrastructure Marketplace のご紹介[2021年2月版]Oracle Essbase for Oracle Cloud Infrastructure Marketplace のご紹介[2021年2月版]
Oracle Essbase for Oracle Cloud Infrastructure Marketplace のご紹介[2021年2月版]
 
PyCon Russian 2015 - Dive into full text search with python.
PyCon Russian 2015 - Dive into full text search with python.PyCon Russian 2015 - Dive into full text search with python.
PyCon Russian 2015 - Dive into full text search with python.
 
Odessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and PythonOdessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and Python
 
Shell Script to Extract IP Address, MAC Address Information
Shell Script to Extract IP Address, MAC Address InformationShell Script to Extract IP Address, MAC Address Information
Shell Script to Extract IP Address, MAC Address Information
 
Unix Basics Commands
Unix Basics CommandsUnix Basics Commands
Unix Basics Commands
 
Unified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsUnified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco Systems
 
Extending Spark SQL API with Easier to Use Array Types Operations with Marek ...
Extending Spark SQL API with Easier to Use Array Types Operations with Marek ...Extending Spark SQL API with Easier to Use Array Types Operations with Marek ...
Extending Spark SQL API with Easier to Use Array Types Operations with Marek ...
 
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
A Practical Introduction to Handling Log Data in ClickHouse, by Robert Hodges...
 
What is the best full text search engine for Python?
What is the best full text search engine for Python?What is the best full text search engine for Python?
What is the best full text search engine for Python?
 
Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2
 
Bash Script Disk Space Utilization Report and EMail
Bash Script Disk Space Utilization Report and EMailBash Script Disk Space Utilization Report and EMail
Bash Script Disk Space Utilization Report and EMail
 
Workshop on command line tools - day 1
Workshop on command line tools - day 1Workshop on command line tools - day 1
Workshop on command line tools - day 1
 
File Space Usage Information and EMail Report - Shell Script
File Space Usage Information and EMail Report - Shell ScriptFile Space Usage Information and EMail Report - Shell Script
File Space Usage Information and EMail Report - Shell Script
 
Installing Apache Hive, internal and external table, import-export
Installing Apache Hive, internal and external table, import-export Installing Apache Hive, internal and external table, import-export
Installing Apache Hive, internal and external table, import-export
 

Similar to HPCC Systems - ECL for Programmers - Big Data - Data Scientist

Modern technologies in data science
Modern technologies in data science Modern technologies in data science
Modern technologies in data science
Chucheng Hsieh
 
Toying with spark
Toying with sparkToying with spark
Toying with spark
Raymond Tay
 
Mindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developersMindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developers
Keshav Murthy
 
コミュニケーションとしてのコード
コミュニケーションとしてのコードコミュニケーションとしてのコード
コミュニケーションとしてのコード
Atsushi Shibata
 
C*ollege Credit: Creating Your First App in Java with Cassandra
C*ollege Credit: Creating Your First App in Java with CassandraC*ollege Credit: Creating Your First App in Java with Cassandra
C*ollege Credit: Creating Your First App in Java with CassandraDataStax
 
Introduction to source{d} Engine and source{d} Lookout
Introduction to source{d} Engine and source{d} Lookout Introduction to source{d} Engine and source{d} Lookout
Introduction to source{d} Engine and source{d} Lookout
source{d}
 
Ss dotnetcodexmpl
Ss dotnetcodexmplSs dotnetcodexmpl
Ss dotnetcodexmpl
rpravi12
 
Sql 99 and_some_techniques
Sql 99 and_some_techniquesSql 99 and_some_techniques
Sql 99 and_some_techniques
Alexey Kiselyov
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานHamHam' Kc
 
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™Boom Baphomet
 
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)HamHam' Kc
 
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)Seenton Pukjira
 
Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! aleks-f
 
DConf 2016 std.database (a proposed interface & implementation)
DConf 2016 std.database (a proposed interface & implementation)DConf 2016 std.database (a proposed interface & implementation)
DConf 2016 std.database (a proposed interface & implementation)
cruisercoder
 
DataTypes.ppt
DataTypes.pptDataTypes.ppt
DataTypes.ppt
RithikRaj25
 
Spark with Elasticsearch - umd version 2014
Spark with Elasticsearch - umd version 2014Spark with Elasticsearch - umd version 2014
Spark with Elasticsearch - umd version 2014Holden Karau
 
Embedded R Execution using SQL
Embedded R Execution using SQLEmbedded R Execution using SQL
Embedded R Execution using SQL
Brendan Tierney
 
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
Data Con LA
 

Similar to HPCC Systems - ECL for Programmers - Big Data - Data Scientist (20)

Modern technologies in data science
Modern technologies in data science Modern technologies in data science
Modern technologies in data science
 
Toying with spark
Toying with sparkToying with spark
Toying with spark
 
Mindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developersMindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developers
 
Vcs28
Vcs28Vcs28
Vcs28
 
コミュニケーションとしてのコード
コミュニケーションとしてのコードコミュニケーションとしてのコード
コミュニケーションとしてのコード
 
C*ollege Credit: Creating Your First App in Java with Cassandra
C*ollege Credit: Creating Your First App in Java with CassandraC*ollege Credit: Creating Your First App in Java with Cassandra
C*ollege Credit: Creating Your First App in Java with Cassandra
 
Introduction to source{d} Engine and source{d} Lookout
Introduction to source{d} Engine and source{d} Lookout Introduction to source{d} Engine and source{d} Lookout
Introduction to source{d} Engine and source{d} Lookout
 
Ss dotnetcodexmpl
Ss dotnetcodexmplSs dotnetcodexmpl
Ss dotnetcodexmpl
 
Sql 99 and_some_techniques
Sql 99 and_some_techniquesSql 99 and_some_techniques
Sql 99 and_some_techniques
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
 
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™
 
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)
 
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)
 
Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! 
 
D3.js workshop
D3.js workshopD3.js workshop
D3.js workshop
 
DConf 2016 std.database (a proposed interface & implementation)
DConf 2016 std.database (a proposed interface & implementation)DConf 2016 std.database (a proposed interface & implementation)
DConf 2016 std.database (a proposed interface & implementation)
 
DataTypes.ppt
DataTypes.pptDataTypes.ppt
DataTypes.ppt
 
Spark with Elasticsearch - umd version 2014
Spark with Elasticsearch - umd version 2014Spark with Elasticsearch - umd version 2014
Spark with Elasticsearch - umd version 2014
 
Embedded R Execution using SQL
Embedded R Execution using SQLEmbedded R Execution using SQL
Embedded R Execution using SQL
 
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
Big Data Day LA 2015 - Compiling DSLs for Diverse Execution Environments by Z...
 

More from Fujio Turner

Big Data - Fast Machine Learning at Scale + Couchbase
Big Data - Fast Machine Learning at Scale + CouchbaseBig Data - Fast Machine Learning at Scale + Couchbase
Big Data - Fast Machine Learning at Scale + Couchbase
Fujio Turner
 
NoSQL Couchbase Lite & BigData HPCC Systems
NoSQL Couchbase Lite & BigData HPCC SystemsNoSQL Couchbase Lite & BigData HPCC Systems
NoSQL Couchbase Lite & BigData HPCC Systems
Fujio Turner
 
HPCC Systems vs Hadoop
HPCC Systems vs HadoopHPCC Systems vs Hadoop
HPCC Systems vs Hadoop
Fujio Turner
 
Big Data for Small Businesses & Startups
Big Data for Small Businesses & StartupsBig Data for Small Businesses & Startups
Big Data for Small Businesses & Startups
Fujio Turner
 
Big Data - In-Memory Index / Sub Second Query engine - Roxie - HPCC Systems
Big Data - In-Memory Index / Sub Second Query engine - Roxie - HPCC SystemsBig Data - In-Memory Index / Sub Second Query engine - Roxie - HPCC Systems
Big Data - In-Memory Index / Sub Second Query engine - Roxie - HPCC Systems
Fujio Turner
 
Big Data - Load CSV File & Query the EZ way - HPCC Systems
Big Data - Load CSV File & Query the EZ way - HPCC SystemsBig Data - Load CSV File & Query the EZ way - HPCC Systems
Big Data - Load CSV File & Query the EZ way - HPCC Systems
Fujio Turner
 
Big Data - Load, Index & Query the EZ way - HPCC Systems
Big Data - Load, Index & Query the EZ way - HPCC SystemsBig Data - Load, Index & Query the EZ way - HPCC Systems
Big Data - Load, Index & Query the EZ way - HPCC Systems
Fujio Turner
 
3djson - Using Real World Data
3djson - Using Real World Data3djson - Using Real World Data
3djson - Using Real World Data
Fujio Turner
 

More from Fujio Turner (8)

Big Data - Fast Machine Learning at Scale + Couchbase
Big Data - Fast Machine Learning at Scale + CouchbaseBig Data - Fast Machine Learning at Scale + Couchbase
Big Data - Fast Machine Learning at Scale + Couchbase
 
NoSQL Couchbase Lite & BigData HPCC Systems
NoSQL Couchbase Lite & BigData HPCC SystemsNoSQL Couchbase Lite & BigData HPCC Systems
NoSQL Couchbase Lite & BigData HPCC Systems
 
HPCC Systems vs Hadoop
HPCC Systems vs HadoopHPCC Systems vs Hadoop
HPCC Systems vs Hadoop
 
Big Data for Small Businesses & Startups
Big Data for Small Businesses & StartupsBig Data for Small Businesses & Startups
Big Data for Small Businesses & Startups
 
Big Data - In-Memory Index / Sub Second Query engine - Roxie - HPCC Systems
Big Data - In-Memory Index / Sub Second Query engine - Roxie - HPCC SystemsBig Data - In-Memory Index / Sub Second Query engine - Roxie - HPCC Systems
Big Data - In-Memory Index / Sub Second Query engine - Roxie - HPCC Systems
 
Big Data - Load CSV File & Query the EZ way - HPCC Systems
Big Data - Load CSV File & Query the EZ way - HPCC SystemsBig Data - Load CSV File & Query the EZ way - HPCC Systems
Big Data - Load CSV File & Query the EZ way - HPCC Systems
 
Big Data - Load, Index & Query the EZ way - HPCC Systems
Big Data - Load, Index & Query the EZ way - HPCC SystemsBig Data - Load, Index & Query the EZ way - HPCC Systems
Big Data - Load, Index & Query the EZ way - HPCC Systems
 
3djson - Using Real World Data
3djson - Using Real World Data3djson - Using Real World Data
3djson - Using Real World Data
 

Recently uploaded

RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 

Recently uploaded (20)

RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 

HPCC Systems - ECL for Programmers - Big Data - Data Scientist

  • 1. HPCC Systems - ECL Intro Big Data Querying Made EZ By Fujio Turner Enterprise Control Language explained for Programmers @FujioTurner
  • 2. Comparison Block Based File Based JAVA C++ Petabytes 1-80,000 Jobs/day Since 2005 Exabytes Non-Indexed 4X-13X Indexed: 2K-3K Jobs/sec Since 2000 ? ? ? ? ? ? Thor Roxie
  • 3. What Is ECL? ECL (Enterprise Control Language) is a C++ based query language for use with HPCC Systems Big Data platform. ECLs syntax and format is very simple and easy to learn.! ! Note - ECL is very similar to Hadoop’s pig ,but! more expressive and feature rich.
  • 4. Comparing ECL to General Programming In this presentation you will see how in ECL loading and querying data is just like reading and finding data in a plain text file.! general programming (general common logic)! vs.! ECL General Code HERE ECL Code HERE General ECL
  • 5. Example Text File Name State Age Kevin CA 45 Mark MI 27 Sara FL 64 Customer Data May 2010 ~/cdata_2010.txt! example file name = ~/hpcc::cdata_2010.txt ECL example file distributed in HPCC cluster
  • 6. Opening File: general programming vs ECL d = fopen(‘~/cdata_2010.txt’) File Location d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); General ECL
  • 7. Opening File: general programming vs ECL d = fopen(‘~/cdata_2010.txt’) File Location Open File Function d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); General ECL
  • 8. Organizing: general programming vs ECL d = fopen(‘~/cdata_2010.txt’) new_d = split( d ,“rn”) Split Data(d) by Row Kevin CA 45 Mark MI 27 Sara FL 64 d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); General ECL
  • 9. Organizing: general programming vs ECL d = fopen(‘~/cdata_2010.txt’) new_d = split( d ,“rn”) cs := RECORD! ! STRING20 Name;! ! STRING2 State;! ! INT3 Age;! END Split Data(d) by Row d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); Use This Schema on this file! to Give Structure to Data Kevin CA 45 Mark MI 27 Sara FL 64 General ECL
  • 10. Find “Sara”: general programming vs ECL cs := RECORD! ! STRING20 Name;! ! STRING2 State;! ! INT3 Age;! END d = fopen(‘~/cdata_2010.txt’) new_d = split( d ,“rn”) Split Data by Column for(x = 0; x< 3; x++){! ! row = new_d[x]! ! new_row = split(row,“ ”)! ! if(new_row[0] == ‘Sara’){! ! ! print ”Found Sara”! ! }! } 0 1 2 Kevin CA 45 Mark MI 27 Sara FL 64 d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); General ECL
  • 11. Find “Sara”: general programming vs ECL cs := RECORD! ! STRING20 Name;! ! STRING2 State;! ! INT3 Age;! END d = fopen(‘~/cdata_2010.txt’) new_d = split( d ,“rn”) Split Data by Column for(x = 0; x< 3; x++){! ! row = new_d[x]! ! new_row = split(row,“ ”)! ! if(new_row[0] == ‘Sara’){! ! ! print ”Found Sara”! ! }! } 0 1 2 Kevin CA 45 Mark MI 27 Sara FL 64 d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); Filter Data By General ECL
  • 12. Find “Sara”: general programming vs ECL cs := RECORD! ! STRING20 Name;! ! STRING2 State;! ! INT3 Age;! END d = fopen(‘~/cdata_2010.txt’) new_d = split( d ,“rn”) Split Data by Column for(x = 0; x< 3; x++){! ! row = new_d[x]! ! new_row = split(row,“ ”)! ! if(new_row[0] == ‘Sara’){! ! ! print ”Found Sara”! ! }! } 0 1 2 Kevin CA 45 Mark MI 27 Sara FL 64 d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); Filter Data By Output General ECL
  • 13. Find “Sara”: general programming vs ECL cs := RECORD! ! STRING20 Name;! ! STRING2 State;! ! INT3 Age;! END d = fopen(‘~/cdata_2010.txt’) new_d = split( d ,“rn”) Split Data by Column for(x = 0; x< 3; x++){! ! row = new_d[x]! ! new_row = split(row,“ ”)! ! if(new_row[0] == ‘Sara’){! ! ! print ”Found Sara”! ! }! } d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); sara := d(Name = ‘Sara’); 0 1 2 Kevin CA 45 Mark MI 27 Sara FL 64 Filter Data By Output General ECL
  • 14. Find “Sara”: general programming vs ECL cs := RECORD! ! STRING20 Name;! ! STRING2 State;! ! INT3 Age;! END d = fopen(‘~/cdata_2010.txt’) new_d = split( d ,“rn”) Split Data by Column for(x = 0; x< 3; x++){! ! row = new_d[x]! ! new_row = split(row,“ ”)! ! if(new_row[0] == ‘Sara’){! ! ! print ”Found Sara”! ! }! } d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); sara := d(Name = ’Sara’); OUTPUT(sara); 0 1 2 Kevin CA 45 Mark MI 27 Sara FL 64 Filter Data By Output General ECL
  • 15. Find “Sara” & Older then 50: general programming vs ECL cs := RECORD! ! STRING20 Name;! ! STRING2 State;! ! INT3 Age;! END d = fopen(‘~/cdata_2010.txt’) new_d = split( d ,“rn”) for(x = 0; x< 3; x++){! ! row = new_d[x]! ! new_row = row.split(“ ”)! ! if(new row[0] == ‘Sara’ and row[2] >50){! ! ! print ”Found Sara”! ! }! } d := DATASET(‘~hpcc::cdata_2010’,cs,THOR); sara := d(Name = ‘Sara’ AND Age > 50); OUTPUT(sara); 0 1 2 Kevin CA 45 Mark MI 27 Sara FL 64 General ECL
  • 16. ECL is EZ •Make your own functions & libraries in ECL.! •Modularize your code with “Import”: reuse old code Machine Learning Built-in http://hpccsystems.com/ml
  • 17. ECL Plugin for Eclipse IDE http://hpccsystems.com/products-and-services/products/plugins/eclipse-ide
  • 18. ECL + Others Languages ECL is C++ based so all your C/C++ code can be used in ECL.! &! Use other languages and methods like below to query too.
  • 19. ECL GUIDE http://hpccsystems.com/download/docs/ecl-language-reference JOIN! MERGE! LENGTH! REGEX! ROUND! SUM! COUNT! TRIM! WHEN! AVE! ABS! CASE! DEDUP! NORMALIZE! DENORMALIZE! IF! SORT! GROUP! more ….
  • 20. For More HPCC “How To’s” Go to Query with Plain SQL http://www.slideshare.net/hpccsystems/jdbc-hpcc or SQL TO ECL http://www.slideshare.net/FujioTurner/meet-up-sqldemopp
  • 21. Watch how to install HPCC Systems in 5 Minutes Download HPCC Systems Open Source Community Edition http://hpccsystems.com/download/ http://www.youtube.com/watch?v=8SV43DCUqJg or Source Code https://github.com/hpcc-systems