Comparing ElasticSearch and SlicingDice

SlicingDice Team
SlicingDice.com Blog
8 min readApr 20, 2017

Below you can find a detailed comparison between SlicingDice and ElasticSearch Cloud, another well-known amazing analytics solution.

In summary SlicingDice is a Serverless Data Warehouse and Analytics Database as a Service. Forget about servers and management, simply send your data using our easy-to-use API and make as much queries as you want.

Comparison Summary — April 2017

For better visualization, please download the PDF version. [1] — Increasing ElasticSearch capacity;

Feature by Feature Comparison — April 2017

How can I test the service? Do I need to pay just to test?

— SlicingDice
You don’t even need to have an account on SlicingDice to test our services.
You can play forever with SlicingDice using the demo API keys on our /test endpoint.

This means that while you are figuring out the data modeling to use for your database, you can use the /test endpoint without paying a cent.

— ElasticSearch Cloud
You start paying as soon you launch an ElasticSearch Cloud instance/cluster.

How should I dimension my “cluster” or instances?

— SlicingDice
Forget about infrastructure provisioning. SlicingDice is a serverless solution, that means you don’t need to worry about infrastructure at all, it’s on us.
In order to use SlicingDice you simply need to send data to the /insertendpoint and later query it using the /query endpoint.

As we describe on the post about our history, we built this platform for you to slice and dice your data as easy as possible, so you can spend your time generating insights and value for you business, not managing infrastructure.

— ElasticSearch Cloud
You will need to think in advance the size of your data and the insertions and queries workload you will have in order to dimension your instances.

How much do I pay for storage space? How much space do I need?

— SlicingDice
Send as much data as you want for each entity, this will not affect your cost.
Due our strong compression and innovative pricing model, you don’t have to worry about how much data you are going to store on SlicingDice.
(Are we crazy? No, we simply fell in love with data compression!)

— ElasticSearch Cloud
If you need more space, you will need to add more instances, generating more costs.

How fast are the queries? What I need to do to improve performance?

— SlicingDice
We have a public commitment to get any query response within 10 seconds, no matter its complexity, or you get 10¢ discount each time on your account.

If your query is slow we believe it’s our responsibility, not yours.

— ElasticSearch Cloud
Depends on your cluster size. If you need more speed, you will need add more instances or change the instance type, generating more costs.

How often outages happen? How can I make it highly available?

— SlicingDice
As we describe in details on the SlicingDice Uncovered series of posts, we do everything possible in terms of infrastructure redundancy to NEVER lose any data or become unavailable.

We currently have 3 completely independent data centers from different providers in different countries that operate simultaneously in a high-availability configuration. That means that two data centers can fail and our service will continue to support data insertion and querying.

We invite you to check our Service Status Page and confirm our stability.

— ElasticSearch Cloud
Redundancy and high availability is configurable, but not default, since it adds more costs.

Can it handle my data volume?

— SlicingDice
Our infrastructure is currently dimensioned (March 2017) to support as much as 90 BILLION new data insertion operations per day.

So, yes, you can send your data to SlicingDice directly from the source producing it or batch load later, at any time. All data sent to SlicingDice is available for querying within 5 seconds after the API request was received.

— ElasticSearch Cloud
Depends on your provisioned infrastructure size, but you will need to carefully and periodically monitor the segments merges in order to make it performant for queries.

Does it support complex tables and data types?

— SlicingDice
Although we dynamically identify the type of data you are sending to be stored on SlicingDice and automatically create the column you need, you can still model your data and create the column you need at any time.

We have support for many data types, and are always adding more.

— ElasticSearch Cloud
Yes, ElasticSearch is very flexible and support multiple data types.

Does it support schema changes? Can I easily add a new column?

— SlicingDice
Yes, you can change schema at any time, like create a new column.

— ElasticSearch Cloud
You can’t change the structure of a indexed document on ElasticSearch. In order to do that, you need to really reindex all data from one index to other.

Does it support SQL queries?

— SlicingDice
Not yet. Making queries on SlicingDice only requires you to write a simple JSON, avoiding all verbosity and overhead SQL brings to your development.
Although we believe our queries are easier to understand than some SQL, we will have SQL support by Q2–2017.

