- Website
- https://yellowbrick.com[01]
- Tech Docs
- https://yellowbrick.com/docs[02]
- @YellowbrickData
- Developer
- Country of Origin
- US
- Start Year
- 2014 [13]
- Project Type
- Commercial
- Derived From
- PostgreSQL
- Compatible With
- PostgreSQL
- License
- Proprietary
Data Model[06]
Yellowbrick supports the boolean, integer, decimal, floating point, string, date/time, and UUID types available in PostgreSQL, as well as new data types for IP and MAC addresses.
Hardware Acceleration[06][08]
Yellowbrick’s on-premise servers utilize a dual-core FPGA to accelerate table scans by performing file parsing, decompression, predicate evaluation, and Bloom filtering. The FPGA accelerator is also used for shuffling data between nodes, which happens via RDMA.
Parallel Execution[06][09]
Yellowbrick uses intra-operator parallelism, where each thread operates on a different chunk of data, and threads are synchronized to each execute the same operators simultaneously. Yellowbrick schedules execution operators that process a given packet of data to be as close to each other as possible to minimize data movement.
Query Compilation[06]
Yellowbrick partitions query plans into segments and converts them into C++ code. Segments are then compiled into machine code in parallel using a modified version of LLVM which is memory-resident with its ASTs pre-loaded. Compiled object files are cached and reused.
Yellowbrick also has a specialized pattern compiler for LIKE, SIMILAR TO, regular expressions, and date/time parsing. Yellowbrick generates finite state machines for these patterns and compiles them to machine code using LLVM.
Query Execution[06]
Unlike systems which constrain their query plans to be trees, Yellowbrick uses graph query plans, which allow for execution nodes to have more than one consumer. The execution engine operates on a push-based model, passing cache-resident buffers between operators. Yellowbrick uses AVX SIMD instructions to evaluate expressions and predicate filters.
Query Interface[06][10]
Yellowbrick is compatible with the PostgreSQL dialect and wire protocol, and it uses the PostgreSQL JDBC, ODBC, and ADO.NET drivers.
Stored Procedures[11]
Yellowbrick supports PL/pgSQL stored procedures (CREATE PROCEDURE) but not user-defined functions (CREATE FUNCTION). Unlike in PostgreSQL, stored procedures in Yellowbrick can return values and be called from SELECT statements, but only when there is no table-referencing FROM clause.
Triggers are not supported.
Citations
13 sources- Yellowbrick SQL Data Platform | Secure. Efficient. Anywhere yellowbrick.com
- https://yellowbrick.com/docs yellowbrick.com
- Yellowbrick Data - Wikipedia wikipedia.org
- Yellowbrick Data Enters Cloud Data Warehouse Wars - eWEEK eweek.com
- https://yellowbrick.com/yellowbrick-data-warehouse/ yellowbrick.com
- Inside the Yellowbrick Data Warehouse - Yellowbrick data yellowbrick.com
- https://docs.yellowbrick.com/6.1/ybd_sqlref/create_table_examples.html yellowbrick.com
- Andromeda Optimized Instances - Yellowbrick Data Server yellowbrick.com
- Yellowbrick: An Elastic Data Warehouse on Kubernetes (Mark Cusack) - YouTube youtube.com
- https://docs.yellowbrick.com/6.1/connectivity/downloading_drivers.html yellowbrick.com
- https://docs.yellowbrick.com/6.1/ybd_sqlref/create_procedure.html yellowbrick.com
- https://docs.yellowbrick.com/6.1/ybd_sqlref/create_view.html yellowbrick.com
- https://www.crunchbase.com/organization/yellowbrick-data crunchbase.com