SlideShare a Scribd company logo
esProc
What is esProc
A program language oriented for structured data processing and computing-SPL
Specialized for (Semi)structured data computing and processing
Developed for programmers and data analysts
Suitable for multi-step computing
Provide many high-efficiency algorithms
More efficient than SQL, Java, Python, R
SPL=(Structured Process Language)
A program language introduced by esProc
What can esProc do?
• Query analysis for text or Excel, search, replace, correlation, summary, merge, etc.
• File or database table correlation statistics
• Database computing that are difficult for SQL to implement
• Muti-database combined computing
• Data migration among databases
• Enhanced computing for nosql like mongodb
• ETL
• Data preparation before data mining
• Test data generation
• …
Why do we need esProc?
• esProc’s agile syntax can greatly improve the efficiency of data processing.
• esProc supports process calculation, coding according to natural thinking,
simple implementation and low personnel requirements.
• Provides ready-to-use IDE, easy to edit and debug, better than other tools
• Text/Excel files, databases and NoSQL data can be read directly for
processing and mixed computing. Structured data processing class library
is rich.
• It provides memory computing, private data storage format and parallel
mechanism to ensure efficient operation.
esProc Structure
Text
Excel
JSON
DB
NoSQL
…
Input
Text
Excel
JSON
DB
…
Output
Print
Coding and calculation
Agile syntax
Can you do it in a more natural way of thinking?
1 select max(ConsecutiveDays)
2 from (select count(*) ConsecutiveDays
3 from (select sum(ChangieMark) over(order by TradingDate) Non-risingDays
4 from (select TradingDate,
5 case when ClosingPrice>lag(ClosingPrice) over(order by TradingDate)
6 then 0 else 1 end ChangeMark
7 from StockPrice) )
8 group by Non-risingDays) SQL
A
1 =StockPrice.sort(TradingDate)
2 =0
3 =A1.max(A2=if(ClosingPrice>ClosingPrice[-1],A2+1,0))
esProc
Count the longest consecutively rising trading days for a stock
Syntax suitable for describing a natural way of thinking;
Data model enabling efficient algorithms
Procedure-oriented computing
Reliable loop branch control
Natural & clean step-by-step computation, direct reference of cell name without
specifically defining a variable
esProc dev environment
Ready-to-use
Easy-to-debug
Execute/Debug/Step Set breakpoint
Simple syntax, natural & intuitive computing logic
WYSIWYG-style
interface that
enables easy
debugging and
convenient
intermediate result
reference
Real-time
system info
output
SQL DBFile NoSQL DB
esProc
✓ Text、Excel、JSON, etc.
✓ Oracle,MSSQL,MySQL
✓ MongoDB, NoSQL
✓ Structured and Semi-structured data
✓ Result can be reloaded to DB and
File
Direct use of multiple data sources
Rich class library
Intended for structured data processing
Set operations Ordered sets
Grouping & Loop Sorting & Filtering
SQL Query
Aside from SPL,esProc also supports querying files using SQL
A B
1 =file(“/home/user/duty.xlsx”).importxls@tx()
2 =A1.groups(name,count(name):count)
A B
1 $select name,count(*) from /home/user/duty.xlsx group by name
SQL Syntax:
SPL Syntax:
SPL vs. SQL
To find clients whose sales amount are listed in the top 10 every month
select Client from(
select * from(
select B.*,row_number() over(partition by month order by SumValue desc)
rown from(
select to_char(SellDate,'mm') month,Client,sum(Quantity*Amount) SumValue
from contract
where SellDate>=to_date('2012-01-01','yyyy-mm-dd')
and SellDate<=to_date('2012-12-31','yyyy-mm-dd')
group by to_char(SellDate,'mm'),Client order by month,client
) B
)C
where rown<=10
)D
group by Client
having count(Client)=(
select count(distinct(to_char(SellDate,'mm')))
from contract
where SellDate>=to_date('2012-01-01','yyyy-mm-dd')
and SellDate<=to_date('2012-12-31','yyyy-mm-dd')
)
SQL:
The script is difficult to read and maintain, and can not
be simplified via step by step process
SPL:
The script is done in the cells and natural step by step
computing is realized by mutual cell-name reference
SPL vs. SQL
To find out the salesmen whose sales volume have increased by 10% in three consecutive
months
WITH A AS
(SELECT salesMan,month, amount/lag(amount)
OVER(PARTITION BY salesMan ORDER BY month)-1 rising_range
FROM sales),
B AS
(SELECT salesMan,
CASE WHEN rising_range>=1.1 AND
lag(rising_range) OVER(PARTITION BY salesMan
ORDER BY month)>=1.1 AND
lag(rising_range,2) OVER(PARTITION BY salesMan
ORDER BY month)>=1.1
THEN 1 ELSE 0 END is_three_consecutive_month
FROM A)
SELECT DISTINCT salesMan FROM B WHERE is_three_consecutive_month=1
SQL:
Some computing has to be done by sub query due to lack
of set computing.
SPL:
Complex computing can be greatly simplified with
explicit set, relative position, sequence reference and
computing after grouping, etc.
SPL vs. SQL
To get the monthly contract growth rate of each salesman
with A as(
select actualSale,Quantity*Amount sales,sellDate from contract
),B as(
select actualSale,TO_NUMBER(to_char(SellDate,'yyyy')) year,
TO_NUMBER(to_char(SellDate,'mm')) month,
sum(sales) salesMonth
from A group by actualSale,TO_NUMBER(to_char(SellDate,'yyyy')) ,
TO_NUMBER(to_char(SellDate,'mm'))
order by actualSale,year,month
),C as(
select actualSale,year, month, salesMonth,
lag(salesMonth,1,0) over(order by actualSale,year,month) prev_salesMonth,
lag(actualSale,1,0) over(order by actualSale) prev_actualSale
from B
)
select actualSale,prev_actualSale,year, month,
(case when prev_salesMonth!=0 and
actualSale=prev_actualSale
then ((salesMonth/prev_salesMonth)-1)
else 0
end)LRR
from C
SQL:
Disordered data. Ordered computing can only be
achieved by indirect script.
SPL:
Totally supports ordered computing, and can easily
solve order related problems, like sorting, ranking, top
N, comparing with the previous or the same period, etc.
SPL vs. Python
Sampling(Divide the data into 30% and 70% randomly)
Python:
Need to show introducing class libraries, Set
operations (difference sets) are slightly more complex.
To view the results, you need to print them on display.
SPL:
Provides rich built-in libraries for direct use, Set
operations are very simple to write. The results of
each step can be viewed in the results panel.
Time consuming:67ms
Time consuming:6ms
SPL vs. Python
Data conversion(Number fields remain unchanged, and other fields are converted to numbers)
Python:
The implementation is relatively simple, but the codes
are not short. Identifying blocks of code by
indentation is a challenge for users.
SPL:
The overall codes are very short, and the loop
functions provided can easily traverse the data. Code
blocks are clearly identified through the grid.
Time consuming:180ms Time consuming:15ms
SPL vs. Python
Generate PivotTable (music as index, user as field, score as score)
Python:
Explicit “for”is needed to implement grouping and
transpose actions .
SPL:
The process code is more concise, without any
“for”.
Time consuming:23ms Time consuming:1ms

