Skip to content

Steema/TeeBI

Repository files navigation

TeeBI

Telegram forums: https://t.me/steema_bi

TeeBI Gridify and Colorize

Datamining, Visualization, Multidimensional Queries, Pivot Tables, Big data

What is TeeBI ?

A simple class to implement in-memory database complex structures, to provide:

  • Ultra fast speed (every column or field is a simple array)

  • Big-data ready, billions of cells supported

  • Multi-platform (Windows, Mac OSX, Android, iOS, Linux and more), for VCL, Firemonkey, Delphi and C++

  • Automatic visualizations of complex structures (charts, grids, optional TeeGrid and more)

  • SQL-like high-speed queries and summaries by code or "select" scripts

  • Multi-dimensional Excel-like pivot tables, with drag & drop editor

  • Geographic database (Countries, States, Provinces...) to automatically create summary geo queries, TeeChart world maps, and statistics

  • Transparent remote web server fast data access (compressed binary streams of raw arrays)

  • Automatic relationships between columns (master-detail), indexes and foreign keys

  • Import data from files, databases, objects (ORM), AI in one or few lines of code

  • Export data (to csv,pdf,html,xml,excel,json), comparisons and manipulations

  • Supported development environments:

    • Embarcadero RAD Studio Athens 12.3, and from Studio XE4 and up (Delphi and C++)
    • Lazarus / FreePascal

Getting started

Example code

uses BI.DataItem, BI.CSV, BI.Db, BI.Xml, BI.Json, BI.AI;

var Data1 : TDataItem;
Data1 := TBICSV.FromFile( 'mydata.csv' );  // also From TStrings, String etc

// other importing methods:
Data1 := TBIDB.From( SQLConnection1 ); // loads all tables in one line of code
Data1 := TBIJson.From ...
Data1 := TBIXML.From ... // import different formats

// import from Artificial Intelligence AI agents, like Google Gemini:
Data1 := TBIAI.From('Give me the list of the highest 10 mountains by elevation in csv format, just the list');

// from arrays, TCollection, custom Records (via RTTI):
Data1 : TTypeProvider<TCustomer>.Create(Self, MyArrayOfCustomers).Data; 

// import from components with automatic detection:
Data1 := TComponentImporter.From(Self, Memo1.Lines);
Data1 := TComponentImporter.From(Self, DataSource1);

// importing from any URL, automatic detection of content format:
Data1 := TBIURLSource.From('https://www.mysite.com/get/mydata?param=123');

// queries, including group by, sort, expressions, having, sub-select, distinct, date operators etc
Data1 := TBISQL.From( Data2, 'sum(Amount) where (Customer=123) and (Product<456) group by Country, Year');
Data1 := TBISQL.From( Data2, 'ProductName, UnitPrice where UnitPrice > select Average(UnitPrice)');
Data1 := TBISQL.From( Movies, 'top 100 offset 15000 year, length');

// visualizing
BIGrid1.Data := Data1;
BIChart1.Data := Data1;

BIGrid2.Data := Data1['Products']; // sub-tables

// importing data from a standard TeeChart Series:
Data1 := TChartData.From(Series1);

Online grids and charts from remote queries using BIWeb Server:

http://steema.cat:15015/?data=SQLite_demo&format=.jpg

Related

Deprecated

The following features have been marked as obsolete / incompatible, and moved to a separate folder outside the product:

  • Machine-learning (native data pass to R Language and Python Scikit)

  • Interactive Dashboards rendered to screen (desktop and mobile) and HTML Web pages