esProc is the professional database computing script, featuring the intuitive grid-style code. Without defining the temporary variables, users can reference the intermediate computing result with the cell name. By taking this advantage, users can implement the step-by-step computing easily. The great computing goal can then be decomposed into several computing steps to get the problem solved easily.
esProc supports the data sets, disassociated records, ordered set, object reference, and set-style grouping to access the member of set freely and handle the serial-number-related computing. esProc can solve any tough grouping problems in the business computing, simplify the structured data computing, make it much easier for users to present the algorithm from the business perspective, and reduce the difficulty of converting the business logics into actual code. Regarding the same computing, esProc code is several times more concise than that of Java or SQL.
Diverse Data Computing
esProc supports the computing between different data sources. The computing results can be written back to multiple or single data source. In addition, esProc also supports relational database and NoSQL databases like MongoDB, and Cassandra. esProc provides a great number of functions to support the computing over structured and semi-structured data computing directly. esProc 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 file or Excel sheets, and the particular files in proprietary format but of great performance.
esProc script is not bound with any specific data source. In other words, it supports the mixed computing involving various data sources by nature, which reduced the difficulty of binding the big data and the traditional database.
Parallel computing over big data
esProc supports the inexpensive scale-out, multi-thread computing on single node, and parallel computing on multiple nodes with no center. The big data from database, LAN, and HDFS can be decomposed into several small data blocks and computed across multiple node machines. The task scale and computing node can be specified by programmer flexibly. The node machine can be the high-end server or inexpensive PC, the Windows client or Linux server. esProc supports the distributed computing at multiple levels. Every node can act as the main node for allocating and summarizing or the sub node for undertaking the detailed computing.
esProc can search the free node in the user-specified scope and replace the node automatically to proceed in case of error. esProc supports the redundant data to ensure the reliability and stability of big data computing.
esProc optimizes the syntax for the structured data, supports the in-memory computing and ordered set, and enables programmers to select the optimized path based on the characteristics of data and algorithms. The actual testing data indicates that the performance of esProc is close or even higher than that of database for the standalone machine. The column storage can significantly increase the performance.
esProc supports the lightweight parallel computing, the huge data volume, great computing workload, and high concurrency for distributing the jobs to multiple nodes evenly. It supports the data sharing in node, so that the computing performance involving multiple threads can be elevated and the task conflicts can be avoided effectively. For the data between nodes, users can select the data exchange in external storage or direct in-memory exchange, depending on the size of result set. Users can balance between the fault tolerance and performance. For those small tasks with high concurrency, the in-memory computing can be employed to boost the performance. For those time-consuming big job, the external storage can be used to ensure the reliability.
esProc is the pure JAVA computing tool, supports multiple data sources and exports by JDBC. Therefore, esProc can be integrated with reporting tool and JAVA applications seamlessly. esProc features the cross-platform usage and calling for easy deployment and configuration. It is built with the good openness, supports the third party algorithm, and quite convenient to be integrated into the existing applications.