More Related Content

What's hot

U-SQL Reading & Writing Files (SQLBits 2016)
U-SQL Reading & Writing Files (SQLBits 2016)U-SQL Reading & Writing Files (SQLBits 2016)
U-SQL Reading & Writing Files (SQLBits 2016)
Michael Rys
 
Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)
Michael Rys
 
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
Taming the Data Science Monster with A New ‘Sword’ – U-SQLTaming the Data Science Monster with A New ‘Sword’ – U-SQL
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
Michael Rys
 
U-SQL Partitioned Data and Tables (SQLBits 2016)
U-SQL Partitioned Data and Tables (SQLBits 2016)U-SQL Partitioned Data and Tables (SQLBits 2016)
U-SQL Partitioned Data and Tables (SQLBits 2016)
Michael Rys
 
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
Michael Rys
 
Hands-On with U-SQL and Azure Data Lake Analytics (ADLA)
Hands-On with U-SQL and Azure Data Lake Analytics (ADLA)Hands-On with U-SQL and Azure Data Lake Analytics (ADLA)
Hands-On with U-SQL and Azure Data Lake Analytics (ADLA)
Jason L Brugger
 
Using C# with U-SQL (SQLBits 2016)
Using C# with U-SQL (SQLBits 2016)Using C# with U-SQL (SQLBits 2016)
Using C# with U-SQL (SQLBits 2016)
Michael Rys
 
