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 for building a database? What good is running SQL on GPUs?
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 right for me?
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? When would GPUs not be good for analysis?
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)
What do I need in order to run SQream DB?
SQream DB will run on any NVIDIA GPU enabled hardware, but we have our recommendations for good performance. See our Hardware Recommendation page for more information.
What is SQream's pricing model? How much is SQream DB going to cost?
Typical pricing for SQream DB is per-terabyte per-year for the on-premise model. We also have other options available, eg. some customers would rather pay-per-GPU in a cluster.
We understand different customers have different requirements, and we are very flexible with our pricing.
We also have AWS instances which are billed by Amazon according to the standard PAYG model.