Domino Datasets

作者 dominodatalabd86698d74d56无许可证7 个星标收录于 2026年10月8日更新于 2026年10月8日仓库2天前更新

Work with Domino Datasets - high-performance, versioned filesystem storage. Covers dataset creation, snapshots for versioning, sharing across projects, mounting paths (/domino/datasets/), and performance optimization. Use when managing data storage, creating reproducible data versions, or sharing data between projects.

AI 生成的概览

指导使用 Domino 数据集:创建、挂载路径、快照、标签、共享与性能优化。

功能
该技能说明如何创建和管理 Domino 数据集,即 Domino 数据科学项目中使用的带版本文件系统存储。它记录了 DFS 与基于 Git 项目的挂载路径、快照与标签流程、权限、上传方式以及高效读取大数据的方法。它还列出了最佳实践和常见数据集问题的排查步骤。
适用场景
适用于创建或管理 Domino 数据集、用快照对数据做版本管理、在项目间共享数据或查找数据集挂载路径的场景。也可用于高效读取大数据集,或排查数据集访问与性能问题。
运行要求
不包含脚本,仅为说明性内容。按示例操作需要 Domino 环境及 Domino Python SDK 或 CLI,数据处理片段还需要 pandas、Dask、NumPy 或 h5py 等 Python 库。

Domino Datasets Skill

Description

This skill helps users work with Domino Datasets - high-performance, versioned filesystem storage for data science projects.

Activation

Activate this skill when users want to:

  • Create or manage Domino Datasets
  • Work with dataset snapshots and versioning
  • Share data between projects
  • Access large datasets efficiently
  • Understand dataset paths and mounting

What is a Domino Dataset?

A Domino Dataset is:

  • High-performance storage: Network filesystem optimized for data science
  • Versioned: Create snapshots for reproducibility
  • Shareable: Access across projects
  • Scalable: No file size or count limits
  • Persistent: Data persists across executions

Creating a Dataset

Via Domino UI

  1. Navigate to your project
  2. Go to Data > Domino Datasets
  3. Click Create New Dataset
  4. Enter:
    • Name: Dataset name (e.g., training-data)
    • Description: What the dataset contains
  5. Click Create

Via Python SDK

python
from domino import Domino
domino = Domino("project-owner/project-name")
# Create a new datasetdataset = domino.datasets_create(    name="training-data",    description="Training data for classification model")

Dataset Paths

Dataset paths differ based on your project type. Domino has two project types with different mount structures.

DFS (Domino File System) Projects

DFS projects use /domino as the root:

/domino   |--/datasets      |--/local               <== Local datasets and snapshots         |--/clapton          <== Read-write dataset for owner and editor, read-only for reader         |--/mingus           <== Read-write dataset for owner and editor, read-only for reader         |--/snapshots        <== Snapshot folder organized by dataset            |--/clapton       <== Read-write for owner and editor, read-only for reader               |--/tag1          <== Mounted under latest tag               |--/1             <== Always mounted under the snapshot number               |--/2            |--/mingus               |--/tag2               |--/1               |--/2      |--/ella                <== Read-write shared dataset for owner and editor, Read-only for reader      |--/davis               <== Read-write shared dataset for owner and editor, Read-only for reader      |--/snapshots           <== Shared datasets snapshots organized by dataset         |--/ella             <== Read-write for owner and editor, read-only for reader            |--/tag3          <== Mounted under latest tag            |--/1             <== Always mounted under the snapshot number            |--/2         |--/davis            |--/tag4            |--/1            |--/2
Dataset TypePath
Local datasets/domino/datasets/local/{dataset-name}/
Local snapshots/domino/datasets/local/snapshots/{dataset-name}/{tag-or-number}/
Shared datasets/domino/datasets/{dataset-name}/
Shared snapshots/domino/datasets/snapshots/{dataset-name}/{tag-or-number}/

Git-Based Projects

Git-based projects use /mnt as the root:

/mnt   |--/data                  <== Local datasets and snapshots     |--/clapton             <== Read-write dataset for owner and editor, read-only for reader     |--/mingus              <== Read-write dataset for owner and editor, read-only for reader     |--/snapshots           <== Snapshot folder organized by dataset        |--/clapton          <== Read-write for owner and editor, read-only for reader           |--/tag1          <== Mounted under latest tag           |--/1             <== Always mounted under the snapshot number           |--/2        |--/mingus           |--/tag2           |--/1           |--/2   |--/imported     |--/data        |--/ella             <== Read-write shared dataset for owner and editor, read-only for reader        |--/davis            <== Read-write shared dataset for owner and editor, read-only for reader        |--/snapshots        <== Shared dataset snapshots organized by dataset           |--/ella          <== Read-write for owner and editor, read-only for reader              |--/tag3       <== Mounted under latest tag              |--/1          <== Always mounted under the snapshot number              |--/2           |--/davis              |--/tag4              |--/1              |--/2
Dataset TypePath
Local datasets/mnt/data/{dataset-name}/
Local snapshots/mnt/data/snapshots/{dataset-name}/{tag-or-number}/
Shared datasets/mnt/imported/data/{dataset-name}/
Shared snapshots/mnt/imported/data/snapshots/{dataset-name}/{tag-or-number}/

How to Identify Your Project Type

Check which paths exist in your execution:

