SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Cassandra introduction apache con 2014 budapest
Cassandra introduction apache con 2014 budapestCassandra introduction apache con 2014 budapest
Cassandra introduction apache con 2014 budapestDuyhai 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 switchingJihoonKim157
 
Commit2015 kharchenko - python generators - ext
Commit2015   kharchenko - python generators - extCommit2015   kharchenko - python generators - ext
Commit2015 kharchenko - python generators - extMaxym Kharchenko
 
Web Application Security 101 - 05 Enumeration
Web Application Security 101 - 05 EnumerationWeb Application Security 101 - 05 Enumeration
Web Application Security 101 - 05 EnumerationWebsecurify
 
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 PythonMax 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 InformationVCP Muthukrishna
 
Unified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsUnified Data Platform, by Pauline Yeung of Cisco Systems
Unified Data Platform, by Pauline Yeung of Cisco SystemsAltinity Ltd
 
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 2Charles 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 EMailVCP 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 1Leandro 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 ScriptVCP 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
 

Was ist angesagt? (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
 

Ähnlich wie 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 sparkRaymond Tay
 
Mindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developersMindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developersKeshav 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 dotnetcodexmplrpravi12
 
Sql 99 and_some_techniques
Sql 99 and_some_techniquesSql 99 and_some_techniques
Sql 99 and_some_techniquesAlexey Kiselyov
 
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™
เธเธฒเธฃเน€เธ‚ เธขเธ™เธ„เธณเธช _เธ‡เธ„เธงเธšเธ„_เธกเธ‚__เธ™เธž__เธ™เธเธฒเธ™Boom Baphomet
 
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (1)HamHam' Kc
 
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)
การเข ยนคำส _งควบค_มข__นพ__นฐาน (2)Seenton Pukjira
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานHamHam' Kc
 
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
 
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 SQLBrendan 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
 

Ähnlich wie 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...
 

Mehr von 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 + CouchbaseFujio Turner
 
NoSQL Couchbase Lite & BigData HPCC Systems
NoSQL Couchbase Lite & BigData HPCC SystemsNoSQL Couchbase Lite & BigData HPCC Systems
NoSQL Couchbase Lite & BigData HPCC SystemsFujio Turner
 
HPCC Systems vs Hadoop
HPCC Systems vs HadoopHPCC Systems vs Hadoop
HPCC Systems vs HadoopFujio Turner
 
Big Data for Small Businesses & Startups
Big Data for Small Businesses & StartupsBig Data for Small Businesses & Startups
Big Data for Small Businesses & StartupsFujio 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 SystemsFujio 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 SystemsFujio 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 SystemsFujio Turner
 
3djson - Using Real World Data
3djson - Using Real World Data3djson - Using Real World Data
3djson - Using Real World DataFujio Turner
 

Mehr von 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
 

Kürzlich hochgeladen

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Kürzlich hochgeladen (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

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