mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-31 20:12:16 +08:00
95 lines
1.8 KiB
Markdown
95 lines
1.8 KiB
Markdown
<!-- Parent: platform-data-manage/SKILL.md -->
|
|
# Bulk Operations Guide
|
|
|
|
When and how to use Salesforce Bulk API operations.
|
|
|
|
## Decision Matrix
|
|
|
|
| Record Count | Recommended API | Command |
|
|
|--------------|-----------------|---------|
|
|
| 1-10 | Single Record | `sf data create record` |
|
|
| 11-2000 | Standard API | `sf data query` + Apex |
|
|
| 2000-10M | Bulk API 2.0 | `sf data import bulk` |
|
|
| 10M+ | Data Loader | External tool |
|
|
|
|
## Bulk API 2.0 Commands
|
|
|
|
### Import (Insert)
|
|
```bash
|
|
sf data import bulk \
|
|
--file accounts.csv \
|
|
--sobject Account \
|
|
--target-org myorg \
|
|
--wait 30
|
|
```
|
|
|
|
### Update
|
|
```bash
|
|
sf data update bulk \
|
|
--file updates.csv \
|
|
--sobject Account \
|
|
--target-org myorg \
|
|
--wait 30
|
|
```
|
|
|
|
### Upsert (Insert or Update)
|
|
```bash
|
|
sf data upsert bulk \
|
|
--file upsert.csv \
|
|
--sobject Account \
|
|
--external-id External_Id__c \
|
|
--target-org myorg \
|
|
--wait 30
|
|
```
|
|
|
|
### Delete
|
|
```bash
|
|
sf data delete bulk \
|
|
--file delete.csv \
|
|
--sobject Account \
|
|
--target-org myorg \
|
|
--wait 30
|
|
```
|
|
|
|
### Export
|
|
```bash
|
|
sf data export bulk \
|
|
--query "SELECT Id, Name FROM Account" \
|
|
--output-file accounts.csv \
|
|
--target-org myorg \
|
|
--wait 30
|
|
```
|
|
|
|
## CSV Format Requirements
|
|
|
|
- First row: Field API names
|
|
- UTF-8 encoding
|
|
- Comma delimiter (default)
|
|
- Max 100MB per file
|
|
|
|
## Bulk API Limits
|
|
|
|
| Limit | Value |
|
|
|-------|-------|
|
|
| Batches per 24 hours | 10,000 |
|
|
| Records per 24 hours | 10,000,000 |
|
|
| Max file size | 100 MB |
|
|
| Max concurrent jobs | 100 |
|
|
|
|
## Error Handling
|
|
|
|
```bash
|
|
# Check job status
|
|
sf data resume --job-id [job-id] --target-org myorg
|
|
|
|
# Get results
|
|
sf data bulk results --job-id [job-id] --target-org myorg
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
1. **Chunk large files** - Split files >100MB
|
|
2. **Use --wait** - Monitor completion
|
|
3. **Handle partial failures** - Check result files
|
|
4. **Test in sandbox** - Validate before production
|