Big Data Management: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
[[Category:Beginner's_Guide_Scaling|02]] | |||
{{ScalingSidebar}} | |||
As your research experiments scale up in size, effective data management and storage become just as important as computational efficiency. Working with large datasets—ranging from hundreds of gigabytes to several terabytes—requires specialized tools to move, store, and read/write data efficiently without bottlenecking your workflow or filling up the cluster. | |||
== | This page covers basic procedures, best practices, and tools for handling large amounts of data on remote servers. | ||
<div style="background-color: #fff3cd; border-left: 5px solid #ffc107; padding: 15px; margin-bottom: 20px; margin-top: 15px; overflow: hidden;"> | |||
'''Important: Storage Quotas and Scratch Space'''<br> | |||
Unlike your personal laptop, department and shared servers usually have strict storage quotas in your personal `/home` directory. It is therefore important to budget available space accordingly and adhere to best practices (such as regularly cleanup of temporary files). | |||
</div> | |||
== 1. Moving Data == | |||
Transferring gigabytes or terabytes of data over standard internet connections can be slow and prone to interruption. The tools below are designed to move data reliably between your local machine, the department servers, and external clusters. | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #6c757d; padding: 15px; margin-bottom: 10px;"> | |||
'''[[Command Line Data Transfer]]'''<br> | |||
Introduces basic Linux tools like <code>scp</code>, <code>rsync</code>, and <code>wget</code>. Ideal for moving small to medium-sized datasets or downloading data directly from the web to the server. | |||
</div> | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #005A9C; padding: 15px; margin-bottom: 10px;"> | |||
'''[[Globus]]'''<br> | |||
A graphical, web-based application for moving and sharing massive files within and between institutions. Globus handles network interruptions automatically and is highly recommended for terabyte-scale transfers. | |||
</div> | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #28a745; padding: 15px; margin-bottom: 10px;"> | |||
'''[[Rclone]] (TBW)'''<br> | |||
A command-line tool that acts like <code>rsync</code> for cloud storage. Essential if your dataset is currently hosted on Google Drive, AWS S3, or Dropbox and needs to be pulled down to the cluster. | |||
</div> | |||
== 2. File Formats and I/O == | |||
When dealing with large data, traditional text formats like <code>.csv</code> take too long to read into memory and take up too much disk space. Transitioning to binary or columnar formats is a critical step in scaling up your research. | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #75AADB; padding: 15px; margin-bottom: 10px;"> | |||
'''[[Efficient Data Formats]]'''<br> | |||
An overview of high-performance file formats like Parquet, Feather, and HDF5. Explains how to read and write these formats in R and Python to drastically speed up your load times. | |||
</div> | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #6f42c1; padding: 15px; margin-bottom: 10px;"> | |||
'''[[Data Compression on Linux]]'''<br> | |||
How to use <code>tar</code>, <code>gzip</code>, and <code>zip</code> on the command line to compress large directories of files before transferring or archiving them. | |||
</div> | |||
== 3. Out-of-Memory Processing == | |||
Sometimes, a dataset is simply too large to load into the RAM of even our largest servers. These tools allow you to query and manipulate datasets that exceed available memory. | |||
<div style="background-color: #f8f9fa; border-left: 4px solid #dc3545; padding: 15px; margin-bottom: 10px;"> | |||
'''[[Out-of-Memory Data Manipulation]] (TBW)'''<br> | |||
An introduction to modern tools like DuckDB, Apache Arrow, or Dask. Learn how to filter, mutate, and aggregate massive datasets on disk before loading the smaller, processed results into RAM for statistical modeling. | |||
</div> | |||
Revision as of 05:58, 27 June 2026
| Scaling Checklist |
|---|
| Back to Beginner's Guide |
As your research experiments scale up in size, effective data management and storage become just as important as computational efficiency. Working with large datasets—ranging from hundreds of gigabytes to several terabytes—requires specialized tools to move, store, and read/write data efficiently without bottlenecking your workflow or filling up the cluster.
This page covers basic procedures, best practices, and tools for handling large amounts of data on remote servers.
1. Moving Data
Transferring gigabytes or terabytes of data over standard internet connections can be slow and prone to interruption. The tools below are designed to move data reliably between your local machine, the department servers, and external clusters.
Command Line Data Transfer
Introduces basic Linux tools like scp, rsync, and wget. Ideal for moving small to medium-sized datasets or downloading data directly from the web to the server.
Globus
A graphical, web-based application for moving and sharing massive files within and between institutions. Globus handles network interruptions automatically and is highly recommended for terabyte-scale transfers.
Rclone (TBW)
A command-line tool that acts like rsync for cloud storage. Essential if your dataset is currently hosted on Google Drive, AWS S3, or Dropbox and needs to be pulled down to the cluster.
2. File Formats and I/O
When dealing with large data, traditional text formats like .csv take too long to read into memory and take up too much disk space. Transitioning to binary or columnar formats is a critical step in scaling up your research.
Efficient Data Formats
An overview of high-performance file formats like Parquet, Feather, and HDF5. Explains how to read and write these formats in R and Python to drastically speed up your load times.
Data Compression on Linux
How to use tar, gzip, and zip on the command line to compress large directories of files before transferring or archiving them.
3. Out-of-Memory Processing
Sometimes, a dataset is simply too large to load into the RAM of even our largest servers. These tools allow you to query and manipulate datasets that exceed available memory.
Out-of-Memory Data Manipulation (TBW)
An introduction to modern tools like DuckDB, Apache Arrow, or Dask. Learn how to filter, mutate, and aggregate massive datasets on disk before loading the smaller, processed results into RAM for statistical modeling.