@sqlframes/repl-app
v2.5.4
Published
SQL Frames - REPL App
Downloads
347
Maintainers
Readme
SQL Frames - REPL App
SQL Frames provides low-code API to transform dataframes using familiar SQL constructs. The built-in in-memory analytics engine runs within the browser allowing data transformations right within the browser providing milli-seconds latency interactions. It allows off-loading computation from the database to the end user browser bringing cost savings to expensive cloud databases and at the same time improving productivity and user experience to end users letting them explore data with ease and gain better business insights.
This package bundles the SQL Frames low-code API along with a REPL application that can be used to interactively load data, perform data transformations and create powerful visualizations such as pivot tables and charts.
This README provides a quick introduction to the REPL application. Visit SQL Frames API to learn the API.
The REPL contains input and output sections referred to as STDIN and STDOUT.
STDIN
STDIN is provided using the monaco editor. Any valid JavaScript can be specified. Any value that needs to be displayed should be explicitly returned. For example,
const df = DataFrame.fromURL('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.csv');
const { groupBy, agg: { max }, where: { eq }} = SQL;
return df.gdf(groupBy('type'),max('mag'));
STDOUT
Any returned value will be displayed in the STDOUT. The return values are displayed as follows
- Individual values are displayed using a viewer specific to the type (class) of that value if available. For example, all the Data Frames in SQL Frames have a viewer that can display data in tabular format.
- An array is displayed top to bottom with the elemenst stacked vertically.
- A JavaScript object (e.g: { x : 42 } ) is displayed with the field names as tabs each containing the corresponding field value.
It is possible to nest arrays and objects to create complex UI.
Special Variables
S
- Scratch
Even though this is called REPL, it doesn't provide a LOOP to repeatedly
evaluate code. Instead, the existing code needs to be replaced with new
code and re-executed. Sometimes it is desirable to retain the values computed
for subsequent execution. It is possible to store any value into a special variable
called S
(for scratch). For example, a DataFrame based on remote data can be fetched
once and stored so it is available for subsequent data exploration. For example, the above code is rewritten to make use of storing the Data Frame as a scratch variable for subsequent evaluation.
if(!S.df) {
const df = DataFrame.fromURL('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.csv');
S.df = df;
}
const df = S.df;
const { groupBy, agg: { max }, where: { eq }} = SQL;
return df.gdf(groupBy('type'),max('mag'));
C
- Cell
The C
variable provides some utility functions.
i. C.NONE
can be returned to display nothing.
ii. await C.delay(milliseconds,value)
can be used to delay certain amount of time and then optionally return a value.
iii. C.md
can be used to display markup.
return C.md`Hello **SQL Frames**`