Documentation & Usage
Quick Start & CLI Reference
Everything you need to configure and run iris2bq to sync InterSystems IRIS tables to BigQuery.
IRIS Native Extraction & BigQuery Sync
Run iris2bq using a YAML configuration file to stream tables from InterSystems IRIS SuperServer (port 1972) into BigQuery via GCS staging using caretdev/go-irisnative:
# Execute sync with config.yaml
./iris2bq -config config.yaml
Sample config.yaml file:
jdbc:
driver: "iris" # Pure-Go native driver (caretdev/go-irisnative)
host: "localhost"
port: 1972
namespace: "USER"
user: "_SYSTEM"
password: "SYS"
tables:
- "Sample.Person"
- "Sample.Company"
- "User.Patient"
gcloud:
project: "my-gcp-project"
service_account_key_path: "/path/to/sa-key.json" # Leave empty for ADC
bq:
dataset: "iris_analytics"
location: "US"
write_disposition: "WRITE_TRUNCATE"
auto_create_dataset: true
gcs:
tmp_bucket: "my-iris2bq-staging"
staging_prefix: "staging"
cleanup: true
sync:
concurrency: 4
dry_run: false
Dry-Run Simulation
Validate database connections and extraction logic without creating GCS objects or BigQuery jobs:
./iris2bq -config config.yaml -dry-run
Command-Line Flags & Environment Variables
| Flag / Env Var | Default | Description |
|---|---|---|
-config, IRIS2BQ_CONFIG | "" | Path to YAML configuration file |
-dry-run | false | Preview connections & schemas without loading to GCP |
-concurrency | 4 | Number of concurrent table extraction workers |
-verbose | false | Enable detailed debug level logging |
-version | false | Display utility version and exit |
GCP_PROJECT | gcloud.project | GCP Project ID |
GOOGLE_APPLICATION_CREDENTIALS | gcloud.service_account_key_path | Service Account JSON path |
BQ_DATASET | gcloud.bq.dataset | Target BigQuery dataset name |
GCS_TMP_BUCKET | gcloud.gcs.tmp_bucket | GCS staging bucket name |
IRIS_HOST | jdbc.host | InterSystems IRIS host address |
IRIS_PORT | jdbc.port | InterSystems IRIS port (1972 for native, 52773 for REST) |
IRIS_USER | jdbc.user | IRIS database username |
IRIS_PASSWORD | jdbc.password | IRIS database password |
IRIS_NAMESPACE | jdbc.namespace | Target IRIS namespace (e.g. USER) |
IRIS_TABLES | jdbc.tables | Comma-separated table list (Table1,Table2) |