mirror of https://github.com/buster-so/buster.git
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> |
||
---|---|---|
.. | ||
logs | ||
src | ||
tests | ||
.gitignore | ||
Cargo.toml | ||
README.md | ||
build.rs | ||
buster_project.yml |
README.md
Buster CLI
A powerful command-line interface for managing semantic models in Buster. Deploy and manage your data models with ease, whether they're standalone or part of a dbt project.
Installation
Choose the installation command for your operating system:
macOS (x86_64)
curl -L https://github.com/buster-so/buster/releases/download/v0.0.1/buster-cli-darwin-x86_64.tar.gz | tar xz && sudo mv buster-cli /usr/local/bin/buster && sudo chmod +x /usr/local/bin/buster
Linux (x86_64)
curl -L https://github.com/buster-so/buster/releases/download/v0.0.1/buster-cli-linux-x86_64.tar.gz | tar xz && sudo mv buster-cli /usr/local/bin/buster && sudo chmod +x /usr/local/bin/buster
Windows (x86_64)
- Download the Windows binary:
Invoke-WebRequest -Uri https://github.com/buster-so/buster/releases/download/v0.0.1/buster-cli-windows-x86_64.zip -OutFile buster.zip
- Extract and install:
Expand-Archive -Path buster.zip -DestinationPath $env:USERPROFILE\buster
Move-Item -Path $env:USERPROFILE\buster\buster-cli.exe -Destination $env:LOCALAPPDATA\Microsoft\WindowsApps\buster.exe
Quick Start Guide
1. Authentication
First, authenticate with Buster using your API key:
buster auth
This will prompt you for:
- API Key (required) - Get this from the Buster Platform
- Host (optional) - Defaults to production if not specified
2. Generate Models
Generate Buster YAML models from your existing SQL files:
buster generate
Key flags for generation:
--source-path
: Directory containing your SQL files (defaults to current directory)--destination-path
: Where to output the generated YAML files (defaults to current directory)--data-source-name
: Name of the data source to use in the models--schema
: Database schema name--database
: Database name
The generate command will:
- Scan the source directory for SQL files
- Create corresponding YAML model files
- Create a
buster.yml
configuration file if it doesn't exist - Preserve any existing model customizations
Example with all options:
buster generate \
--source-path ./sql \
--destination-path ./models \
--data-source-name my_warehouse \
--schema analytics \
--database prod
3. Deploy Models
Deploy your models to Buster:
buster deploy
Deploy options:
--path
: Specific path to deploy (defaults to current directory)--dry-run
: Validate the deployment without actually deploying (defaults to false)
Examples:
# Deploy all models in current directory
buster deploy
# Deploy a specific model or directory
buster deploy --path ./models/customers.yml
# Validate deployment without applying changes
buster deploy --dry-run
Project Structure
A typical Buster project structure:
your-project/
├── buster.yml # Global configuration
├── models/ # Your semantic model definitions
│ ├── customers.yml
│ ├── orders.yml
│ └── products.yml
└── sql/ # SQL definitions
├── customers.sql
├── orders.sql
└── products.sql
Configuration (buster.yml)
# buster.yml
data_source_name: "my_warehouse" # Your default data source
schema: "analytics" # Default schema for models
Model Definition Example
# models/customers.yml
version: 1
models:
- name: customers
description: "Core customer data model"
data_source_name: "my_warehouse"
schema: "analytics"
entities:
- name: customer_id
expr: "id"
type: "primary"
description: "Primary customer identifier"
dimensions:
- name: email
expr: "email"
type: "string"
description: "Customer email address"
measures:
- name: total_customers
expr: "customer_id"
agg: "count_distinct"
description: "Total number of unique customers"
Best Practices
-
Organization
- Keep YAML files in
models/
- Keep SQL files in
sql/
- Use
buster.yml
for shared settings
- Keep YAML files in
-
Model Generation
- Start with clean SQL files
- Generate models first before customizing
- Review generated models before deployment
-
Deployment
- Use
--dry-run
to validate changes - Deploy frequently to catch issues early
- Keep model and SQL files in sync
- Use
Troubleshooting
Common issues and solutions:
-
Authentication Issues
- Verify your API key is correct
- Check if the host is properly specified (if using non-production)
- Ensure network connectivity to Buster
-
Generation Issues
- Verify SQL files are in the correct location
- Check file permissions
- Ensure SQL syntax is valid
-
Deployment Issues
- Validate YAML syntax
- Check for missing dependencies
- Verify data source connectivity
License
MIT License - see LICENSE for details.