Skip to content
hoocx1 edited this page Mar 9, 2022 · 8 revisions

What is esProc?

esProc is a programming language specially designed to handle (semi)structured data. It adopts a new and different data model and computational model, as well as provides a wide variety of basic algorithms, achieving easy and high-performance computational problem-solving processes.

A non-object-oriented language, esProc doesn’t have such complex concepts as inheritance and overloading. It uses the concept of object merely to facilitate the object-related methods. Any programmer with the basic level of programming skill, such as the familiarity of BASIC, can learn it quickly and well. A Java-interpreted dynamic language, esProc is able to flexibly generate code at run time, simplifying program development even further.

esProc defines its niche as the tool of computing (semi)structured data, so it doesn’t provide algorithms for directly performing statistical analysis, data mining and machine learning; nor is it an expert at processing media and GIS data.

What does esProc solve?

Data File Processor

  • Self processing text \Excel
  • Non professional developers quickly explore the data at hand
  • Text types are various and format is not standard
  • Excel has various versions and special layout
  • Batch processing of files

SQL Enhancer

  • Solve difficult database problems on desktop
  • Computation with complex logic
  • Multi step procedure computing
  • Large amount of temporary calculation
  • Exploratory analysis with high degree of freedom img Report Data Source
  • Diverse data sources,cross database & cross source
  • SQL with complex logic
  • Tedious Java custom data source
  • Stored procedure outside database that is low coupling and portable img JAVA Computing Layer
  • SQL is forbidden, require java to implement algorithm
  • Non RDB data source
  • Cross database computation
  • Complex algorithm, procedural algorithm
  • Stored procedure outside database that is hot deployed and low coupling img

How does esProc do it?

Independent computing engine

esProc does not rely on the computing power of the database, and has a complete agile syntax system.

No database is required during calculation.

  • It is Not converted to SQL and executed by database
  • Universal computing can be implemented for any data source img

Agile programming language

SPL(Structured Process Language)

Combined the common advantages of SQL and Java

  • Adapt to set batch computation (SQL advantage)
  • Good at step-by-step procedure computing (Java advantage)

Well designed rich library functions and consistency syntax

  • Easier to master and better performance than Python

APPLICATION

CASE: An insurance company - stored procedures outside the database

Vertica does not support stored procedures. Complex business logic can only be written in Java. Long code is hard to maintain.

img

User Evaluation

  • The best use for us is to pass parameters to the Vertica database.
  • Each cell becomes a data array that are easy to use, compare and manipulate. It is very logical and you have made it user friendly.

Application Effect

  • Enable Vertica to support stored procedures outside the database
  • The implementation of procedural algorithm is simple and friendly
  • BIRT data preparation is simple and efficient

CASE: A bank - computing middleware

There are 44 kinds of Excel, which are parsed by Java and imported into database. The development cycle is long and hard coding is difficult.

img

Reducing development cost
All 44 kinds of Excel analysis reduced from 32 person days to 6 person days

Improving development efficiency
Each Excel parsing code changed from 100 lines to 3 lines

Reducing maintenance cost
In addition to the short code and easy maintenance, script hot deployment takes effect immediately after modification img

Clone this wiki locally