Code Monkey home page Code Monkey logo

esproc's Introduction

         

About esProc SPL

To put it simply, esProc SPL is an intriguing programming language and a powerful data computing middleware, and can also work as a high-efficiency data warehouse: find more in Understand SPL in three aspects.

Different from the text-based programming language, SPL writes code in gridlines: find more in A programming language coding in a grid; as a data computing engine, SPL can generate high efficiency at much lower cost: esProc SPL, a data analysis engine reducing application cost by N times.

esProc SPL is a JVM-based data computing class library: SPL: The Open-source Java Library to Process Structured Data. It has much more and better functionalities than the other data processing languages based on JVM (Such as Kotlin and Scala): Competition of data processing languages on JVM: Kotlin, Scala and SPL. It can perform SQL-style computations without databases: Open-source SPL that can execute SQL without RDB, provides multi/diverse-source, mixed computing capability: Which Tool Is Ideal for Diverse Source Mixed Computations, and supports direct computations on files: Computing engine on open-format files and on WEB: Computing engine on WEB. Particularly, esProc SPL enables more flexible microservices: Open-source SPL Makes Microservices More "Micro" and convenient data preparation processing for report queries: The Open-source SPL Optimizes Report Application and Handles Endless Report Development Needs. esProc can also be embedded into an application to act as a built-in database: esProc SPL, the challenger of SQLite.

esProc SPL enriches the concept of middleware: DCM: A New Member of Middleware Family.

When working as a data warehouse, esProc SPL does not adopt the relational algebra-based SQL syntax. It invents an algebraic system called discrete data set instead: SPL: a database language featuring easy writing and fast running (Documentation: Paper of Discrete Data Set) to solve the problems of hard-to-code complex SQL (Why a SQL Statement Often Consists of Hundreds of Lines, Measured by KBs?).

SPL makes it convenient to achieve high-performance algorithms and thus obtains much higher computing performance than the traditional relational data warehouse: How the performance improvement by orders of magnitude happened. Find test reports in SPL Performance Testing. It can make the most use of the hardware resources by using creative algorithms. According to many practical instances, esProc can achieve, even exceed, the performance that the distributed databases have on a single machine.

As a data warehouse, esProc abandons the concept of “house” , breaks the closedness featured by the conventional databases and creates an open computing system: Data warehouse with “no house” performs better than the one with “the house”, making it qualified to replace most MPP data warehouses at lower resource-cost and with lighter framework: With lightweight SPL available, how necessary is MPP? .

To Learn esProc SPL

This book: SPL Programming is a good start for learning SPL syntax. The book intends for beginners who do not have any programming experiences. Look it through quickly if you are a veteran, but the object understanding explained in section 4.4 is worth a study. Chapter 5 is important, too. It explains SPL’s set-oriented way of thinking, which is quite different from the other languages. But once you understand and master SPL, you can write elegant code. Chapters 8-10 are staple of SPL learning. It regards the structured data computations in a different perspective from SQL. This is significant even for the professional programmers! From the SPL point of view, SQL is a little simple in understanding the structured data as the world is complex. The knowledges you obtained in various database courses are not broad and profound enough! You need a review and brush-up!

Find basic SPL concepts in this post: SPL concepts for beginners. For beginners, you can find characteristic basic computations of SPL in SPL Operations for Beginners. Experienced programmers can quickly understand the differences between SPL and SQL. A software architect can understand the differences between SPL and traditional databases after reading Q&A of esProc Architecture.

Find comprehensive SPL documentation in SPL Learning materials. Generally, an application programmer can get started in handling basic operations from database connection: SPL: Connecting to Databases and database read/write SPL: Reading and Writing Database Data or file access and computation SPL: Reading and Writing Structured Text Files. Then you can learn how to integrate SPL in a Java application How to Call an SPL Script in Java. Those make a simple learning loop.

High-performance computations are relatively difficult, but there is a systematic book on algorithms: Performance Optimization. Performance optimization algorithms are not unique to SPL. You can implement high-performance computations using another programming language (except for SQL) after you learn these algorithms. The key lies in algorithm instead of syntax. Yet, you need to grasp SPL concept and syntax well in order to better understand the algorithms.

The SPL learning posts above also contain applications of the performance optimization algorithms.

Storage forms the cornerstone of high-performance computing. The following post introduces the proprietary storage schema commonly used in SPL for beginners: How to use SPL storage for beginners. Usually, the first step of performance optimization is designing an appropriate storage schema.

You are welcome to post your troubles and problems when trying to achieve high performance computing and discuss with us to find a solution: Wanted! Unbearably slow query and batch job.

Useful Links

License

esProc is under the Apache 2.0 license. See the LICENSE file for details.

esproc's People

Contributors

wunanraq avatar liwe1980 avatar rqwangxiaojun avatar xiaoqiongbao avatar liaoxinchuan avatar xjl002 avatar minimaomi avatar esprocscript avatar shenjianrong avatar splware avatar sln2021 avatar barbosa90 avatar sadikkuzu avatar bidalong avatar yangcl2021 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.