Pure 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 computing, as well as computations involving multiple data sources – cross-database computing 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

The esProc script for database computing is written in grids. It supports direct reference of cell name and stepwise operation, provides convenient observation of computing details, and is able to split complex computational target into simple steps. esProc possesses real debug functionality without any reservation.

With agile syntax, esProc supports set type data, individual records, ordered sets, object reference and set style data grouping. It 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 more 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, with the aim to handle problems with big data, or high concurrency and throughput. Greatly relieved from the outside pressure of data computing, the database will be able to concentrate its energy 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 computations involving different data sources and writing result back to multiple or single data source. esProc also supports relational database and NoSQL databases like MongoDB and Cassandra. It provides rich functions to process structured and semi-structured data directly. It can directly access the file data stored locally or on the LAN, and the big data file on the redundant system like HDFS. It supports both the common txt files or Excel sheets, and the particular files in proprietary formats of better performance.

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

High Performance

esProc optimizes algorithms for the structured data, supporting in-memory computing, external memory computing, parallel computing, and order-related computations. This 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 performance of traversing big data has improved considerably, 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 get better performance – which is better than traditional database performance – and steady computing time. 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 computing script, which features the intuitive grid-style code. Without defining the temporary variables, users can reference the intermediate computing result with the cell name, and implement the 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, individual records, ordered sets, object reference, and set-style data grouping to access members of set freely and handle the sequence-number-related computing; solve various tough grouping problems in the business computing; simplify the 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 that of Java or SQL.


esProc is the 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: The cross-platform use and call of it enables easy deployment and configuration; It is built with good openness to support the third party algorithm, and to be integrated into the existing applications conveniently.