python
import os
if os.path.exists("/domino/datasets"):    print("DFS Project")    dataset_root = "/domino/datasets/local"elif os.path.exists("/mnt/data"):    print("Git-Based Project")    dataset_root = "/mnt/data"

Permissions

Both project types follow the same permission model:

  • Owners/Editors: Read-write access to datasets
  • Readers: Read-only access

Example: Reading Data

python
import pandas as pd
# Git-Based Projectdf = pd.read_csv("/mnt/data/training-data/customers.csv")
# DFS Projectdf = pd.read_csv("/domino/datasets/local/training-data/customers.csv")
# List filesimport osfiles = os.listdir("/mnt/data/training-data/")  # Git-Basedfiles = os.listdir("/domino/datasets/local/training-data/")  # DFS

Uploading Data

Via Domino UI

  1. Go to dataset page
  2. Click Upload
  3. Select files (up to 50GB or 50,000 files via UI)
  4. Click Upload

Via Domino CLI (Large Uploads)

bash
# For large uploads, use CLIdomino upload /local/path/to/data /mnt/data/training-data/

Via Code in Workspace

python
import shutil
# Copy from local to datasetshutil.copy("local_file.csv", "/mnt/data/training-data/")
# Write directlydf.to_csv("/mnt/data/training-data/processed.csv", index=False)

Snapshots

What is a Snapshot?

A snapshot is a read-only, immutable version of your dataset at a point in time. Use snapshots for:

  • Reproducibility
  • Versioning training data
  • Rolling back to previous states

Create a Snapshot

python
# Via Python SDKsnapshot = domino.datasets_snapshot(    dataset_name="training-data",    tag="v1.0")

Or via UI:

  1. Go to dataset page
  2. Click Create Snapshot
  3. Add optional tag (e.g., v1.0, production)

Access Snapshots

python
# Latest snapshotdf = pd.read_csv("/mnt/data/training-data/data.csv")
# Specific tagged snapshotdf = pd.read_csv("/mnt/data/[email protected]/data.csv")

Snapshot Limits

  • Default limit: 20 snapshots per dataset
  • Configurable by admins
  • Oldest snapshots auto-deleted when limit reached

Tags

What are Tags?

Tags provide friendly names for snapshots:

  • production: Current production data
  • v1.0, v2.0: Version numbers
  • 2024-01-15: Date-based tags

Move Tags

Tags can be moved to different snapshots:

python
# Move 'production' tag to latest snapshotdomino.datasets_tag(    dataset_name="training-data",    snapshot_id="snapshot-123",    tag="production")

Sharing Datasets

Within Organization

  1. Go to dataset settings
  2. Set visibility to Organization
  3. Other projects can mount the dataset

Cross-Project Access

python
# Import dataset from another project# Configured in project settingsdf = pd.read_csv("/mnt/data/shared-dataset/data.csv")

Best Practices

1. Use Appropriate Storage

Data TypeStorage
Large training dataDomino Dataset
Model artifacts/mnt/artifacts/
CodeGit/Project files
Temporary files/tmp/

2. Organize Data

/mnt/data/my-dataset/├── raw/│   ├── customers.csv│   └── transactions.csv├── processed/│   ├── features.parquet│   └── labels.parquet└── metadata/    └── schema.json

3. Use Efficient Formats

python
# Parquet for tabular data (faster, smaller)df.to_parquet("/mnt/data/dataset/data.parquet")
# Feather for pandas DataFramesdf.to_feather("/mnt/data/dataset/data.feather")
# HDF5 for numerical arraysimport h5pywith h5py.File("/mnt/data/dataset/data.h5", "w") as f:    f.create_dataset("features", data=features)

4. Document Data

Include README and schema:

python
# Write metadatametadata = {    "created": "2024-01-15",    "source": "Customer database",    "columns": {"id": "int", "name": "string", "value": "float"}}
with open("/mnt/data/dataset/metadata.json", "w") as f:    json.dump(metadata, f)

5. Snapshot Before Changes

python
# Create snapshot before processingdomino.datasets_snapshot(    dataset_name="training-data",    tag="pre-processing")
# Then modify dataprocess_data()

Reading Large Datasets

Chunked Reading

python
# Read in chunkschunks = pd.read_csv(    "/mnt/data/dataset/large_file.csv",    chunksize=100000)
for chunk in chunks:    process(chunk)

Lazy Loading with Dask

python
import dask.dataframe as dd
# Read without loading into memorydf = dd.read_parquet("/mnt/data/dataset/large_data.parquet")
# Process lazilyresult = df.groupby("category").mean().compute()

Memory Mapping

python
import numpy as np
# Memory-map large arraysdata = np.memmap(    "/mnt/data/dataset/features.dat",    dtype='float32',    mode='r',    shape=(1000000, 100))

Troubleshooting

Dataset Not Found

  • Verify dataset name is correct
  • Check dataset is mounted to project
  • Confirm you have access permissions

Permission Denied

  • Check project role (need Contributor+)
  • Verify dataset sharing settings
  • Contact dataset owner

Slow Performance

  • Use efficient file formats (Parquet > CSV)
  • Read only needed columns
  • Use chunked/lazy loading for large files

Snapshot Failed

  • Check disk quota
  • Verify no files are open/locked
  • Check snapshot limit not reached

Documentation Reference

来源与署名

来源:dominodatalab/domino-claude-plugin位于skills/datasets提交d86698d

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架