Purely JAVA-based, esProc boasts complete computing system and agile syntax, and thus supports high performance parallel computing. It can effectively improve computational power, increase development efficiency, reduce database traffic, and optimize data management.

Improve computational power

With support for multithreaded parallel computing, esProc can enhance the performance of processing big data, and lighten the pressure of data processing with high concurrency.

esProc supports single database computations, as well as computations involving multiple data sources – cross-database computations and computations between database and non-database. In particular, esProc offers access to HDFS and external memory computing for processing big files.

esProc can process both structured data and unstructured data. Its free, flexible computing system allows users to define customized algorithms conveniently and efficiently.

Increase development efficiency

An esProc database script is written in grids. It supports direct reference of a cell name and stepwise computation, providing convenient observation of computing details and breaking complex computational target apart into simple steps. That gives esProc the real debug ability.

esProc has an agile syntax, supports set type data, discrete records, ordered sets, object reference and set style data grouping and allows users to compute freely, thus achieving higher development efficiency than SQL/SP.

Furthermore, esProc outputs JDBC standard result set to get integrated into JAVA application and reporting tools easily.

Reduce database traffic

esProc’s complete computing system enables it to support high performance in-memory computing and parallel processing of external files. Therefore it can act as the middleware specializing in data computing, between the database and the application, for handling problems involving big data, or high concurrency and throughput. Greatly relieved from the outside pressure of data computing, the database will be able to concentrate on data security management and data storage.

Not only can esProc effectively relieve database from data computing, it also supports inexpensive scaling out which helps cut the cost of database hardware and software.

Diverse Data Sources

esProc supports handling data coming from different data sources and writing result back to multiple or single data source. esProc also supports the relational database and NoSQL databases like MongoDB and Cassandra. It provides a wide selection of functions to process structured and semi-structured data directly. It can access the file data stored locally or on the LAN directly, and the big data file on the redundant systems like HDFS seamlessly. It supports both the common txt files or Excel sheets, and the uncommon files in proprietary formats of better performance.

esProc script is not bound with any specific data source. In other words, it supports computations involving heterogeneous data sources by nature, which reduces the difficulty of binding the NoSQL databases and the traditional databases.

High Performance

esProc optimizes algorithms for structured data to support in-memory computing, external memory computing, parallel computing, and order-related computations. It enables programmers to select freely the optimum path based on the characteristics of data and algorithms. Thus higher performance can be achieved, compared with using traditional databases or scripting languages like Perl.

Without having to convert data flow to object, data retrieval with esProc is much faster than that using database JDBC. Through parallel processing, esProc can noticeably improve the performance of traversing big data, while a traditional database performance has only been slightly improved by the same approach. For concurrent processing of big data, esProc makes use of parallel computing to achieve better performance and more steady computing time, compared with the traditional databases. In handling big text files with parallel processing, esProc code is simpler than that written in JAVA and Perl and has a higher performance than Perl. Using a pointer to reference foreign key values in in-memory related computing, esProc performs better than a traditional database. During script execution involving big data, the performance of esProc is several times higher than that of the stored procedure.

Agile syntax

esProc provides professional database scripts, which feature the intuitive grid-style code. Without defining the temporary variables, users can reference intermediate computing results with cell names, and implement a step-by-step computation easily. The larger computing target can thus be divided into several more easily solved computing steps.

esProc provides set type data, discrete records, ordered sets, object reference, and set-style data grouping to access members of a set freely and handle the sequence-number-related computing; solve various tough grouping problems in the business computing effortlessly; simplify structured data computing, making it much easier for users to express algorithms in a natural way according to the business logic, and to convert the business logic into actual code. Regarding the same computation, esProc code is several times more concise than code written in Java or SQL.


esProc is a pure JAVA computing tool. It supports multiple data sources and exports result by JDBC standard. Therefore, esProc can be integrated into reporting tools and JAVA applications seamlessly. It has the following merits: accepting cross-platform use and call; easy deployment and configuration; good openness to support the third party algorithm, and to be conveniently integrated into the existing applications.