LogoLogo
Home PageLoginSQL Generator
  • 🖥️What is Rasgo?
  • 🚀Setting Up Rasgo
    • Connect Rasgo to your Data
  • 🛠️Using Rasgo
    • Modeling your Data
    • Prompt Guide
    • AI Notes
    • AI-Generated Documentation
    • AI Readiness Score
    • Reports
    • Additional Features
    • Admin Settings
  • 🎉What's New
  • Integrations
    • ❄️Snowflake
    • 🔍BigQuery
    • 🔴Redshift
    • 🧱DeltaLake (via Databricks)
    • 💬OpenAI
    • 🅰️Anthropic
    • ✨Gemini
    • ☁️dbt Cloud
  • 🔐API
    • Table Metadata
    • Column Metadata
  • Reference
    • Status Page
    • Frequently Asked Questions
      • Rasgo Architecture
      • Contacting Rasgo Support
      • What does Rasgo do with my data?
  • Rasgo Graveyard
    • PyRasgo 0.3
      • Source Methods
        • publish.source_data()
        • read.source_data()
        • get.data_sources()
        • get.data_source()
      • Feature Methods
        • feature.get_stats()
        • publish.features_from_source_code()
        • publish.feature_from_source()
        • publish.features()
        • read.feature_data()
        • get.feature_attributes()
        • get.features()
        • get.feature()
      • Collection Methods
        • collection.add_attributes()
        • collection.preview()
        • collection.get_compatible_features()
        • read.collection_snapshot_data()
        • read.collection_data()
        • get.collection_attributes()
        • get.collections()
        • get.collection()
      • Features yml file
      • version 0.3
    • Transforms Overview
      • Build your Own Transform
        • Argument Types
        • Make your own Transform
        • SQL Best Practices
        • Utilities
          • cleanse_name()
    • All Transforms
      • Aggregate String
      • Aggregate
      • Apply
      • Bin
      • Cast
      • Clean
      • Conditional Agg
      • Correlation
      • Cumulative Agg
      • Datarobot Score
      • Dateadd
      • Datediff
      • Datepart
      • Datespine Groups
      • Datespine
      • Datetrunc
      • Describe
      • Drop Columns
      • Dropna
      • Encode Values
      • Entropy
      • Extract Sequences
      • Filter
      • Funnel
      • Heatmap
      • Histogram
      • If Then
      • Join
      • Joins
      • Label Encode
      • Lag
      • Latest
      • Lead
      • Linear Regression
      • Market Basket
      • Math
      • Metric Plot
      • Metric
      • Min Max Scaler
      • Moving Avg
      • New Columns
      • One Hot Encode
      • Order
      • Pivot Table
      • Plot
      • Prefix
      • Profile Column
      • Query
      • Rank
      • Ratio With Shrinkage
      • Remove Duplicates
      • Remove Outliers
      • Rename
      • Replace Missing
      • Replace String
      • Reshape
      • Rolling Agg
      • Rsi
      • Sample Class
      • Sample
      • Sankey
      • Scale Columns
      • Select
      • Sliding Slope
      • Standard Scaler
      • Suffix
      • Summarize Flatlines
      • Summarize Islands
      • Summarize
      • Target Encode
      • Text To Sql
      • Timeseries Agg
      • To Date
      • Train Test Split
      • Union
      • Unions
      • Unpivot
      • Uppercase Columns
      • Vlookup
Powered by GitBook
On this page

Was this helpful?

  1. Rasgo Graveyard
  2. Transforms Overview
  3. Build your Own Transform

SQL Best Practices

Rasgo transforms are templated SQL statements that run directly against your DataWarehouse. They should be simple SELECT statements that return data. Transforms can be chained together to build a CTE or executed as a standalone query.

Here are some guidelines to help you build safe transforms and troubleshoot error messages.

Enforced Guidelines

Transforms must start with the SQL keyword SELECT or WITH. At the time of publishing Rasgo does not support starting transforms with comments. We encourage you to add these to the transform's metadata or further down in your SQL statement.

Transforms cannot contain a semicolon (;) anywhere in their SQL text. Transforms should not be multi-statement SQL strings. If you need to run multiple queries to return data, we encourage you split your SQL into multiple transforms or use a CTE to run them in a single transform. This rule also flags semicolons in comments.

Transforms cannot contain patterns that pose a high SQL injection risk. Basic examples:

  • DML or DDL keywords

  • premature string or comment closures

  • presence of EXECUTE IMMEDIATE command

These patterns may include unpublished examples and will expand over time. If you run into an error message you do not understand, please contract Rasgo for better guidance on why your SQL was flagged as risky.

Running SQL against your DataWarehouse comes with inherent risks. Rasgo will take reasonable precautions to identify and block obviously malicious and unintentionally dangerous patterns.

A critical part of any company's data security strategy should be an access control policy that prevents users and tools from performing unintended actions.

Rasgo encourages security teams to grant only the privileges and roles to Rasgo users that align with their data security policies as a first line of defense.

PreviousMake your own TransformNextUtilities

Last updated 2 years ago

Was this helpful?