— ElasticSearch Cloud
No SQL support, just JSON queries.

Can it JOIN multiple data types?

— SlicingDice
As we also describe on the post about our history, one of the main motivations for building S1Search (our own database engine) was our strong necessity for JOINing time-series and non-time-series data in a single query.

As you know, most databases are either optimized to hold either time-series or non-time-series data, and that these optimizations lose effect when mixing both types of data.

On SlicingDice you can easily make a query that JOIN two (or more) completely different data types, like time-series and non-time-series, something that is really “expensive” for databases in general.

— ElasticSearch Cloud
No. Although you could a parent/child data model on ElasticSearch, it’s not performant for big volume of data/documents (parent or children).

Can I create role-based access to my data (columns)?

— SlicingDice
It’s your data, so you must have the ability to define in a fine grained manner who can have access to it and for what purposes.

Using SlicingDice Control Panel you can create as many custom API keys as you want, which can be configured to allow inserting and querying over specific columns from a database. For instance, you can create a custom API key allowed to work with columns visited-pages, age and gender, but forbidden to query username and address.

— ElasticSearch Cloud
No, although they provide the Shield add-on, you can’t have a fine grained configuration like SlicingDice offers.

Can I save my most common queries and also cache its results?

— SlicingDice
Wouldn’t it be cool if you could create a query just once and use it everywhere without typing it again and again? What if, in the case you had to update the query command, all locations using it would automagically see the most up to date version of your favorite query?

That’s exactly what you can achieve using the /query/saved endpoint.

Instead of re-writing the entire query whenever you need to analyze your data, simply save it and call it by name. You can also optionally define a cache period for that query, so SlicingDice brings results much faster.

Even better, saved queries can also be created, edited and deleted directly from SlicingDice’s control panel, where you can write queries and check its results in real time.

— ElasticSearch Cloud
You can save query templates to be used with different dynamic values, but you can’t configure cache for your queries.

Is there any supplier lock-in? How can I move out from your solution?

— SlicingDice
You can leave us at any time. There is no upfront commitment to use SlicingDice and you can simply delete a database when you wish to.

If you also want to move all your data out of SlicingDice, you can use our /data_extraction endpoint to export it all, without any additional cost.

— ElasticSearch Cloud
You can also export your data from ElasticSearch at any time, but it’s not a trivial task, can take a lot of time and impact on your cluster performance.

What about the monthly cost comparison?

As you can see in more details on this blog post, SlicingDice’s monthly cost is at least 80% lower than ElasticSearch Cloud. On a recent comparison using the well-known 1.1 Billion Taxi Rides dataset, SlicingDice’s monthly cost was only $ 170.00 while ElasticSearch Cloud was $ 1,999.00.

What are you not telling me?

We are not looking to be a one-stop-shop analytics database that supports all possible requirements. We simply want to be the simplest, fastest and cheapest solution for anyone that needs to store and query analytics-related (and time-series) data.

We don’t like nor try to hide what we really are. There are many things that we are really good at, but also things that we are not and you should be aware of all that before deciding to use SlicingDice. That also includes checking our current restrictions too.

Still not sure if SlicingDice is a good fit for you?

Click here and schedule a 15-minute talk with our developers, totally free of charge, so we can evaluate your case together.

Important notes:
1. We tried our best to understand our competitors features and make a fair comparison across all of them. We must say it isn’t a trivial task, so keep in mind we might have incurred into over-simplification errors. Let us know in case you disagree with the information we provide on this comparison.
2. We are not really comparing apples to apples here as ElasticSearch Cloud is not serverless solutions like SlicingDice.
3. As ElasticSearch is a full-text search engine, so it has more features and capabilities than SlicingDice in multiple areas, but that are not necessary for data analytics necessities.
4. All brands mentioned in this blog post belongs to their respective companies. SlicingDice Inc. has no partnership or association with any of these companies.

--

--

SlicingDice Team
SlicingDice.com Blog

Dev team of SlicingDice — Serverless Data Warehouse and Analytics Database-as-a-service