Frequently Asked Questions
Frequently Asked Questions
What is SQream DB?
SQream DB is an analytics SQL database which uses GPUs for acceleration. It is built to handle hundreds of terabytes of data.
SQream DB is a "proper" SQL DBMS. This means, that it is provides the usual CREATE TABLE, INSERT, SELECT, ALTER operations via a client driver experience; and a server which supports isolated serializable transactions.
Why would you use a GPU?
The reasons for using the GPU are numerous, but the main two which really drove development at SQream DB are:
- For analytic queries which aren't 'needle in the haystack' style (e.g. table scan style queries), the GPU fits these queries quite nicely.
- There are very mature, open source libraries for the types of operations that are implemented in a relational database, in NVIDIA’s CUDA platform.
When would SQream DB be a good choice?
SQream DB is useful for a lot of analytics scenarios. Some situations include:
- If you primarily use SQL today (SQream DB is ANSI SQL compliant, with additions like window functions, regex, etc.)
- If you use ODBC, JDBC, Python or .NET to query your systems
- You have a schema that changes occasionally (SQream DB is columnar, so adding columns is easy)
- When your queries change quite often (SQream DB does not require indexing, and transparently tags each column to pinpoint data)
- When your queries are very complex and CPU-bound – many JOINs, aggregates, summarizations, regex, window functions, etc. (See our query monster page)
- When you don’t want to index all of your columns, but potentially want to JOIN on any column (As above)
- When you require very fast ingest of over 2TB/h (SQream DB can deal with just over 2TB/h per GPU in most situations)
- When you have a footprint constraint (SQream DB will work in a GPU powered laptop, although a 2U chassis is probably better)
When would SQream DB not be good choice?
SQream DB is not great when you need very = low latency response times. You'd be better off with an in-memory database in that case.
- If your data set is less than 2 TB (There are better, non-GPU solutions out there)
- Your current system works well for you, and you don’t expect data to grow substantially in the future
- All of your internal customers (Data scientists, BI, DBAs, etc.) are happy with the system you have right now
- You’re storing and analyzing lots of binary data (The GPU doesn’t work well with binary BLOBs and CLOBs)
- You need fulltext search capabilities on very large data types (eg. CLOBs – GPUs also don’t work well with text data)
- Sub-second response times are crucial (SQream DB is designed for many terabytes on-disk, and therefore works in the seconds to minutes range)