If you like DNray Forum, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...

 

Database for Large-Scale Data

Started by Webcash, Nov 15, 2023, 12:17 AM

Previous topic - Next topic

WebcashTopic starter

When faced with 98 million rows and 38 columns of data, the question of which database to use becomes pivotal.



Additionally, what other architectural elements can be utilized to swiftly output, write, and overwrite data is worth considering. Can you offer any advice on this? I appreciate your input in advance.
  •  


tGreggSmithb

Optimizing data processing and storage in scenarios involving large datasets is indeed crucial. When dealing with 98 million rows and 38 columns of data, selecting the appropriate database is a pivotal decision.

To efficiently handle such a large volume of data, consider the following suggestions:

1. Choose a suitable database technology: Look for databases designed to handle big data efficiently, such as Apache Cassandra, MongoDB, or Amazon Redshift. Each has unique strengths and performance characteristics that can align with your specific requirements.

2. Data partitioning and indexing: Partitioning the data across multiple servers or nodes can enhance performance by distributing the workload. Additionally, employing proper indexing techniques on commonly queried columns improves the speed of data retrieval.

3. Data compression and storage optimization: Implement effective data compression techniques to reduce storage requirements and enhance query performance. Explore columnar file formats like Apache Parquet or ORC (Optimized Row Columnar) for efficient storage and query execution.

4. Distributed processing frameworks: Utilize distributed processing frameworks like Apache Hadoop or Apache Spark to process and analyze the large dataset in parallel across multiple nodes, enabling faster execution and scalability.

5. Caching mechanisms: Implement caching mechanisms at various levels, such as database-level caching (e.g., Redis or Memcached) or application-level caching, to reduce repetitive, time-consuming data retrieval operations.

6. Use appropriate hardware: Consider utilizing hardware optimized for data-intensive workloads, such as solid-state drives (SSDs) or accelerating technologies like GPUs, to expedite data read and write operations.

7. Data archiving and partition pruning: Implement data archiving strategies to move less frequently accessed data to secondary storage. Partition pruning allows query optimization by scanning and filtering only relevant data partitions.

8. Proper data modeling: Designing a data model that aligns with the query patterns and efficiently normalizing or denormalizing the data can significantly improve query performance.

  •  

QuKHachAsseree

It's quite a challenge for modern DBMS on modern computers to handle 98 million. The choice of a DBMS depends on the specific task at hand, which is not mentioned in the question.

If your aim is swift product searches in a database with 38 columns as filters, then a DBMS suitable for full-text and faceted search, such as SphinxSearch or ElasticSearch for clustering, or PostgreSQL and MySQL for traditional SQL tools, would be ideal.

For different tasks, an alternate DBMS may be more appropriate.
We need more details.

It seems you're assuming a specific solution is necessary for the 90 million without providing specific details of the task at hand. The task details are crucial.

Let's consider the task of quick rewriting - are you planning to overwrite the entire 90 million or just parts of it? This could pose a real challenge as only a few DBMS are capable of handling rapid changes of such volume.

The fastest possible data access is when data is stored in RAM. One highly developed tool that combines RAM placement with DBMS functionality is Tarantool. There's no faster option than an in-memory DB like Tarantool.

However, it's important to have sufficient RAM.

If RAM is limited, Aerospike could be an option as it's nearly an in-memory DB, storing only indexes entirely in RAM, not the data itself.

In short, I'm tired of making guesses.

Without a clear problem statement, it's impossible to provide a specific answer.
  •  

seennyrob

Enhancing the performance of PostgreSQL, involves fine-tuning indexing, optimizing the storage system and disk subsystem of the database management system, and adding more memory to the server if required.

In a broader sense, the issue is conceptual and theoretical.

If the current setup does not meet your expectations, it's essential to investigate the root cause. It's possible that certain operations are causing the server to decelerate, and it's crucial to identify and address them.

Simply replacing the DBMS while keeping the application unchanged might lead to encountering similar issues with the new DBMS, albeit not immediately, but eventually.
  •  

David5

A robust choice would be a distributed database like Apache Cassandra or Amazon DynamoDB, which excels in handling large datasets with high availability and scalability. They allow for horizontal scaling, meaning you can add more nodes to manage increased load efficiently. Additionally, consider leveraging a columnar database like Amazon Redshift or Google BigQuery for analytical queries, as they optimize read performance significantly.

Beyond the database choice, architectural elements like caching mechanisms (e.g., Redis or Memcached) can dramatically enhance data retrieval speeds. Implementing a microservices architecture can also facilitate independent scaling of components, allowing for faster write and overwrite operations. Stream processing frameworks like Apache Kafka can handle real-time data ingestion, ensuring that your architecture remains responsive.
  •  


If you like DNray forum, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...