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

Weitere ähnliche Inhalte

Was ist angesagt?

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-SQLMichael 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 tuningCarlos 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
 
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 ReadDatabricks
 
Hive and HiveQL - Module6
Hive and HiveQL - Module6Hive and HiveQL - Module6
Hive and HiveQL - Module6Rohit 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 StoryMichael Rys
 
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 HadoopJulian 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 TuningMichael Rys
 

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

Ähnlich wie 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 DevelopersMichael 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 architectureAjeet Singh
 
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 3RojaT4
 
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
 
SQL Server 2008 Overview
SQL Server 2008 OverviewSQL Server 2008 Overview
SQL Server 2008 OverviewEric Nelson
 
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 FeaturesDave 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 MeasuresSteven Johnson
 
Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021Mark 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.comSyed 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
 
SQL Server 2016 novelties
SQL Server 2016 noveltiesSQL Server 2016 novelties
SQL Server 2016 noveltiesMSDEVMTL
 
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 XmlDavid Truxall
 
Software development - the java perspective
Software development - the java perspectiveSoftware development - the java perspective
Software development - the java perspectiveAlin Pandichi
 

Ähnlich wie 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
 
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?
 
SQL Server 2008 Overview
SQL Server 2008 OverviewSQL Server 2008 Overview
SQL Server 2008 Overview
 
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
 

Kürzlich hochgeladen

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

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