Redshift performance tuning
Redshift performance tuningRedshift performance tuning
Redshift performance tuning
Carlos del Cacho
 
ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)
Michael Rys
 
Mysql Indexing
Mysql IndexingMysql Indexing
Mysql Indexing
Tasawr Interactive
 
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Beat Signer
 
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
Michael Rys
 
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
Michael Rys
 
Delta: Building Merge on Read
Delta: Building Merge on ReadDelta: Building Merge on Read
Delta: Building Merge on Read
Databricks
 
Hive and HiveQL - Module6
Hive and HiveQL - Module6Hive and HiveQL - Module6
Hive and HiveQL - Module6
Rohit Agrawal
 
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Michael Rys
 
Microsoft's Hadoop Story
Microsoft's Hadoop StoryMicrosoft's Hadoop Story
Microsoft's Hadoop Story
Michael Rys
 
Sql Server Basics
Sql Server BasicsSql Server Basics
Sql Server Basics
rainynovember12
 
Discardable In-Memory Materialized Queries With Hadoop
Discardable In-Memory Materialized Queries With HadoopDiscardable In-Memory Materialized Queries With Hadoop
Discardable In-Memory Materialized Queries With Hadoop
Julian Hyde
 
U-SQL Query Execution and Performance Tuning
U-SQL Query Execution and Performance TuningU-SQL Query Execution and Performance Tuning
U-SQL Query Execution and Performance Tuning
Michael Rys
 

What's hot (20)

U-SQL Reading & Writing Files (SQLBits 2016)
U-SQL Reading & Writing Files (SQLBits 2016)U-SQL Reading & Writing Files (SQLBits 2016)
U-SQL Reading & Writing Files (SQLBits 2016)
 
Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)
 
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
Taming the Data Science Monster with A New ‘Sword’ – U-SQLTaming the Data Science Monster with A New ‘Sword’ – U-SQL
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
 
U-SQL Partitioned Data and Tables (SQLBits 2016)
U-SQL Partitioned Data and Tables (SQLBits 2016)U-SQL Partitioned Data and Tables (SQLBits 2016)
U-SQL Partitioned Data and Tables (SQLBits 2016)
 
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
 
Hands-On with U-SQL and Azure Data Lake Analytics (ADLA)
Hands-On with U-SQL and Azure Data Lake Analytics (ADLA)Hands-On with U-SQL and Azure Data Lake Analytics (ADLA)
Hands-On with U-SQL and Azure Data Lake Analytics (ADLA)
 
Using C# with U-SQL (SQLBits 2016)
Using C# with U-SQL (SQLBits 2016)Using C# with U-SQL (SQLBits 2016)
Using C# with U-SQL (SQLBits 2016)
 
Redshift performance tuning
Redshift performance tuningRedshift performance tuning
Redshift performance tuning
 
ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)
 
Mysql Indexing
Mysql IndexingMysql Indexing
Mysql Indexing
 
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
 
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
U-SQL User-Defined Operators (UDOs) (SQLBits 2016)
 
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
 
Delta: Building Merge on Read
Delta: Building Merge on ReadDelta: Building Merge on Read
Delta: Building Merge on Read
 
Hive and HiveQL - Module6
Hive and HiveQL - Module6Hive and HiveQL - Module6
Hive and HiveQL - Module6
 
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
 
Microsoft's Hadoop Story
Microsoft's Hadoop StoryMicrosoft's Hadoop Story
Microsoft's Hadoop Story
 
Sql Server Basics
Sql Server BasicsSql Server Basics
Sql Server Basics
 
