Skip to content
Back to skills

Beam And Performance

ASecurity

"Scale TensorFlow Datasets generation and reading with Beam,

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 9, 2026
toolspythonbashgcpapiperformancedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill beam-and-performance --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Beam And Performance?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Beam And Performance
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-beam-and-performance/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-beam-and-performance)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: beam-and-performance
description: "Scale TensorFlow Datasets generation and reading with Beam,
  storage, sharding, GCS, and performance controls."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Beam And Performance

Use this sub-skill when the task is to scale TensorFlow Datasets (TFDS) dataset
preparation or reading with Apache Beam, cloud runners, file formats, sharding,
GCS data directories, or `tf.data` performance controls.

Route other work away:

- Generic `tfds.load`, split syntax, metadata inspection, NumPy/DataFrame, and
  non-Beam loading recipes -> `data-loading`.
- Full `tfds` CLI syntax outside Beam/file-format/sharding flags ->
  `cli-workflows`.
- Creating ordinary `GeneratorBasedBuilder` datasets, `_info`, features,
  checksums, dummy data, and `DatasetBuilderTestCase` -> `dataset-authoring`.
- Folder datasets, external TFRecord layouts, HuggingFace/Croissant/community
  catalogs, and dataset collections -> `formats-and-community`.

## Evidence-backed API surface

The TFDS code and environment verification for this skill established these
runtime facts:

- Beam generation is configured through `tfds.download.DownloadConfig` fields
  including `beam_runner`, `beam_options`, `max_examples_per_split`,
  `num_shards`, `min_shard_size`, `max_shard_size`, and
  `nondeterministic_order`.
- `tfds build --beam_pipeline_options=...` stores a comma-separated options
  string; TFDS turns each `key=value` segment into a Beam `PipelineOptions` flag
  without launching Beam during parsing.
- Supported prepared-file format names are `tfrecord`, `array_record`,
  `riegeli`, and `parquet`; TFRecord is the default. Some formats require extra
  reader/writer dependencies or different reading APIs.
- `tfds.core.BeamBasedBuilder` still exists but is deprecated; current Beam
  authoring should normally use `GeneratorBasedBuilder` whose
  `_generate_examples` returns a Beam `PTransform`/`PCollection`.
- `tfds.beam.ReadFromTFDS` reads an already prepared TFDS dataset inside a Beam
  pipeline, parallelizing over dataset shards.
- Dataflow, Flink, private GCS, and service-account credentials are external
  services; do not run or mutate them without explicit user approval, budget,
  and credential boundaries.

## Fast workflow chooser

| User intent | Use |
|---|---|
| "Build this huge TFDS dataset locally just to test the builder" | Direct/local Beam runner plus a tiny `--max_examples_per_split` or programmatic `DownloadConfig(max_examples_per_split=...)`; warn that full local builds can exceed RAM/disk/time. |
| "Run TFDS generation on Dataflow" | Build a GCS-backed `data_dir`, `staging_location`, `temp_location`, `requirements_file`, and `runner=DataflowRunner`; verify project/bucket/credentials before launch. |
| "Use Flink" | Pass `runner=FlinkRunner` plus Flink version/config-dir options; verify Beam/Flink version compatibility externally. |
| "Use TFDS as source inside Beam" | Use `tfds.beam.ReadFromTFDS(builder, split=...)` only after the dataset is prepared; respect subsplit/batch limitations. |
| "Improve reading throughput/RAM" | Tune `ReadConfig`, shuffling, cache/batch/prefetch order, decode/skipped features, file format, and GCS locality. |
| "Change shard count/size or file format" | Use generation flags or `DownloadConfig`/`download_and_prepare(file_format=...)`; validate reader compatibility before rebuilding. |

## Standard playbooks

1. **Confirm the generation target.** For multi-config builders, require the
   exact dataset/config/version. Avoid accidental "all configs" builds.
2. **Choose runner and storage.** Direct runner is for tiny local tests. Use a
   distributed runner for terabyte-scale datasets. Dataflow jobs should usually
   write TFDS data to a `gs://.../tensorflow_datasets` root and use a GCS temp
   and staging area.
3. **Build pipeline options safely.** Use
   [`scripts/beam_options_helper.py`](scripts/beam_options_helper.py) to create
   or validate `--beam_pipeline_options` strings and get warnings without
   launching Beam.
4. **Pass options through TFDS.** See
   [`references/beam-workflows.md`](references/beam-workflows.md) for CLI and
   programmatic examples.
5. **Set deterministic-order policy.** Default Beam writing preserves TFDS's
   deterministic ordering contract. Use `nondeterministic_order=True` or
   `--nondeterministic_order` only when faster unordered output is acceptable
   and downstream code never depends on example order.
6. **Control storage format and shards.** See
   [`references/performance-and-storage.md`](references/performance-and-storage.md)
   for `--file_format`, `--num_shards`, `--max_shard_size_mb`, and
   `DownloadConfig` equivalents.
7. **Tune readers after generation.** Prefer `shuffle_files=True` for large
   training datasets, tune `ReadConfig` for distributed workers and memory, skip
   unused or expensive features, and benchmark the final pipeline.
8. **Triage failures before rerunning expensive jobs.** Use
   [`references/troubleshooting.md`](references/troubleshooting.md) for Beam,
   GCS, sharding, determinism, and performance symptoms.

## Safe command skeletons

Local smoke only:

```bash
tfds build DATASET[/CONFIG] \
  --max_examples_per_split=10 \
  --data_dir=/tmp/tfds-smoke
```

Dataflow option construction without launching a job:

```bash
python scripts/beam_options_helper.py \
  --runner DataflowRunner \
  --dataset DATASET \
  --project GCP_PROJECT \
  --gcs-bucket gs://BUCKET \
  --requirements-file /tmp/beam_requirements.txt \
  --print-build-command
```

Programmatic generation:

```python
import apache_beam as beam
import tensorflow_datasets as tfds

flags = [
    "--runner=DataflowRunner",
    "--project=GCP_PROJECT",
    "--staging_location=gs://BUCKET/binaries",
    "--temp_location=gs://BUCKET/temp",
    "--requirements_file=/tmp/beam_requirements.txt",
]

download_config = tfds.download.DownloadConfig(
    beam_options=beam.options.pipeline_options.PipelineOptions(flags=flags),
    # Only set when unordered output is acceptable:
    # nondeterministic_order=True,
)
builder = tfds.builder("DATASET/CONFIG", data_dir="gs://BUCKET/tensorflow_datasets")
builder.download_and_prepare(download_config=download_config)
```

## Verification expectations

For this sub-skill, safe verification should avoid full downloads and cloud job
launches unless the user explicitly grants budget and credentials. Prefer:

- `python scripts/beam_options_helper.py --help` and representative option
  construction checks.
- Import/signature checks for `tfds.download.DownloadConfig`, `tfds.ReadConfig`,
  and `tfds.beam.ReadFromTFDS` in an environment that has the required optional
  packages.
- Tiny local Beam/dummy-data checks only when Apache Beam and TensorFlow are
  already installed.
- Documentation of skipped Dataflow/Flink/private-GCS checks as external-service
  gaps, not failures of local validation.

Files in this skill

  • SKILL.md6.8 KB
  • references/beam-workflows.md7.6 KB
  • references/performance-and-storage.md7.8 KB
  • references/troubleshooting.md8.3 KB
  • scripts/beam_options_helper.py16 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.