Skip to content

Entity Bulk CSV Operations Guide

This page gives practical guidance for running bulk create and bulk update at good speed without triggering heavy throttling.

Commands

# Bulk create from CSV
pvw entity bulk-create-csv \
  --csv-file .\\create.csv \
  --batch-size 50 \
  --throttle-ms 200 \
  --max-retries 4 \
  --retry-backoff-ms 1500 \
  --retry-mode exponential \
  --error-csv .\\create_failed.csv

# Bulk update from CSV
pvw entity bulk-update-csv \
  --csv-file .\\update.csv \
  --batch-size 50 \
  --throttle-ms 200 \
  --max-retries 4 \
  --retry-backoff-ms 1500 \
  --retry-mode exponential \
  --error-csv .\\update_failed.csv

Use pvw to ensure you are running the latest source in this repo.

Performance Options

Both commands support these options:

  • --batch-size (default: 100)
  • --throttle-ms (default: 0)
  • --max-retries (default: 3)
  • --retry-backoff-ms (default: 1000)
  • --retry-mode (fixed or exponential, default: exponential)
  • --dry-run
  • --error-csv
  • --debug

Preset Profiles

Fast

--batch-size 100 --throttle-ms 50 --max-retries 3 --retry-backoff-ms 1000 --retry-mode fixed

Use when API throttling is rare and you need max throughput.

Balanced

--batch-size 50 --throttle-ms 200 --max-retries 4 --retry-backoff-ms 1500 --retry-mode exponential

Recommended default for most tenants.

Safe

--batch-size 25 --throttle-ms 500 --max-retries 5 --retry-backoff-ms 2000 --retry-mode exponential

Use when your tenant is sensitive to burst traffic or you see frequent throttling.

The commands use the latest source from this repo when you run pvw from a local checkout, or the installed CLI if you already published it.

Practical Examples

Balanced bulk create

pvw entity bulk-create-csv \
  --csv-file .\\create.csv \
  --batch-size 50 \
  --throttle-ms 200 \
  --max-retries 4 \
  --retry-backoff-ms 1500 \
  --retry-mode exponential \
  --error-csv .\\create_failed.csv

Balanced bulk update

pvw entity bulk-update-csv \
  --csv-file .\\update.csv \
  --batch-size 50 \
  --throttle-ms 200 \
  --max-retries 4 \
  --retry-backoff-ms 1500 \
  --retry-mode exponential \
  --error-csv .\\update_failed.csv

Tuning Rules

  • If you get throttled often: lower --batch-size and increase --throttle-ms.
  • If runs are stable and too slow: increase --batch-size or reduce --throttle-ms.
  • Keep --retry-mode exponential for unstable environments.

CSV Notes

  • bulk-create-csv expects typeName and qualifiedName.
  • bulk-update-csv supports GUID-driven rows or typeName + qualifiedName rows and now uses bulk payload calls per batch.
  • Use --error-csv to capture failed rows for reprocessing.
  • Use --dry-run to preview batch behavior without changing Purview.