Need advice about which tool to choose?Ask the StackShare community!
Amazon Athena vs Cassandra: What are the differences?
Key Differences between Amazon Athena and Cassandra
Amazon Athena and Cassandra are popular NoSQL database solutions that offer different functionalities and use cases. Here are the key differences between the two:
Architecture and Data Model: Amazon Athena follows a serverless architecture, allowing users to execute ad-hoc SQL queries on the data stored in Amazon S3. It allows for schema-on-read and supports structured, semi-structured, and unstructured data. On the other hand, Cassandra is a distributed database system that follows a decentralized architecture using a peer-to-peer (P2P) model. It offers a column-based data model and is designed to handle high write throughput.
Scalability and Elasticity: Amazon Athena automatically scales based on query demands, making it highly scalable. It enables users to process large amounts of data without managing infrastructure. Cassandra also supports horizontal scalability by adding more nodes to the cluster as data grows. However, it requires manual setup and configuration to ensure optimal performance.
Data Consistency: In Amazon Athena, the data consistency is eventually consistent as it reads data directly from Amazon S3. This means that changes to the data may not be instantly reflected in query results. In Cassandra, users can configure the consistency level based on their requirements, allowing for stronger consistency if needed.
Query Language: Amazon Athena uses Standard SQL for querying data stored in Amazon S3. It supports common SQL functionalities, including joins, window functions, and complex aggregations. Cassandra, on the other hand, uses Cassandra Query Language (CQL), which is similar to SQL but with some specific syntax and limitations.
Data Storage: Amazon Athena stores data in Amazon S3, which provides durable and scalable object storage. It is suitable for storing large volumes of data cost-effectively. Cassandra, on the other hand, uses its own distributed file system called Cassandra File System (CFS). It replicates data across multiple nodes for high availability and fault tolerance.
Data Replication and Durability: Amazon Athena relies on the durability and availability of data in Amazon S3. It inherits the replication and durability features provided by Amazon S3. Cassandra, on the other hand, offers multiple replication strategies, allowing users to configure data replication across multiple data centers for high availability and durability.
In summary, Amazon Athena is a serverless query service for processing data stored in Amazon S3, offering scalability and flexibility. Cassandra, on the other hand, is a distributed database system designed for high write throughput and data replication across multiple nodes.
Hi all,
Currently, we need to ingest the data from Amazon S3 to DB either Amazon Athena or Amazon Redshift. But the problem with the data is, it is in .PSV (pipe separated values) format and the size is also above 200 GB. The query performance of the timeout in Athena/Redshift is not up to the mark, too slow while compared to Google BigQuery. How would I optimize the performance and query result time? Can anyone please help me out?
you can use aws glue service to convert you pipe format data to parquet format , and thus you can achieve data compression . Now you should choose Redshift to copy your data as it is very huge. To manage your data, you should partition your data in S3 bucket and also divide your data across the redshift cluster
First of all you should make your choice upon Redshift or Athena based on your use case since they are two very diferent services - Redshift is an enterprise-grade MPP Data Warehouse while Athena is a SQL layer on top of S3 with limited performance. If performance is a key factor, users are going to execute unpredictable queries and direct and managing costs are not a problem I'd definitely go for Redshift. If performance is not so critical and queries will be predictable somewhat I'd go for Athena.
Once you select the technology you'll need to optimize your data in order to get the queries executed as fast as possible. In both cases you may need to adapt the data model to fit your queries better. In the case you go for Athena you'd also proabably need to change your file format to Parquet or Avro and review your partition strategy depending on your most frequent type of query. If you choose Redshift you'll need to ingest the data from your files into it and maybe carry out some tuning tasks for performance gain.
I'll recommend Redshift for now since it can address a wider range of use cases, but we could give you better advice if you described your use case in depth.
It depend of the nature of your data (structured or not?) and of course your queries (ad-hoc or predictible?). For example you can look at partitioning and columnar format to maximize MPP capabilities for both Athena and Redshift
you can change your PSV fomat data to parquet file format with AWS GLUE and then your query performance will be improved
The problem I have is - we need to process & change(update/insert) 55M Data every 2 min and this updated data to be available for Rest API for Filtering / Selection. Response time for Rest API should be less than 1 sec.
The most important factors for me are processing and storing time of 2 min. There need to be 2 views of Data One is for Selection & 2. Changed data.
Scylla can handle 1M/s events with a simple data model quite easily. The api to query is CQL, we have REST api but that's for control/monitoring
Cassandra is quite capable of the task, in a highly available way, given appropriate scaling of the system. Remember that updates are only inserts, and that efficient retrieval is only by key (which can be a complex key). Talking of keys, make sure that the keys are well distributed.
i love syclla for pet projects however it's license which is based on server model is an issue. thus i recommend cassandra
By 55M do you mean 55 million entity changes per 2 minutes? It is relatively high, means almost 460k per second. If I had to choose between Scylla or Cassandra, I would opt for Scylla as it is promising better performance for simple operations. However, maybe it would be worth to consider yet another alternative technology. Take into consideration required consistency, reliability and high availability and you may realize that there are more suitable once. Rest API should not be the main driver, because you can always develop the API yourself, if not supported by given technology.
Pros of Amazon Athena
- Use SQL to analyze CSV files16
- Glue crawlers gives easy Data catalogue8
- Cheap7
- Query all my data without running servers 24x76
- No data base servers yay4
- Easy integration with QuickSight3
- Query and analyse CSV,parquet,json files in sql2
- Also glue and athena use same data catalog2
- No configuration required1
- Ad hoc checks on data made easy0
Pros of Cassandra
- Distributed119
- High performance98
- High availability81
- Easy scalability74
- Replication53
- Reliable26
- Multi datacenter deployments26
- Schema optional10
- OLTP9
- Open source8
- Workload separation (via MDC)2
- Fast1
Sign up to add or upvote prosMake informed product decisions
Cons of Amazon Athena
Cons of Cassandra
- Reliability of replication3
- Size1
- Updates1