public static class SyntheticBoundedIO.SyntheticSourceOptions extends SyntheticOptions
SyntheticSourceOptions uses jackson annotations which
PipelineOptionsFactory can use to parse and construct an instance.| Modifier and Type | Class and Description |
|---|---|
static class |
SyntheticBoundedIO.SyntheticSourceOptions.Record
Record generated by
genRecord(long). |
SyntheticOptions.DelayType, SyntheticOptions.Sampler| Modifier and Type | Field and Description |
|---|---|
SyntheticOptions.Sampler |
bundleSizeDistribution
Distribution for generating initial split bundles.
|
java.lang.Integer |
forceNumInitialBundles
If specified, this source will split into exactly this many bundles regardless of the hints
provided by the service.
|
long |
numRecords
Total number of generated records.
|
SyntheticBoundedIO.ProgressShape |
progressShape
|
long |
splitPointFrequencyRecords
Only records whose index is a multiple of this will be split points.
|
bytesPerRecord, cpuUtilizationInMixedDelay, delayType, hotKeyFraction, keySizeBytes, largeKeyFraction, largeKeySizeBytes, numHotKeys, seed, valueSizeBytes| Constructor and Description |
|---|
SyntheticSourceOptions() |
| Modifier and Type | Method and Description |
|---|---|
SyntheticBoundedIO.SyntheticSourceOptions.Record |
genRecord(long position) |
void |
validate() |
fromIntegerDistribution, fromRealDistribution, genKvPair, hashFunction, nextDelay, setSeed, toStringpublic long numRecords
public long splitPointFrequencyRecords
public SyntheticOptions.Sampler bundleSizeDistribution
When splitting into "desiredBundleSizeBytes", we'll compute the desired number of bundles N, then sample this many numbers from this distribution, normalize their sum to 1, and use that as the boundaries of generated bundles.
The Zipf distribution is expected to be particularly useful here.
E.g., empirically, with 100 bundles, the Zipf distribution with a parameter of 3.5 will generate bundles where the largest is about 3x-10x larger than the median; with a parameter of 3.0 this ratio will be about 5x-50x; with 2.5, 5x-100x (i.e. 1 bundle can be as large as all others combined).
public java.lang.Integer forceNumInitialBundles
public SyntheticBoundedIO.ProgressShape progressShape
public void validate()
validate in class SyntheticOptionspublic SyntheticBoundedIO.SyntheticSourceOptions.Record genRecord(long position)