Discardable In-Memory Materialized Queries With Hadoop
Discardable In-Memory Materialized Queries With HadoopDiscardable In-Memory Materialized Queries With Hadoop
Discardable In-Memory Materialized Queries With Hadoop
 
U-SQL Query Execution and Performance Tuning
U-SQL Query Execution and Performance TuningU-SQL Query Execution and Performance Tuning
U-SQL Query Execution and Performance Tuning
 

Similar to esProc introduction

U-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersU-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for Developers
Michael Rys
 
3 CityNetConf - sql+c#=u-sql
3 CityNetConf - sql+c#=u-sql3 CityNetConf - sql+c#=u-sql
3 CityNetConf - sql+c#=u-sql
Łukasz Grala
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architecture
Ajeet Singh
 
SQL Windowing
SQL WindowingSQL Windowing
SQL Windowing
Sandun Perera
 
SPL_ALL_EN.pptx
SPL_ALL_EN.pptxSPL_ALL_EN.pptx
SPL_ALL_EN.pptx
政宏 张
 
Big data technology unit 3
Big data technology unit 3Big data technology unit 3
Big data technology unit 3
RojaT4
 
SQL Server 2008 Overview
SQL Server 2008 OverviewSQL Server 2008 Overview
SQL Server 2008 Overview
Eric Nelson
 
What's New for Developers in SQL Server 2008?
What's New for Developers in SQL Server 2008?What's New for Developers in SQL Server 2008?
What's New for Developers in SQL Server 2008?ukdpe
 
cPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven FeaturescPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven Features
Dave Stokes
 
Azure Data Factory Data Flows Training (Sept 2020 Update)
Azure Data Factory Data Flows Training (Sept 2020 Update)Azure Data Factory Data Flows Training (Sept 2020 Update)
Azure Data Factory Data Flows Training (Sept 2020 Update)
Mark Kromer
 
MIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome MeasuresMIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome Measures
Steven Johnson
 
Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021
Mark Kromer
 
Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)
James Serra
 
Spark SQL In Depth www.syedacademy.com
Spark SQL In Depth www.syedacademy.comSpark SQL In Depth www.syedacademy.com
Spark SQL In Depth www.syedacademy.com
Syed Hadoop
 
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
NoSQLmatters
 
Sql tuning guideline
Sql tuning guidelineSql tuning guideline
Sql tuning guidelineSidney Chen
 
Introduction to Azure Data Lake
Introduction to Azure Data LakeIntroduction to Azure Data Lake
Introduction to Azure Data Lake
Antonios Chatzipavlis
 
SQL Server 2016 novelties
SQL Server 2016 noveltiesSQL Server 2016 novelties
SQL Server 2016 novelties
MSDEVMTL
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
David Truxall
 
Software development - the java perspective
Software development - the java perspectiveSoftware development - the java perspective
Software development - the java perspective
Alin Pandichi
 

Similar to esProc introduction (20)

U-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersU-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for Developers
 
3 CityNetConf - sql+c#=u-sql
3 CityNetConf - sql+c#=u-sql3 CityNetConf - sql+c#=u-sql
3 CityNetConf - sql+c#=u-sql
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architecture
 
SQL Windowing
SQL WindowingSQL Windowing
SQL Windowing
 
SPL_ALL_EN.pptx
SPL_ALL_EN.pptxSPL_ALL_EN.pptx
SPL_ALL_EN.pptx
 
Big data technology unit 3
Big data technology unit 3Big data technology unit 3
Big data technology unit 3
 
SQL Server 2008 Overview
SQL Server 2008 OverviewSQL Server 2008 Overview
SQL Server 2008 Overview
 
What's New for Developers in SQL Server 2008?
What's New for Developers in SQL Server 2008?What's New for Developers in SQL Server 2008?
What's New for Developers in SQL Server 2008?
 
cPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven FeaturescPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven Features
 
Azure Data Factory Data Flows Training (Sept 2020 Update)
Azure Data Factory Data Flows Training (Sept 2020 Update)Azure Data Factory Data Flows Training (Sept 2020 Update)
Azure Data Factory Data Flows Training (Sept 2020 Update)
 
MIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome MeasuresMIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome Measures
 
Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021
 
Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)Azure Synapse Analytics Overview (r1)
Azure Synapse Analytics Overview (r1)
 
Spark SQL In Depth www.syedacademy.com
Spark SQL In Depth www.syedacademy.comSpark SQL In Depth www.syedacademy.com
Spark SQL In Depth www.syedacademy.com
 
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
Simon Elliston Ball – When to NoSQL and When to Know SQL - NoSQL matters Barc...
 
Sql tuning guideline
Sql tuning guidelineSql tuning guideline
Sql tuning guideline
 
Introduction to Azure Data Lake
Introduction to Azure Data LakeIntroduction to Azure Data Lake
Introduction to Azure Data Lake
 
SQL Server 2016 novelties
SQL Server 2016 noveltiesSQL Server 2016 novelties
SQL Server 2016 novelties
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
 
Software development - the java perspective
Software development - the java perspectiveSoftware development - the java perspective
Software development - the java perspective
 

Recently uploaded

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
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
 
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
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
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)
Ralf Eggert
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
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
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
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
 
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
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
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
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
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
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
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
 

Recently uploaded (20)

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
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?
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
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)
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
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...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
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 !
 
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
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
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
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
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
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
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
 

esProc introduction

  • 2. What is esProc A program language oriented for structured data processing and computing-SPL Specialized for (Semi)structured data computing and processing Developed for programmers and data analysts Suitable for multi-step computing Provide many high-efficiency algorithms More efficient than SQL, Java, Python, R SPL=(Structured Process Language) A program language introduced by esProc
  • 3. What can esProc do? • Query analysis for text or Excel, search, replace, correlation, summary, merge, etc. • File or database table correlation statistics • Database computing that are difficult for SQL to implement • Muti-database combined computing • Data migration among databases • Enhanced computing for nosql like mongodb • ETL • Data preparation before data mining • Test data generation • …
  • 4. Why do we need esProc? • esProc’s agile syntax can greatly improve the efficiency of data processing. • esProc supports process calculation, coding according to natural thinking, simple implementation and low personnel requirements. • Provides ready-to-use IDE, easy to edit and debug, better than other tools • Text/Excel files, databases and NoSQL data can be read directly for processing and mixed computing. Structured data processing class library is rich. • It provides memory computing, private data storage format and parallel mechanism to ensure efficient operation.
  • 6. Agile syntax Can you do it in a more natural way of thinking? 1 select max(ConsecutiveDays) 2 from (select count(*) ConsecutiveDays 3 from (select sum(ChangieMark) over(order by TradingDate) Non-risingDays 4 from (select TradingDate, 5 case when ClosingPrice>lag(ClosingPrice) over(order by TradingDate) 6 then 0 else 1 end ChangeMark 7 from StockPrice) ) 8 group by Non-risingDays) SQL A 1 =StockPrice.sort(TradingDate) 2 =0 3 =A1.max(A2=if(ClosingPrice>ClosingPrice[-1],A2+1,0)) esProc Count the longest consecutively rising trading days for a stock Syntax suitable for describing a natural way of thinking; Data model enabling efficient algorithms
  • 7. Procedure-oriented computing Reliable loop branch control Natural & clean step-by-step computation, direct reference of cell name without specifically defining a variable
  • 8. esProc dev environment Ready-to-use Easy-to-debug Execute/Debug/Step Set breakpoint Simple syntax, natural & intuitive computing logic WYSIWYG-style interface that enables easy debugging and convenient intermediate result reference Real-time system info output
  • 9. SQL DBFile NoSQL DB esProc ✓ Text、Excel、JSON, etc. ✓ Oracle,MSSQL,MySQL ✓ MongoDB, NoSQL ✓ Structured and Semi-structured data ✓ Result can be reloaded to DB and File Direct use of multiple data sources
  • 10. Rich class library Intended for structured data processing Set operations Ordered sets Grouping & Loop Sorting & Filtering
  • 11. SQL Query Aside from SPL,esProc also supports querying files using SQL A B 1 =file(“/home/user/duty.xlsx”).importxls@tx() 2 =A1.groups(name,count(name):count) A B 1 $select name,count(*) from /home/user/duty.xlsx group by name SQL Syntax: SPL Syntax:
  • 12. SPL vs. SQL To find clients whose sales amount are listed in the top 10 every month select Client from( select * from( select B.*,row_number() over(partition by month order by SumValue desc) rown from( select to_char(SellDate,'mm') month,Client,sum(Quantity*Amount) SumValue from contract where SellDate>=to_date('2012-01-01','yyyy-mm-dd') and SellDate<=to_date('2012-12-31','yyyy-mm-dd') group by to_char(SellDate,'mm'),Client order by month,client ) B )C where rown<=10 )D group by Client having count(Client)=( select count(distinct(to_char(SellDate,'mm'))) from contract where SellDate>=to_date('2012-01-01','yyyy-mm-dd') and SellDate<=to_date('2012-12-31','yyyy-mm-dd') ) SQL: The script is difficult to read and maintain, and can not be simplified via step by step process SPL: The script is done in the cells and natural step by step computing is realized by mutual cell-name reference
  • 13. SPL vs. SQL To find out the salesmen whose sales volume have increased by 10% in three consecutive months WITH A AS (SELECT salesMan,month, amount/lag(amount) OVER(PARTITION BY salesMan ORDER BY month)-1 rising_range FROM sales), B AS (SELECT salesMan, CASE WHEN rising_range>=1.1 AND lag(rising_range) OVER(PARTITION BY salesMan ORDER BY month)>=1.1 AND lag(rising_range,2) OVER(PARTITION BY salesMan ORDER BY month)>=1.1 THEN 1 ELSE 0 END is_three_consecutive_month FROM A) SELECT DISTINCT salesMan FROM B WHERE is_three_consecutive_month=1 SQL: Some computing has to be done by sub query due to lack of set computing. SPL: Complex computing can be greatly simplified with explicit set, relative position, sequence reference and computing after grouping, etc.
  • 14. SPL vs. SQL To get the monthly contract growth rate of each salesman with A as( select actualSale,Quantity*Amount sales,sellDate from contract ),B as( select actualSale,TO_NUMBER(to_char(SellDate,'yyyy')) year, TO_NUMBER(to_char(SellDate,'mm')) month, sum(sales) salesMonth from A group by actualSale,TO_NUMBER(to_char(SellDate,'yyyy')) , TO_NUMBER(to_char(SellDate,'mm')) order by actualSale,year,month ),C as( select actualSale,year, month, salesMonth, lag(salesMonth,1,0) over(order by actualSale,year,month) prev_salesMonth, lag(actualSale,1,0) over(order by actualSale) prev_actualSale from B ) select actualSale,prev_actualSale,year, month, (case when prev_salesMonth!=0 and actualSale=prev_actualSale then ((salesMonth/prev_salesMonth)-1) else 0 end)LRR from C SQL: Disordered data. Ordered computing can only be achieved by indirect script. SPL: Totally supports ordered computing, and can easily solve order related problems, like sorting, ranking, top N, comparing with the previous or the same period, etc.
  • 15. SPL vs. Python Sampling(Divide the data into 30% and 70% randomly) Python: Need to show introducing class libraries, Set operations (difference sets) are slightly more complex. To view the results, you need to print them on display. SPL: Provides rich built-in libraries for direct use, Set operations are very simple to write. The results of each step can be viewed in the results panel. Time consuming:67ms Time consuming:6ms
  • 16. SPL vs. Python Data conversion(Number fields remain unchanged, and other fields are converted to numbers) Python: The implementation is relatively simple, but the codes are not short. Identifying blocks of code by indentation is a challenge for users. SPL: The overall codes are very short, and the loop functions provided can easily traverse the data. Code blocks are clearly identified through the grid. Time consuming:180ms Time consuming:15ms
  • 17. SPL vs. Python Generate PivotTable (music as index, user as field, score as score) Python: Explicit “for”is needed to implement grouping and transpose actions . SPL: The process code is more concise, without any “for”. Time consuming:23ms Time consuming:1ms