Home ยท Volume 5 ยท Chapter 01

๐Ÿ“– Chapter 01 โ€” The Data Scientist's NAS

What changes when the workload is analysis, not files.

v0.1 ยท draft Vol 5 ยท Ch 01
~10 min

Learning Objectives

Introduction

Volumes 1-4 built a NAS for files, family, creator, and lab. The workloads were: store files, serve them to the family, edit videos, run self-hosted services. This volume is a different workload: analyze data. The patterns from earlier volumes still apply; what's different is what "using the data" looks like.

This chapter sets up the data layer: where the datasets live, how to organize them, and what tools the data scientist's NAS has.

What changes when the workload is data

Three differences between a file-serving NAS and a data analysis NAS:

The data layer for a data scientist is about: lots of storage for raw and derived data, fast sequential reads (so the analysis doesn't wait), enough RAM to hold working datasets in memory, and the right tools (Jupyter, Python, R, SQL).

The dataset hierarchy

For analytical work, the data lives in a hierarchy:

tank/Lab โ”œโ”€โ”€ data/ โ”‚ โ”œโ”€โ”€ raw/ โ† original data, immutable, never edited โ”‚ โ”œโ”€โ”€ interim/ โ† intermediate results, can be regenerated โ”‚ โ”œโ”€โ”€ processed/ โ† final, clean, ready-to-analyze datasets โ”‚ โ”œโ”€โ”€ external/ โ† third-party data, reference tables โ”‚ โ””โ”€โ”€ models/ โ† trained model artifacts โ”œโ”€โ”€ projects/ โ”‚ โ”œโ”€โ”€ <project-name>/ โ”‚ โ”‚ โ”œโ”€โ”€ notebooks/ โ† Jupyter notebooks for this project โ”‚ โ”‚ โ”œโ”€โ”€ data/ โ† project-specific data (or symlinks to /data) โ”‚ โ”‚ โ”œโ”€โ”€ src/ โ† source code (Python modules, R scripts) โ”‚ โ”‚ โ”œโ”€โ”€ output/ โ† results, charts, reports โ”‚ โ”‚ โ””โ”€โ”€ README.md โ”‚ โ””โ”€โ”€ ... โ””โ”€โ”€ docs/ โ† analysis documentation, methodology notes

The principle: raw data is sacred. The raw/ directory is the source of truth. Everything else can be regenerated from raw. This is the discipline that makes the work reproducible (Chapter 07).

The "raw is immutable" rule

Once a file lands in data/raw/, it's never edited. Why:

The discipline: anything that touches the raw data is a script (in projects/<name>/src/). The script is what does the cleaning, the transforming, the analysis. The script is in version control. The raw data is not.

The tools

For a data scientist's home NAS, the standard tools:

All of these are available as containers or VMs. The setup is: a Jupyter container with the relevant libraries, mounted to the projects/ directory on the NAS. The data is on the NAS; the analysis runs in the container; the results go back to the NAS.

The "where does the analysis run" question

For most home data science, the analysis runs in a container on the NAS. The NAS has enough CPU and RAM for the analysis. For heavier workloads (large dataset analysis, ML training), the analysis runs on the laptop (with the data mounted via SMB or NFS) or on a separate machine (Chapter 09 of Volume 4).

The conversation's principle: the data lives on the NAS; the analysis can run anywhere. The data scientist's NAS is the data layer. The compute can be on the NAS, the laptop, or a separate machine. The data doesn't move; the analysis moves to the data.

Network access for analytical tools

For analytical work, the data needs to be reachable from wherever the analysis runs. The options:

For most home data science, SMB is fine. NFS is better for Linux-native workflows. S3 is for when you have lots of data and want cloud-style access.

The "what if my dataset is bigger than RAM" question

For most home data science, the working dataset fits in RAM. 32 GB of RAM is enough for datasets up to ~10-20 GB. For larger datasets, the tools that work without loading everything into memory:

For truly large datasets (1+ TB), the right answer is a distributed system (Spark, Dask) on a cluster. For most home data science, the right answer is DuckDB or Polars on a single machine.

Setting up the data layer

The minimum setup for a data scientist's NAS:

  1. Create the dataset hierarchy in tank/Lab/data/ and tank/Lab/projects/.
  2. Set up a Jupyter container (Chapter 02) with the right libraries.
  3. Mount the projects directory in the Jupyter container.
  4. Start a new project: mkdir -p projects/<name>/{notebooks,src,output} + a README.
  5. Put data in data/raw/.
  6. Start the analysis in projects/<name>/notebooks/.

Engineering Note

The data is the asset; the analysis is disposable. The raw data is irreplaceable (in many cases). The analysis can be re-run. The trained model can be re-trained. The chart can be re-generated. The discipline of treating data as sacred and analysis as disposable is what makes the work reproducible. Don't put irreplaceable analysis in the raw/ directory. Put it in projects/ where it can be regenerated.

Summary

The data scientist's NAS is a data layer. The data lives in tank/Lab/data/ with raw, interim, processed, external, and models subdatasets. Raw is sacred and immutable. Projects live in tank/Lab/projects/ with their own notebooks, source, output, and README. The analysis runs in a Jupyter container on the NAS, on the laptop with SMB mount, or on a separate machine. For datasets bigger than RAM, DuckDB or Polars. The data doesn't move; the analysis moves to the data.

Checklist

Looking Ahead

Chapter 02 is Jupyter: the interactive computing environment. JupyterHub for multi-user, JupyterLab for the modern UI, the patterns that make Jupyter a daily tool, not a one-off. The chapter that turns "I want to analyze some data" into "I'm in my notebook, the data is loaded, the analysis is running."

Ch 01 ยท v0.1 ยท drafted from the original ChatGPT conversation, July 2026