@mkven/samples-generation 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +273 -18
- package/dist/generator/base-generator.d.ts +2 -1
- package/dist/generator/base-generator.d.ts.map +1 -1
- package/dist/generator/base-generator.js +116 -3
- package/dist/generator/base-generator.js.map +1 -1
- package/dist/generator/clickhouse-generator.d.ts.map +1 -1
- package/dist/generator/clickhouse-generator.js +15 -5
- package/dist/generator/clickhouse-generator.js.map +1 -1
- package/dist/generator/index.d.ts +1 -1
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/trino-generator.d.ts +5 -0
- package/dist/generator/trino-generator.d.ts.map +1 -1
- package/dist/generator/trino-generator.js +46 -51
- package/dist/generator/trino-generator.js.map +1 -1
- package/dist/generator/types.d.ts +118 -3
- package/dist/generator/types.d.ts.map +1 -1
- package/package.json +29 -20
package/README.md
CHANGED
|
@@ -19,20 +19,101 @@ We often need to prefill tables during tests, checks, and measurements. These ge
|
|
|
19
19
|
pnpm install
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
## Measurements of
|
|
22
|
+
## Measurements of generations
|
|
23
23
|
|
|
24
|
-
Environment: local databases, simple setup, 1 billion rows
|
|
24
|
+
Environment: local databases, simple setup, 1 billion rows
|
|
25
|
+
|
|
26
|
+
### Trivial generation
|
|
27
|
+
|
|
28
|
+
5 columns (id, 10-char string, 0 - 1000 float, string choice out of 3 variants, datetime)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx tsx scripts/generate-all.ts --scenario simple -r 1_000_000_000 --clickhouse --trino
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
#### 1 billion rows
|
|
25
35
|
|
|
26
36
|
_ClickHouse:_ Generated in 11m 2s (generation: 6m 8s, optimisation: 4m 54s), table size: 23.81 GB
|
|
27
37
|
|
|
28
|
-
_Trino:_ Generated in
|
|
38
|
+
_Trino, 16 Gb Ram + spill by fte:_ Generated in 8m 40s (generation: 6m 48s, optimisation: 291ms), table size: 15.70 GB
|
|
29
39
|
|
|
30
40
|
_PostgreSQL:_ Generated in 54m 26s (generation: 35m 55s, optimisation: 18m 30s), table size: 63.60 GB
|
|
31
41
|
|
|
32
|
-
|
|
42
|
+
#### 10 billion rows
|
|
43
|
+
|
|
44
|
+
_ClickHouse:_ Generated in 4h 52m 21s (generation: 4h 47m 44s, optimisation: 4m 36s), table size: 248.38 GB
|
|
45
|
+
|
|
46
|
+
_Trino:_ Generated in 1h 4m 41s (generation: 1h 4m 41s, optimisation: 181ms), table size: 158.62 GB
|
|
47
|
+
|
|
48
|
+
### Names, then templated email based on generated names
|
|
49
|
+
|
|
50
|
+
7 columns total.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx tsx scripts/generate-all.ts --scenario english-names -r 1_000_000_000 --clickhouse --trino
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### 1 billion rows
|
|
57
|
+
|
|
58
|
+
English names:
|
|
59
|
+
|
|
60
|
+
_ClickHouse:_ Generated in 41m 48s (generation: 35m 9s, transformation: 3m 55s, optimisation: 2m 42s), table size: 44.97 GB
|
|
61
|
+
|
|
62
|
+
_Trino, 16 Gb Ram + spill by fte:_ Generated in 24m 51s (generation: 7m 47s, transformation: 16m 40s, optimisation: 24.34s), table size: 20.51 GB
|
|
63
|
+
|
|
64
|
+
### Lookup transformation (10K departments → employees)
|
|
65
|
+
|
|
66
|
+
7 columns in employees table, lookup from department name in 10K-row departments table.
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npx tsx scripts/generate-all.ts --scenario lookup-demo -r 1_000_000_000 --clickhouse --trino
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### 1 billion rows
|
|
73
|
+
|
|
74
|
+
_ClickHouse:_ Generated in 1h 19m 46s (generation: 25m 31s, transformation: 39m 25s, optimisation: 14m 49s), table size: 41.42 GB
|
|
75
|
+
|
|
76
|
+
_Trino, 20 Gb Ram:_ Generated in 32m 57s (generation: 4m 55s, transformation: 26m 36s, optimisation: 1m 25s), table size: 17.94 GB
|
|
77
|
+
|
|
78
|
+
_Trino, 16 Gb Ram + spill by fte:_ Generated in 46m 11s (generation: 13m 52s, transformation: 31m 43s, optimisation: 35.11s), table size: 17.94 GB
|
|
79
|
+
|
|
80
|
+
### Note
|
|
81
|
+
|
|
82
|
+
Two configurations are available:
|
|
83
|
+
|
|
84
|
+
- **Standard (20GB):** `trino` - high memory, no spilling
|
|
85
|
+
- **16GB comparison:** `trino-fte` (fault-tolerant execution with disk spilling) and `clickhouse` - both with 16GB limits
|
|
86
|
+
|
|
87
|
+
See `compose/docker-compose.yml` for container resource limits and `compose/trino/` or `compose/trino-fte/` for Trino-specific settings.
|
|
33
88
|
|
|
34
89
|
## Quick Start
|
|
35
90
|
|
|
91
|
+
### Starting Databases
|
|
92
|
+
|
|
93
|
+
Start all databases:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pnpm compose:up
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Or start individual databases:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pnpm compose:postgres # PostgreSQL only
|
|
103
|
+
pnpm compose:clickhouse # ClickHouse only
|
|
104
|
+
pnpm compose:trino # Trino 20GB, high memory
|
|
105
|
+
pnpm compose:trino-fte # Trino 16GB, fault-tolerant execution with spill
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> **Note:** `trino` and `trino-fte` share port 8080 - stop one before starting the other.
|
|
109
|
+
|
|
110
|
+
Stop and clean up:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
pnpm compose:down # Stop containers
|
|
114
|
+
pnpm compose:reset # Stop and remove volumes
|
|
115
|
+
```
|
|
116
|
+
|
|
36
117
|
### Using the Generator API
|
|
37
118
|
|
|
38
119
|
```typescript
|
|
@@ -82,6 +163,7 @@ const result = await generator.generate({
|
|
|
82
163
|
rowCount: 1000,
|
|
83
164
|
truncateFirst: true,
|
|
84
165
|
resumeSequences: true, // Continue sequence from last max value
|
|
166
|
+
batchSize: 100_000_000, // Optional: insert in batches (useful for large datasets)
|
|
85
167
|
});
|
|
86
168
|
console.log(
|
|
87
169
|
`Inserted ${result.rowsInserted} rows in ${result.generateMs}ms (optimize: ${result.optimizeMs}ms)`
|
|
@@ -335,6 +417,166 @@ With descriptions, you'll see helpful logs:
|
|
|
335
417
|
[postgres] Applying transformations: Introduce data quality issues (1 transformation(s))
|
|
336
418
|
```
|
|
337
419
|
|
|
420
|
+
### Scenarios
|
|
421
|
+
|
|
422
|
+
A `Scenario` orchestrates multi-step data generation workflows - create lookup tables, generate main tables, and apply cross-table transformations in sequence:
|
|
423
|
+
|
|
424
|
+
```typescript
|
|
425
|
+
import { PostgresDataGenerator, type Scenario } from "./src/generator/index.js";
|
|
426
|
+
|
|
427
|
+
const scenario: Scenario = {
|
|
428
|
+
name: "E-commerce data",
|
|
429
|
+
steps: [
|
|
430
|
+
// Step 1: Create lookup table
|
|
431
|
+
{
|
|
432
|
+
table: {
|
|
433
|
+
name: "departments",
|
|
434
|
+
columns: [
|
|
435
|
+
{
|
|
436
|
+
name: "id",
|
|
437
|
+
type: "integer",
|
|
438
|
+
generator: { kind: "sequence", start: 1 },
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
name: "name",
|
|
442
|
+
type: "string",
|
|
443
|
+
generator: {
|
|
444
|
+
kind: "choice",
|
|
445
|
+
values: ["Engineering", "Sales", "HR"],
|
|
446
|
+
},
|
|
447
|
+
},
|
|
448
|
+
],
|
|
449
|
+
},
|
|
450
|
+
rowCount: 3,
|
|
451
|
+
},
|
|
452
|
+
// Step 2: Generate main table with transformations
|
|
453
|
+
{
|
|
454
|
+
table: {
|
|
455
|
+
name: "employees",
|
|
456
|
+
columns: [
|
|
457
|
+
{
|
|
458
|
+
name: "id",
|
|
459
|
+
type: "bigint",
|
|
460
|
+
generator: { kind: "sequence", start: 1 },
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
name: "first_name",
|
|
464
|
+
type: "string",
|
|
465
|
+
generator: {
|
|
466
|
+
kind: "choice",
|
|
467
|
+
values: ["John", "Jane", "Bob"],
|
|
468
|
+
},
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
name: "last_name",
|
|
472
|
+
type: "string",
|
|
473
|
+
generator: { kind: "choice", values: ["Smith", "Jones"] },
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
name: "email",
|
|
477
|
+
type: "string",
|
|
478
|
+
generator: { kind: "constant", value: "" },
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
name: "department_id",
|
|
482
|
+
type: "integer",
|
|
483
|
+
generator: { kind: "randomInt", min: 1, max: 3 },
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
name: "department_name",
|
|
487
|
+
type: "string",
|
|
488
|
+
generator: { kind: "constant", value: "" },
|
|
489
|
+
},
|
|
490
|
+
],
|
|
491
|
+
},
|
|
492
|
+
rowCount: 1000,
|
|
493
|
+
transformations: [
|
|
494
|
+
{
|
|
495
|
+
description: "Generate email from names",
|
|
496
|
+
transformations: [
|
|
497
|
+
{
|
|
498
|
+
kind: "template",
|
|
499
|
+
column: "email",
|
|
500
|
+
template: "{first_name}.{last_name}@company.com",
|
|
501
|
+
lowercase: true,
|
|
502
|
+
},
|
|
503
|
+
],
|
|
504
|
+
},
|
|
505
|
+
],
|
|
506
|
+
},
|
|
507
|
+
// Step 3: Transform-only step - apply cross-table lookup
|
|
508
|
+
{
|
|
509
|
+
tableName: "employees",
|
|
510
|
+
transformations: [
|
|
511
|
+
{
|
|
512
|
+
description: "Lookup department name",
|
|
513
|
+
transformations: [
|
|
514
|
+
{
|
|
515
|
+
kind: "lookup",
|
|
516
|
+
column: "department_name",
|
|
517
|
+
fromTable: "departments",
|
|
518
|
+
fromColumn: "name",
|
|
519
|
+
joinOn: { targetColumn: "department_id", lookupColumn: "id" },
|
|
520
|
+
},
|
|
521
|
+
],
|
|
522
|
+
},
|
|
523
|
+
],
|
|
524
|
+
},
|
|
525
|
+
],
|
|
526
|
+
};
|
|
527
|
+
|
|
528
|
+
const generator = new PostgresDataGenerator({
|
|
529
|
+
/* config */
|
|
530
|
+
});
|
|
531
|
+
await generator.connect();
|
|
532
|
+
|
|
533
|
+
const result = await generator.runScenario({
|
|
534
|
+
scenario,
|
|
535
|
+
dropFirst: true,
|
|
536
|
+
});
|
|
537
|
+
|
|
538
|
+
for (const step of result.steps) {
|
|
539
|
+
console.log(`[${step.tableName}] ${step.generate?.rowsInserted ?? 0} rows`);
|
|
540
|
+
if (step.transform) {
|
|
541
|
+
console.log(
|
|
542
|
+
` Applied ${step.transform.batchesApplied} transformation batch(es)`
|
|
543
|
+
);
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
console.log(
|
|
547
|
+
`Total: ${result.totalRowsInserted} rows in ${result.durationMs}ms`
|
|
548
|
+
);
|
|
549
|
+
|
|
550
|
+
await generator.disconnect();
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
**Step Types:**
|
|
554
|
+
|
|
555
|
+
| Step Type | Fields | Description |
|
|
556
|
+
| -------------------- | --------------------------------------- | ----------------------------------------------- |
|
|
557
|
+
| Generate + Transform | `table`, `rowCount`, `transformations?` | Create table, insert rows, optionally transform |
|
|
558
|
+
| Transform only | `tableName`, `transformations` | Apply transformations to existing table |
|
|
559
|
+
|
|
560
|
+
```typescript
|
|
561
|
+
interface ScenarioOptions {
|
|
562
|
+
scenario: Scenario;
|
|
563
|
+
createTable?: boolean; // Default: true
|
|
564
|
+
dropFirst?: boolean; // Default: false
|
|
565
|
+
truncateFirst?: boolean; // Default: false
|
|
566
|
+
resumeSequences?: boolean; // Default: true
|
|
567
|
+
optimize?: boolean; // Default: true (runs once at end for all tables)
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
interface ScenarioResult {
|
|
571
|
+
steps: ScenarioStepResult[];
|
|
572
|
+
totalRowsInserted: number;
|
|
573
|
+
durationMs: number; // Total wall-clock time
|
|
574
|
+
generateMs: number; // Time spent generating rows
|
|
575
|
+
transformMs: number; // Time spent applying transformations
|
|
576
|
+
optimizeMs: number; // Time spent on optimisations
|
|
577
|
+
}
|
|
578
|
+
```
|
|
579
|
+
|
|
338
580
|
### Escape Utilities
|
|
339
581
|
|
|
340
582
|
For custom queries, use the exported escape functions:
|
|
@@ -383,12 +625,12 @@ formatBytes(1048576); // "1.00 MB"
|
|
|
383
625
|
|
|
384
626
|
By default, `generate()` runs database-specific optimization after inserting rows:
|
|
385
627
|
|
|
386
|
-
| Database | Optimization
|
|
387
|
-
| ---------- |
|
|
388
|
-
| PostgreSQL | `VACUUM ANALYZE` - reclaims storage and updates statistics
|
|
389
|
-
| ClickHouse | `OPTIMIZE TABLE FINAL` - merges all parts for MergeTree engines
|
|
390
|
-
| SQLite | `VACUUM` + `ANALYZE` - rebuilds file and gathers statistics
|
|
391
|
-
| Trino | `
|
|
628
|
+
| Database | Optimization |
|
|
629
|
+
| ---------- | ----------------------------------------------------------------- |
|
|
630
|
+
| PostgreSQL | `VACUUM ANALYZE` - reclaims storage and updates statistics |
|
|
631
|
+
| ClickHouse | `OPTIMIZE TABLE FINAL` - merges all parts for MergeTree engines |
|
|
632
|
+
| SQLite | `VACUUM` + `ANALYZE` - rebuilds file and gathers statistics |
|
|
633
|
+
| Trino | `optimize` + `expire_snapshots` + `remove_orphan_files` - Iceberg |
|
|
392
634
|
|
|
393
635
|
Disable for quick tests:
|
|
394
636
|
|
|
@@ -418,6 +660,16 @@ npx tsx scripts/generate-all.ts
|
|
|
418
660
|
npx tsx scripts/generate-all.ts --rows 1000
|
|
419
661
|
npx tsx scripts/generate-all.ts -r 1_000_000
|
|
420
662
|
|
|
663
|
+
# Use batching for large datasets (helps with memory and timeouts)
|
|
664
|
+
npx tsx scripts/generate-all.ts -r 1_000_000_000 -b 100_000_000 # 10 batches of 100M
|
|
665
|
+
npx tsx scripts/generate-all.ts -r 1_000_000_000 --batch 50_000_000 # 20 batches of 50M
|
|
666
|
+
|
|
667
|
+
# Choose scenario
|
|
668
|
+
npx tsx scripts/generate-all.ts --scenario simple # Default: 5 columns
|
|
669
|
+
npx tsx scripts/generate-all.ts --scenario english-names # Names + email template
|
|
670
|
+
npx tsx scripts/generate-all.ts --scenario russian-names # Russian names + email
|
|
671
|
+
npx tsx scripts/generate-all.ts --scenario lookup-demo # Departments + employees lookup
|
|
672
|
+
|
|
421
673
|
# Generate for specific databases only
|
|
422
674
|
npx tsx scripts/generate-all.ts --sqlite
|
|
423
675
|
npx tsx scripts/generate-all.ts --postgres
|
|
@@ -425,7 +677,7 @@ npx tsx scripts/generate-all.ts --clickhouse
|
|
|
425
677
|
npx tsx scripts/generate-all.ts --trino
|
|
426
678
|
|
|
427
679
|
# Combine options
|
|
428
|
-
npx tsx scripts/generate-all.ts -r 10000 --postgres --clickhouse
|
|
680
|
+
npx tsx scripts/generate-all.ts -r 10000 --scenario english-names --postgres --clickhouse
|
|
429
681
|
|
|
430
682
|
# Show help
|
|
431
683
|
npx tsx scripts/generate-all.ts --help
|
|
@@ -452,16 +704,19 @@ Services available:
|
|
|
452
704
|
## Testing
|
|
453
705
|
|
|
454
706
|
```bash
|
|
455
|
-
# Run tests (
|
|
707
|
+
# Run unit tests (SQL expression generators, escape functions)
|
|
456
708
|
pnpm test
|
|
457
709
|
|
|
458
|
-
# Run tests
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
710
|
+
# Run e2e tests against SQLite (default, no setup required)
|
|
711
|
+
pnpm test:e2e
|
|
712
|
+
|
|
713
|
+
# Run e2e tests with specific databases (requires docker-compose up)
|
|
714
|
+
TEST_POSTGRES=1 pnpm test:e2e
|
|
715
|
+
TEST_CLICKHOUSE=1 pnpm test:e2e
|
|
716
|
+
TEST_TRINO=1 pnpm test:e2e
|
|
462
717
|
|
|
463
|
-
# Run all
|
|
464
|
-
TEST_POSTGRES=1 TEST_CLICKHOUSE=1 TEST_TRINO=1 pnpm test
|
|
718
|
+
# Run e2e tests against all databases
|
|
719
|
+
TEST_POSTGRES=1 TEST_CLICKHOUSE=1 TEST_TRINO=1 pnpm test:e2e
|
|
465
720
|
|
|
466
721
|
# Or use the shortcut script
|
|
467
722
|
./test-all-dbs.sh
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DataGenerator, TableConfig, GenerateOptions, GenerateResult, GeneratedRow, Transformation, TransformationBatch, TransformResult } from "./types.js";
|
|
1
|
+
import type { DataGenerator, TableConfig, GenerateOptions, GenerateResult, GeneratedRow, Transformation, TransformationBatch, TransformResult, ScenarioOptions, ScenarioResult } from "./types.js";
|
|
2
2
|
export declare abstract class BaseDataGenerator implements DataGenerator {
|
|
3
3
|
abstract readonly name: string;
|
|
4
4
|
abstract connect(): Promise<void>;
|
|
@@ -35,5 +35,6 @@ export declare abstract class BaseDataGenerator implements DataGenerator {
|
|
|
35
35
|
getTableSizeForHuman(tableName: string): Promise<string | null>;
|
|
36
36
|
generate(options: GenerateOptions): Promise<GenerateResult>;
|
|
37
37
|
transform(tableName: string, batches: TransformationBatch[]): Promise<TransformResult>;
|
|
38
|
+
runScenario(options: ScenarioOptions): Promise<ScenarioResult>;
|
|
38
39
|
}
|
|
39
40
|
//# sourceMappingURL=base-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-generator.d.ts","sourceRoot":"","sources":["../../src/generator/base-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,eAAe,
|
|
1
|
+
{"version":3,"file":"base-generator.d.ts","sourceRoot":"","sources":["../../src/generator/base-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,cAAc,EAIf,MAAM,YAAY,CAAC;AASpB,8BAAsB,iBAAkB,YAAW,aAAa;IAC9D,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IACvD,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACxD,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,QAAQ,CAAC,SAAS,CAChB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEtD;;OAEG;IACH,QAAQ,CAAC,WAAW,CAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAEhE;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CACrC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,cAAc,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC;IAEhB;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAC/B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAEhB;;OAEG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK/D,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAgH3D,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,OAAO,CAAC,eAAe,CAAC;IAsBrB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAgGrE"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { formatDuration } from "./utils.js";
|
|
1
2
|
import { formatBytes } from "./utils.js";
|
|
3
|
+
/** Type guard for generate steps */
|
|
4
|
+
function isGenerateStep(step) {
|
|
5
|
+
return "table" in step && "rowCount" in step;
|
|
6
|
+
}
|
|
2
7
|
export class BaseDataGenerator {
|
|
3
8
|
/**
|
|
4
9
|
* Get the total size of a table as a human-readable string
|
|
@@ -8,12 +13,23 @@ export class BaseDataGenerator {
|
|
|
8
13
|
return size === null ? null : formatBytes(size);
|
|
9
14
|
}
|
|
10
15
|
async generate(options) {
|
|
11
|
-
const { table, rowCount, createTable = true, dropFirst = false, truncateFirst = false, resumeSequences = true, optimize = true, } = options;
|
|
16
|
+
const { table, rowCount, createTable = true, dropFirst = false, truncateFirst = false, resumeSequences = true, optimize = true, batchSize: requestedBatchSize, } = options;
|
|
12
17
|
const startTime = Date.now();
|
|
18
|
+
// Always use batching internally - default to full rowCount if not specified
|
|
19
|
+
const effectiveBatchSize = requestedBatchSize &&
|
|
20
|
+
requestedBatchSize > 0 &&
|
|
21
|
+
requestedBatchSize < rowCount
|
|
22
|
+
? requestedBatchSize
|
|
23
|
+
: rowCount;
|
|
24
|
+
const batchCount = Math.ceil(rowCount / effectiveBatchSize);
|
|
25
|
+
const showBatchProgress = batchCount > 1;
|
|
13
26
|
const tableLabel = table.description
|
|
14
27
|
? `${table.name} (${table.description})`
|
|
15
28
|
: table.name;
|
|
16
|
-
console.log(`[${this.name}] Generating: ${tableLabel} - ${rowCount.toLocaleString()} rows`
|
|
29
|
+
console.log(`[${this.name}] Generating: ${tableLabel} - ${rowCount.toLocaleString()} rows` +
|
|
30
|
+
(showBatchProgress
|
|
31
|
+
? ` (${String(batchCount)} batches of ${effectiveBatchSize.toLocaleString()})`
|
|
32
|
+
: ""));
|
|
17
33
|
if (dropFirst) {
|
|
18
34
|
await this.dropTable(table.name);
|
|
19
35
|
}
|
|
@@ -36,7 +52,31 @@ export class BaseDataGenerator {
|
|
|
36
52
|
}
|
|
37
53
|
}
|
|
38
54
|
}
|
|
39
|
-
|
|
55
|
+
// Generate in batches (single batch if batchSize not specified)
|
|
56
|
+
let remaining = rowCount;
|
|
57
|
+
let currentSequence = startSequence;
|
|
58
|
+
let batchNum = 0;
|
|
59
|
+
const batchTimes = [];
|
|
60
|
+
while (remaining > 0) {
|
|
61
|
+
batchNum++;
|
|
62
|
+
const currentBatchSize = Math.min(effectiveBatchSize, remaining);
|
|
63
|
+
const batchStart = Date.now();
|
|
64
|
+
if (showBatchProgress) {
|
|
65
|
+
// Calculate ETA based on average batch time (skip first batch)
|
|
66
|
+
let etaStr = "";
|
|
67
|
+
if (batchTimes.length > 0) {
|
|
68
|
+
const avgBatchMs = batchTimes.reduce((a, b) => a + b, 0) / batchTimes.length;
|
|
69
|
+
const remainingBatches = batchCount - batchNum + 1;
|
|
70
|
+
const etaMs = avgBatchMs * remainingBatches;
|
|
71
|
+
etaStr = ` - ETA: ${formatDuration(etaMs)}`;
|
|
72
|
+
}
|
|
73
|
+
console.log(`[${this.name}] Batch ${String(batchNum)}/${String(batchCount)}: ${currentBatchSize.toLocaleString()} rows${etaStr}`);
|
|
74
|
+
}
|
|
75
|
+
await this.generateNative(table, currentBatchSize, currentSequence);
|
|
76
|
+
batchTimes.push(Date.now() - batchStart);
|
|
77
|
+
remaining -= currentBatchSize;
|
|
78
|
+
currentSequence += currentBatchSize;
|
|
79
|
+
}
|
|
40
80
|
const generateMs = Date.now() - startTime;
|
|
41
81
|
let optimizeMs = 0;
|
|
42
82
|
if (optimize) {
|
|
@@ -49,6 +89,7 @@ export class BaseDataGenerator {
|
|
|
49
89
|
durationMs: Date.now() - startTime,
|
|
50
90
|
generateMs,
|
|
51
91
|
optimizeMs,
|
|
92
|
+
batchCount,
|
|
52
93
|
};
|
|
53
94
|
}
|
|
54
95
|
async transform(tableName, batches) {
|
|
@@ -68,5 +109,77 @@ export class BaseDataGenerator {
|
|
|
68
109
|
batchesApplied,
|
|
69
110
|
};
|
|
70
111
|
}
|
|
112
|
+
async runScenario(options) {
|
|
113
|
+
const startTime = Date.now();
|
|
114
|
+
const { scenario, createTable = true, dropFirst = false, truncateFirst = false, resumeSequences = true, optimize = true, batchSize, } = options;
|
|
115
|
+
if (scenario.name) {
|
|
116
|
+
console.log(`[${this.name}] Running scenario: ${scenario.name}`);
|
|
117
|
+
}
|
|
118
|
+
const stepResults = [];
|
|
119
|
+
let totalRowsInserted = 0;
|
|
120
|
+
let totalGenerateMs = 0;
|
|
121
|
+
let totalTransformMs = 0;
|
|
122
|
+
for (const step of scenario.steps) {
|
|
123
|
+
if (isGenerateStep(step)) {
|
|
124
|
+
// Generate step: create table and insert rows
|
|
125
|
+
if (dropFirst) {
|
|
126
|
+
await this.dropTable(step.table.name);
|
|
127
|
+
}
|
|
128
|
+
// Don't optimize during steps - we'll optimize all tables at the end
|
|
129
|
+
const generateResult = await this.generate({
|
|
130
|
+
table: step.table,
|
|
131
|
+
rowCount: step.rowCount,
|
|
132
|
+
createTable,
|
|
133
|
+
dropFirst: false, // Already handled above
|
|
134
|
+
truncateFirst,
|
|
135
|
+
resumeSequences,
|
|
136
|
+
optimize: false,
|
|
137
|
+
batchSize,
|
|
138
|
+
});
|
|
139
|
+
// Apply transformations if defined
|
|
140
|
+
let transformResult;
|
|
141
|
+
if (step.transformations && step.transformations.length > 0) {
|
|
142
|
+
transformResult = await this.transform(step.table.name, step.transformations);
|
|
143
|
+
}
|
|
144
|
+
stepResults.push({
|
|
145
|
+
tableName: step.table.name,
|
|
146
|
+
generate: generateResult,
|
|
147
|
+
transform: transformResult,
|
|
148
|
+
});
|
|
149
|
+
totalRowsInserted += generateResult.rowsInserted;
|
|
150
|
+
totalGenerateMs += generateResult.generateMs;
|
|
151
|
+
if (transformResult) {
|
|
152
|
+
totalTransformMs += transformResult.durationMs;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// Transform-only step: just apply transformations to existing table
|
|
157
|
+
const transformResult = await this.transform(step.tableName, step.transformations);
|
|
158
|
+
stepResults.push({
|
|
159
|
+
tableName: step.tableName,
|
|
160
|
+
transform: transformResult,
|
|
161
|
+
});
|
|
162
|
+
totalTransformMs += transformResult.durationMs;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Optimize all touched tables once at the end
|
|
166
|
+
let optimizeMs = 0;
|
|
167
|
+
if (optimize) {
|
|
168
|
+
const optimizeStart = Date.now();
|
|
169
|
+
const uniqueTables = [...new Set(stepResults.map((s) => s.tableName))];
|
|
170
|
+
for (const tableName of uniqueTables) {
|
|
171
|
+
await this.optimize(tableName);
|
|
172
|
+
}
|
|
173
|
+
optimizeMs = Date.now() - optimizeStart;
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
steps: stepResults,
|
|
177
|
+
totalRowsInserted,
|
|
178
|
+
durationMs: Date.now() - startTime,
|
|
179
|
+
generateMs: totalGenerateMs,
|
|
180
|
+
transformMs: totalTransformMs,
|
|
181
|
+
optimizeMs,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
71
184
|
}
|
|
72
185
|
//# sourceMappingURL=base-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-generator.js","sourceRoot":"","sources":["../../src/generator/base-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-generator.js","sourceRoot":"","sources":["../../src/generator/base-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clickhouse-generator.d.ts","sourceRoot":"","sources":["../../src/generator/clickhouse-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,eAAe,EACf,cAAc,EAIf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkCD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CA4CR;AAED,qBAAa,uBAAwB,SAAQ,iBAAiB;IAIhD,OAAO,CAAC,MAAM;IAH1B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiC;gBAE3B,MAAM,EAAE,gBAAgB;IAI5C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"clickhouse-generator.d.ts","sourceRoot":"","sources":["../../src/generator/clickhouse-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,eAAe,EACf,cAAc,EAIf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkCD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CA4CR;AAED,qBAAa,uBAAwB,SAAQ,iBAAiB;IAIhD,OAAO,CAAC,MAAM;IAH1B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiC;gBAE3B,MAAM,EAAE,gBAAgB;IAI5C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBlB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,OAAO,CAAC,SAAS;IAOX,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB9C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAOjC,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IA4CV,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAUlE,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc7C,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAcnB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAevD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAWhC,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,cAAc,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC;IAsHhB;;;OAGG;YACW,wBAAwB;IA8FtC;;;;OAIG;YACW,yBAAyB;CAoDxC"}
|
|
@@ -96,6 +96,10 @@ export class ClickHouseDataGenerator extends BaseDataGenerator {
|
|
|
96
96
|
database: this.config.database,
|
|
97
97
|
// Increase timeout for large data generation (6 hours for 10B+ rows)
|
|
98
98
|
request_timeout: 21_600_000,
|
|
99
|
+
// Increase max query size for large lookup tables (default is 256KB)
|
|
100
|
+
clickhouse_settings: {
|
|
101
|
+
max_query_size: "10000000", // 10MB
|
|
102
|
+
},
|
|
99
103
|
});
|
|
100
104
|
return Promise.resolve();
|
|
101
105
|
}
|
|
@@ -349,9 +353,13 @@ export class ClickHouseDataGenerator extends BaseDataGenerator {
|
|
|
349
353
|
query: `SHOW CREATE TABLE ${escapedTable}`,
|
|
350
354
|
format: "TabSeparated",
|
|
351
355
|
});
|
|
352
|
-
|
|
356
|
+
// TabSeparated returns escaped newlines as literal \n, need to unescape
|
|
357
|
+
const createStatement = (await structResult.text())
|
|
358
|
+
.replace(/\\n/g, "\n")
|
|
359
|
+
.replace(/\\t/g, "\t");
|
|
353
360
|
// Create temp table with same structure
|
|
354
|
-
|
|
361
|
+
// SHOW CREATE returns "CREATE TABLE database.tablename" - replace the full table reference
|
|
362
|
+
const tempCreateSql = createStatement.replace(/CREATE TABLE [^\s(]+/, `CREATE TABLE ${tempTable}`);
|
|
355
363
|
await client.command({ query: tempCreateSql });
|
|
356
364
|
// Get all columns
|
|
357
365
|
const colsResult = await client.query({
|
|
@@ -371,25 +379,27 @@ export class ClickHouseDataGenerator extends BaseDataGenerator {
|
|
|
371
379
|
swapInfo.set(col2, { otherCol: col1, prob, randVar });
|
|
372
380
|
});
|
|
373
381
|
// Build SELECT with swap logic
|
|
382
|
+
// Use _inner. prefix to avoid ClickHouse resolving column names to aliases
|
|
374
383
|
const selectColumns = allColumns.map((col) => {
|
|
375
384
|
const info = swapInfo.get(col);
|
|
376
385
|
if (info) {
|
|
377
|
-
return `if(${info.randVar} < ${info.prob},
|
|
386
|
+
return `if(${info.randVar} < ${info.prob}, _inner.${info.otherCol}, _inner.${col}) as ${col}`;
|
|
378
387
|
}
|
|
379
|
-
return col
|
|
388
|
+
return `_inner.${col}`;
|
|
380
389
|
});
|
|
381
390
|
// Build random variable definitions for subquery
|
|
382
391
|
const randVars = swaps
|
|
383
392
|
.map((_, i) => `rand() / 4294967295.0 as _swap_rand_${String(i)}`)
|
|
384
393
|
.join(", ");
|
|
385
394
|
// Use subquery to compute random values once per row
|
|
395
|
+
// Alias the subquery as _inner to avoid column name resolution issues
|
|
386
396
|
const insertSql = `
|
|
387
397
|
INSERT INTO ${tempTable}
|
|
388
398
|
SELECT ${selectColumns.join(", ")}
|
|
389
399
|
FROM (
|
|
390
400
|
SELECT *, ${randVars}
|
|
391
401
|
FROM ${escapedTable}
|
|
392
|
-
)
|
|
402
|
+
) AS _inner
|
|
393
403
|
`;
|
|
394
404
|
await client.command({ query: insertSql });
|
|
395
405
|
// Swap tables
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clickhouse-generator.js","sourceRoot":"","sources":["../../src/generator/clickhouse-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clickhouse-generator.js","sourceRoot":"","sources":["../../src/generator/clickhouse-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { DataGenerator, TableConfig, ColumnConfig, GenerateOptions, GenerateResult, GeneratedRow, ColumnType, GeneratorConfig, SequenceGenerator, RandomIntGenerator, RandomFloatGenerator, RandomStringGenerator, ChoiceGenerator, ConstantGenerator, DatetimeGenerator, UuidGenerator, ChoiceByLookupGenerator, Transformation, TemplateTransformation, MutateTransformation, LookupTransformation, TransformationBatch, TransformResult, } from "./types.js";
|
|
1
|
+
export type { DataGenerator, TableConfig, ColumnConfig, CommonGenerateOptions, GenerateOptions, GenerateResult, GeneratedRow, ColumnType, GeneratorConfig, SequenceGenerator, RandomIntGenerator, RandomFloatGenerator, RandomStringGenerator, ChoiceGenerator, ConstantGenerator, DatetimeGenerator, UuidGenerator, ChoiceByLookupGenerator, Transformation, TemplateTransformation, MutateTransformation, LookupTransformation, SwapTransformation, TransformationBatch, TransformResult, ScenarioStep, ScenarioGenerateStep, ScenarioTransformStep, Scenario, ScenarioOptions, ScenarioStepResult, ScenarioResult, } from "./types.js";
|
|
2
2
|
export { formatBytes, formatDuration, getLookupTableName } from "./utils.js";
|
|
3
3
|
export { BaseDataGenerator } from "./base-generator.js";
|
|
4
4
|
export { escapePostgresIdentifier, escapeClickHouseIdentifier, escapeTrinoIdentifier, } from "./escape.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,GAExB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAoB,MAAM,sBAAsB,CAAC"}
|
|
@@ -23,6 +23,11 @@ export declare class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
23
23
|
connect(): Promise<void>;
|
|
24
24
|
disconnect(): Promise<void>;
|
|
25
25
|
private getTrino;
|
|
26
|
+
/**
|
|
27
|
+
* Consume a Trino query iterator and throw on error.
|
|
28
|
+
* Use for DDL/DML statements that don't return data.
|
|
29
|
+
*/
|
|
30
|
+
private executeQuery;
|
|
26
31
|
private fullTableName;
|
|
27
32
|
createTable(table: TableConfig): Promise<void>;
|
|
28
33
|
truncateTable(tableName: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trino-generator.d.ts","sourceRoot":"","sources":["../../src/generator/trino-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,eAAe,EAEf,cAAc,EAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AA8BD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,
|
|
1
|
+
{"version":3,"file":"trino-generator.d.ts","sourceRoot":"","sources":["../../src/generator/trino-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAEZ,eAAe,EAEf,cAAc,EAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AA8BD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAgDR;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB;IAM3C,OAAO,CAAC,MAAM;IAL1B,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;gBAEV,MAAM,EAAE,WAAW;IAMvC,OAAO,KAAK,cAAc,GAEzB;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,OAAO,CAAC,QAAQ;IAOhB;;;OAGG;YACW,YAAY;IAc1B,OAAO,CAAC,aAAa;IAIf,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAQjC,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IA0EV,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA6BlE,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB7C,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwBnB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2BvD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cA0BhC,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,cAAc,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC;CA4HjB"}
|
|
@@ -39,7 +39,8 @@ export function generatorToTrinoExpr(gen, seqExpr) {
|
|
|
39
39
|
case "sequence": {
|
|
40
40
|
const start = gen.start ?? 1;
|
|
41
41
|
const step = gen.step ?? 1;
|
|
42
|
-
|
|
42
|
+
// Cast to BIGINT to handle >2B rows
|
|
43
|
+
return `(CAST(${String(start)} - 1 AS BIGINT) + ${seqExpr} * CAST(${String(step)} AS BIGINT))`;
|
|
43
44
|
}
|
|
44
45
|
case "randomInt":
|
|
45
46
|
// Trino random() returns 0.0 to 1.0
|
|
@@ -104,9 +105,7 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
104
105
|
});
|
|
105
106
|
// Ensure schema exists
|
|
106
107
|
const createSchema = await this.trino.query(`CREATE SCHEMA IF NOT EXISTS ${this.fullSchemaPath}`);
|
|
107
|
-
|
|
108
|
-
// consume iterator
|
|
109
|
-
}
|
|
108
|
+
await this.executeQuery(createSchema, "connect");
|
|
110
109
|
}
|
|
111
110
|
disconnect() {
|
|
112
111
|
this.trino = null;
|
|
@@ -118,6 +117,18 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
118
117
|
}
|
|
119
118
|
return this.trino;
|
|
120
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Consume a Trino query iterator and throw on error.
|
|
122
|
+
* Use for DDL/DML statements that don't return data.
|
|
123
|
+
*/
|
|
124
|
+
async executeQuery(query, operation) {
|
|
125
|
+
for await (const result of query) {
|
|
126
|
+
const trinoResult = result;
|
|
127
|
+
if (trinoResult.error) {
|
|
128
|
+
throw new Error(`Trino ${operation} failed: ${trinoResult.error.message}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
121
132
|
fullTableName(tableName) {
|
|
122
133
|
return `${this.fullSchemaPath}.${escapeTrinoIdentifier(tableName)}`;
|
|
123
134
|
}
|
|
@@ -130,33 +141,17 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
130
141
|
})
|
|
131
142
|
.join(", ");
|
|
132
143
|
const query = await trino.query(`CREATE TABLE IF NOT EXISTS ${this.fullTableName(table.name)} (${columns}) WITH (format = 'PARQUET')`);
|
|
133
|
-
|
|
134
|
-
const trinoResult = result;
|
|
135
|
-
if (trinoResult.error) {
|
|
136
|
-
throw new Error(`Trino createTable failed: ${trinoResult.error.message}`);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
144
|
+
await this.executeQuery(query, "createTable");
|
|
139
145
|
}
|
|
140
146
|
async truncateTable(tableName) {
|
|
141
147
|
const trino = this.getTrino();
|
|
142
148
|
const query = await trino.query(`DELETE FROM ${this.fullTableName(tableName)}`);
|
|
143
|
-
|
|
144
|
-
const trinoResult = result;
|
|
145
|
-
if (trinoResult.error) {
|
|
146
|
-
throw new Error(`Trino truncateTable failed: ${trinoResult.error.message}`);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
+
await this.executeQuery(query, "truncateTable");
|
|
149
150
|
}
|
|
150
151
|
async dropTable(tableName) {
|
|
151
152
|
const trino = this.getTrino();
|
|
152
153
|
const query = await trino.query(`DROP TABLE IF EXISTS ${this.fullTableName(tableName)}`);
|
|
153
|
-
|
|
154
|
-
// Check for errors in Trino response
|
|
155
|
-
const trinoResult = result;
|
|
156
|
-
if (trinoResult.error) {
|
|
157
|
-
throw new Error(`Trino query failed: ${trinoResult.error.message}`);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
154
|
+
await this.executeQuery(query, "dropTable");
|
|
160
155
|
}
|
|
161
156
|
async generateNative(table, rowCount, startSequence) {
|
|
162
157
|
const trino = this.getTrino();
|
|
@@ -184,7 +179,8 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
184
179
|
const ROWS_PER_CHUNK = SEQUENCE_LIMIT * SEQUENCE_LIMIT; // 100M
|
|
185
180
|
const numChunks = Math.ceil(rowCount / ROWS_PER_CHUNK);
|
|
186
181
|
// The row number expression combines all three levels
|
|
187
|
-
|
|
182
|
+
// Cast to BIGINT to handle >2B rows - all multipliers must be BIGINT literals
|
|
183
|
+
const seqExpr = `(CAST(${String(startSequence - 1)} AS BIGINT) + CAST(level1 AS BIGINT) * BIGINT '${String(ROWS_PER_CHUNK)}' + CAST(level2 AS BIGINT) * BIGINT '${String(SEQUENCE_LIMIT)}' + level3)`;
|
|
188
184
|
const expressions = table.columns.map((col) => {
|
|
189
185
|
let expr = generatorToTrinoExpr(col.generator, seqExpr);
|
|
190
186
|
// Apply null probability if specified
|
|
@@ -209,15 +205,10 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
209
205
|
FROM UNNEST(sequence(0, ${String(numChunks - 1)})) AS t1(level1)
|
|
210
206
|
CROSS JOIN UNNEST(sequence(0, ${String(SEQUENCE_LIMIT - 1)})) AS t2(level2)
|
|
211
207
|
CROSS JOIN UNNEST(sequence(1, ${String(SEQUENCE_LIMIT)})) AS t3(level3)${lookupJoins}
|
|
212
|
-
WHERE (level1 * ${String(ROWS_PER_CHUNK)} + level2 * ${String(SEQUENCE_LIMIT)} + level3) <= ${String(rowCount)}
|
|
208
|
+
WHERE (CAST(level1 AS BIGINT) * BIGINT '${String(ROWS_PER_CHUNK)}' + CAST(level2 AS BIGINT) * BIGINT '${String(SEQUENCE_LIMIT)}' + level3) <= BIGINT '${String(rowCount)}'
|
|
213
209
|
`;
|
|
214
210
|
const query = await trino.query(insertSql);
|
|
215
|
-
|
|
216
|
-
const trinoResult = result;
|
|
217
|
-
if (trinoResult.error) {
|
|
218
|
-
throw new Error(`Trino insert failed: ${trinoResult.error.message}`);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
211
|
+
await this.executeQuery(query, "insert");
|
|
221
212
|
}
|
|
222
213
|
async queryRows(tableName, limit = 100) {
|
|
223
214
|
const trino = this.getTrino();
|
|
@@ -225,6 +216,9 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
225
216
|
const results = [];
|
|
226
217
|
for await (const result of query) {
|
|
227
218
|
const trinoResult = result;
|
|
219
|
+
if (trinoResult.error) {
|
|
220
|
+
throw new Error(`Trino queryRows failed: ${trinoResult.error.message}`);
|
|
221
|
+
}
|
|
228
222
|
if (trinoResult.data && trinoResult.columns) {
|
|
229
223
|
for (const row of trinoResult.data) {
|
|
230
224
|
const obj = {};
|
|
@@ -242,6 +236,9 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
242
236
|
const query = await trino.query(`SELECT COUNT(*) as count FROM ${this.fullTableName(tableName)}`);
|
|
243
237
|
for await (const result of query) {
|
|
244
238
|
const trinoResult = result;
|
|
239
|
+
if (trinoResult.error) {
|
|
240
|
+
throw new Error(`Trino countRows failed: ${trinoResult.error.message}`);
|
|
241
|
+
}
|
|
245
242
|
const firstRow = trinoResult.data?.[0];
|
|
246
243
|
if (firstRow && firstRow.length > 0) {
|
|
247
244
|
return Number(firstRow[0]);
|
|
@@ -254,6 +251,9 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
254
251
|
const query = await trino.query(`SELECT MAX(${escapeTrinoIdentifier(columnName)}) as max_val FROM ${this.fullTableName(tableName)}`);
|
|
255
252
|
for await (const result of query) {
|
|
256
253
|
const trinoResult = result;
|
|
254
|
+
if (trinoResult.error) {
|
|
255
|
+
throw new Error(`Trino getMaxValue failed: ${trinoResult.error.message}`);
|
|
256
|
+
}
|
|
257
257
|
const firstRow = trinoResult.data?.[0];
|
|
258
258
|
if (firstRow && firstRow.length > 0 && firstRow[0] !== null) {
|
|
259
259
|
return Number(firstRow[0]);
|
|
@@ -269,6 +269,9 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
269
269
|
const query = await trino.query(`SELECT COALESCE(SUM(file_size_in_bytes), 0) as size FROM ${this.fullSchemaPath}.${filesTableName}`);
|
|
270
270
|
for await (const result of query) {
|
|
271
271
|
const trinoResult = result;
|
|
272
|
+
if (trinoResult.error) {
|
|
273
|
+
throw new Error(`Trino getTableSize failed: ${trinoResult.error.message}`);
|
|
274
|
+
}
|
|
272
275
|
const firstRow = trinoResult.data?.[0];
|
|
273
276
|
if (firstRow && firstRow.length > 0) {
|
|
274
277
|
return Number(firstRow[0]);
|
|
@@ -280,21 +283,17 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
280
283
|
const trino = this.getTrino();
|
|
281
284
|
const fullTableName = `${this.fullSchemaPath}.${escapeTrinoIdentifier(tableName)}`;
|
|
282
285
|
// Compact small files into larger ones for better read performance
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
for await (const _ of expireQuery) {
|
|
291
|
-
// no-op
|
|
292
|
-
}
|
|
286
|
+
// Uses Trino's optimize procedure (file_size_threshold in bytes as string)
|
|
287
|
+
const rewriteQuery = await trino.query(`ALTER TABLE ${fullTableName} EXECUTE optimize(file_size_threshold => '10MB')`);
|
|
288
|
+
await this.executeQuery(rewriteQuery, "optimize");
|
|
289
|
+
// Remove old snapshots to reclaim storage
|
|
290
|
+
// Minimum retention is 7d by default (iceberg.expire-snapshots.min-retention)
|
|
291
|
+
const expireQuery = await trino.query(`ALTER TABLE ${fullTableName} EXECUTE expire_snapshots(retention_threshold => '7d')`);
|
|
292
|
+
await this.executeQuery(expireQuery, "expire_snapshots");
|
|
293
293
|
// Remove orphan files not referenced by any snapshot
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
}
|
|
294
|
+
// Minimum retention is 7d by default (iceberg.remove-orphan-files.min-retention)
|
|
295
|
+
const orphanQuery = await trino.query(`ALTER TABLE ${fullTableName} EXECUTE remove_orphan_files(retention_threshold => '7d')`);
|
|
296
|
+
await this.executeQuery(orphanQuery, "remove_orphan_files");
|
|
298
297
|
}
|
|
299
298
|
async applyTransformations(tableName, transformations) {
|
|
300
299
|
if (transformations.length === 0)
|
|
@@ -392,17 +391,13 @@ export class TrinoDataGenerator extends BaseDataGenerator {
|
|
|
392
391
|
WHERE random() < ${prob}
|
|
393
392
|
`;
|
|
394
393
|
const swapResult = await trino.query(swapSql);
|
|
395
|
-
|
|
396
|
-
// consume result
|
|
397
|
-
}
|
|
394
|
+
await this.executeQuery(swapResult, "swap transformation");
|
|
398
395
|
}
|
|
399
396
|
if (setClauses.length === 0)
|
|
400
397
|
return;
|
|
401
398
|
const updateSql = `UPDATE ${fullTableName} SET ${setClauses.join(", ")}`;
|
|
402
399
|
const result = await trino.query(updateSql);
|
|
403
|
-
|
|
404
|
-
// consume result
|
|
405
|
-
}
|
|
400
|
+
await this.executeQuery(result, "transformation");
|
|
406
401
|
}
|
|
407
402
|
}
|
|
408
403
|
//# sourceMappingURL=trino-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trino-generator.js","sourceRoot":"","sources":["../../src/generator/trino-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trino-generator.js","sourceRoot":"","sources":["../../src/generator/trino-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -135,11 +135,15 @@ export interface TableConfig {
|
|
|
135
135
|
description?: string;
|
|
136
136
|
columns: ColumnConfig[];
|
|
137
137
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
/**
|
|
139
|
+
* Common options shared between generate() and runScenario()
|
|
140
|
+
*/
|
|
141
|
+
export interface CommonGenerateOptions {
|
|
142
|
+
/** Create tables if not exists (default: true) */
|
|
141
143
|
createTable?: boolean;
|
|
144
|
+
/** Truncate tables before generating (default: false) */
|
|
142
145
|
truncateFirst?: boolean;
|
|
146
|
+
/** Drop tables before generating (default: false) */
|
|
143
147
|
dropFirst?: boolean;
|
|
144
148
|
/**
|
|
145
149
|
* If true, queries the table for max values of sequence columns
|
|
@@ -151,6 +155,16 @@ export interface GenerateOptions {
|
|
|
151
155
|
* (VACUUM, OPTIMIZE TABLE, etc.). Default: true.
|
|
152
156
|
*/
|
|
153
157
|
optimize?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Number of rows to generate per batch. If set, rows are inserted
|
|
160
|
+
* in batches of this size. Useful for large datasets to avoid
|
|
161
|
+
* memory issues and timeouts. Default: no batching (all at once).
|
|
162
|
+
*/
|
|
163
|
+
batchSize?: number;
|
|
164
|
+
}
|
|
165
|
+
export interface GenerateOptions extends CommonGenerateOptions {
|
|
166
|
+
table: TableConfig;
|
|
167
|
+
rowCount: number;
|
|
154
168
|
}
|
|
155
169
|
export type GeneratedRow = Record<string, unknown>;
|
|
156
170
|
export interface GenerateResult {
|
|
@@ -161,6 +175,8 @@ export interface GenerateResult {
|
|
|
161
175
|
generateMs: number;
|
|
162
176
|
/** Duration of optimization (0 if skipped) */
|
|
163
177
|
optimizeMs: number;
|
|
178
|
+
/** Number of batches used (1 if no batching) */
|
|
179
|
+
batchCount: number;
|
|
164
180
|
}
|
|
165
181
|
export interface TransformResult {
|
|
166
182
|
/** Total duration of transformations */
|
|
@@ -168,6 +184,100 @@ export interface TransformResult {
|
|
|
168
184
|
/** Number of batches applied */
|
|
169
185
|
batchesApplied: number;
|
|
170
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* A single step in a scenario.
|
|
189
|
+
*
|
|
190
|
+
* Steps can be:
|
|
191
|
+
* 1. **Generate + Transform**: Provide `table`, `rowCount`, and optionally `transformations`
|
|
192
|
+
* 2. **Transform only**: Provide `tableName` and `transformations` (table must already exist)
|
|
193
|
+
*/
|
|
194
|
+
export type ScenarioStep = ScenarioGenerateStep | ScenarioTransformStep;
|
|
195
|
+
/**
|
|
196
|
+
* A step that generates data into a table and optionally transforms it.
|
|
197
|
+
*/
|
|
198
|
+
export interface ScenarioGenerateStep {
|
|
199
|
+
/** Table configuration (schema + generators) */
|
|
200
|
+
table: TableConfig;
|
|
201
|
+
/** Number of rows to generate for this table */
|
|
202
|
+
rowCount: number;
|
|
203
|
+
/** Optional transformations to apply after generation */
|
|
204
|
+
transformations?: TransformationBatch[];
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* A step that only applies transformations to an existing table.
|
|
208
|
+
* Useful for cross-table lookups or applying transformations after all tables are generated.
|
|
209
|
+
*/
|
|
210
|
+
export interface ScenarioTransformStep {
|
|
211
|
+
/** Name of the existing table to transform */
|
|
212
|
+
tableName: string;
|
|
213
|
+
/** Transformations to apply */
|
|
214
|
+
transformations: TransformationBatch[];
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* A complete scenario with multiple tables and transformations.
|
|
218
|
+
* Use with runScenario() for a single-call multi-table data generation workflow.
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* const scenario: Scenario = {
|
|
222
|
+
* name: "E-commerce data",
|
|
223
|
+
* steps: [
|
|
224
|
+
* // Generate tables first
|
|
225
|
+
* { table: usersTable, rowCount: 1000 },
|
|
226
|
+
* { table: productsTable, rowCount: 500 },
|
|
227
|
+
* { table: ordersTable, rowCount: 5000 },
|
|
228
|
+
* // Then apply cross-table lookups
|
|
229
|
+
* {
|
|
230
|
+
* tableName: "orders",
|
|
231
|
+
* transformations: [
|
|
232
|
+
* { transformations: [{ kind: "lookup", column: "user_name", fromTable: "users", ... }] }
|
|
233
|
+
* ]
|
|
234
|
+
* },
|
|
235
|
+
* ],
|
|
236
|
+
* };
|
|
237
|
+
*/
|
|
238
|
+
export interface Scenario {
|
|
239
|
+
/** Optional name for logging */
|
|
240
|
+
name?: string;
|
|
241
|
+
/** Optional description */
|
|
242
|
+
description?: string;
|
|
243
|
+
/** Steps to execute in order (each step = one table) */
|
|
244
|
+
steps: ScenarioStep[];
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Options for running a scenario
|
|
248
|
+
*/
|
|
249
|
+
export interface ScenarioOptions extends CommonGenerateOptions {
|
|
250
|
+
/** The scenario to run */
|
|
251
|
+
scenario: Scenario;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Result of a single step in a scenario
|
|
255
|
+
*/
|
|
256
|
+
export interface ScenarioStepResult {
|
|
257
|
+
/** Table name */
|
|
258
|
+
tableName: string;
|
|
259
|
+
/** Generation result (undefined for transform-only steps) */
|
|
260
|
+
generate?: GenerateResult;
|
|
261
|
+
/** Transformation result (if transformations were defined) */
|
|
262
|
+
transform?: TransformResult;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Result of running a complete scenario
|
|
266
|
+
*/
|
|
267
|
+
export interface ScenarioResult {
|
|
268
|
+
/** Results for each step */
|
|
269
|
+
steps: ScenarioStepResult[];
|
|
270
|
+
/** Total rows inserted across all tables */
|
|
271
|
+
totalRowsInserted: number;
|
|
272
|
+
/** Total duration of the entire scenario */
|
|
273
|
+
durationMs: number;
|
|
274
|
+
/** Total duration of data generation across all steps */
|
|
275
|
+
generateMs: number;
|
|
276
|
+
/** Total duration of transformations across all steps */
|
|
277
|
+
transformMs: number;
|
|
278
|
+
/** Duration of optimization phase (0 if skipped) */
|
|
279
|
+
optimizeMs: number;
|
|
280
|
+
}
|
|
171
281
|
export interface DataGenerator {
|
|
172
282
|
readonly name: string;
|
|
173
283
|
/**
|
|
@@ -226,5 +336,10 @@ export interface DataGenerator {
|
|
|
226
336
|
* - Trino/Iceberg: rewrite_data_files, expire_snapshots
|
|
227
337
|
*/
|
|
228
338
|
optimize(tableName: string): Promise<void>;
|
|
339
|
+
/**
|
|
340
|
+
* Run a complete scenario: generate data and apply transformations.
|
|
341
|
+
* Combines generate() + transform() into a single call.
|
|
342
|
+
*/
|
|
343
|
+
runScenario(options: ScenarioOptions): Promise<ScenarioResult>;
|
|
229
344
|
}
|
|
230
345
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generator/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generator/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mkven/samples-generation",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Generate sample data for PostgreSQL, ClickHouse, SQLite, and Trino with a unified interface",
|
|
5
5
|
"author": "Damir Manapov",
|
|
6
6
|
"license": "MIT",
|
|
@@ -30,14 +30,37 @@
|
|
|
30
30
|
],
|
|
31
31
|
"repository": {
|
|
32
32
|
"type": "git",
|
|
33
|
-
"url": "https://github.com/
|
|
33
|
+
"url": "https://github.com/making-ventures/samples-generation.git"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsc -p tsconfig.build.json",
|
|
40
|
+
"prepublishOnly": "pnpm run build",
|
|
41
|
+
"dev": "tsx src/index.ts",
|
|
42
|
+
"test": "vitest run",
|
|
43
|
+
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
44
|
+
"test:watch": "vitest",
|
|
45
|
+
"lint": "eslint .",
|
|
46
|
+
"lint:fix": "eslint . --fix",
|
|
47
|
+
"format": "prettier --write .",
|
|
48
|
+
"format:check": "prettier --check .",
|
|
49
|
+
"typecheck": "tsc --noEmit",
|
|
50
|
+
"release": "release-it",
|
|
51
|
+
"release:dry": "release-it --dry-run",
|
|
52
|
+
"compose:up": "docker compose -f compose/docker-compose.yml --profile single up starter",
|
|
53
|
+
"compose:postgres": "docker compose -f compose/docker-compose.yml up -d postgres",
|
|
54
|
+
"compose:clickhouse": "docker compose -f compose/docker-compose.yml up -d clickhouse",
|
|
55
|
+
"compose:trino": "docker compose -f compose/docker-compose.yml up -d trino",
|
|
56
|
+
"compose:trino-fte": "docker compose -f compose/docker-compose.yml up -d trino-fte",
|
|
57
|
+
"compose:down": "docker compose -f compose/docker-compose.yml down",
|
|
58
|
+
"compose:restart": "docker compose -f compose/docker-compose.yml restart",
|
|
59
|
+
"compose:reset": "docker compose -f compose/docker-compose.yml down --volumes --remove-orphans"
|
|
60
|
+
},
|
|
38
61
|
"dependencies": {
|
|
39
62
|
"@clickhouse/client": "^1.15.0",
|
|
40
|
-
"@mkven/name-dictionaries": "
|
|
63
|
+
"@mkven/name-dictionaries": "^0.1.0",
|
|
41
64
|
"better-sqlite3": "^12.5.0",
|
|
42
65
|
"pg-format": "^1.0.4",
|
|
43
66
|
"postgres": "^3.4.7",
|
|
@@ -45,31 +68,17 @@
|
|
|
45
68
|
},
|
|
46
69
|
"devDependencies": {
|
|
47
70
|
"@eslint/js": "^9.39.2",
|
|
71
|
+
"@release-it/conventional-changelog": "^10.0.4",
|
|
48
72
|
"@types/better-sqlite3": "^7.6.13",
|
|
49
73
|
"@types/node": "^25.0.3",
|
|
50
74
|
"@types/pg-format": "^1.0.5",
|
|
51
75
|
"eslint": "^9.39.2",
|
|
52
76
|
"eslint-config-prettier": "^10.1.8",
|
|
53
77
|
"prettier": "^3.7.4",
|
|
78
|
+
"release-it": "^19.1.0",
|
|
54
79
|
"tsx": "^4.21.0",
|
|
55
80
|
"typescript": "^5.9.3",
|
|
56
81
|
"typescript-eslint": "^8.50.0",
|
|
57
82
|
"vitest": "^4.0.16"
|
|
58
|
-
},
|
|
59
|
-
"scripts": {
|
|
60
|
-
"build": "tsc -p tsconfig.build.json",
|
|
61
|
-
"dev": "tsx src/index.ts",
|
|
62
|
-
"test": "vitest run",
|
|
63
|
-
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
64
|
-
"test:watch": "vitest",
|
|
65
|
-
"lint": "eslint .",
|
|
66
|
-
"lint:fix": "eslint . --fix",
|
|
67
|
-
"format": "prettier --write .",
|
|
68
|
-
"format:check": "prettier --check .",
|
|
69
|
-
"typecheck": "tsc --noEmit",
|
|
70
|
-
"compose:up": "docker compose -f compose/docker-compose.yml --profile single up starter",
|
|
71
|
-
"compose:down": "docker compose -f compose/docker-compose.yml down",
|
|
72
|
-
"compose:restart": "docker compose -f compose/docker-compose.yml restart",
|
|
73
|
-
"compose:reset": "docker compose -f compose/docker-compose.yml down --volumes --remove-orphans"
|
|
74
83
|
}
|
|
75
|
-
}
|
|
84
|
+
}
|