All Projects → dbt-msft → dbt-synapse

dbt-msft / dbt-synapse

Licence: MIT License
dbt adapter for Azure Synapse SQL Dedicated Pools

Programming Languages

TSQL
950 projects
python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to dbt-synapse

fake-survey-generator
A slightly more-than-trivial full-stack application built with DDD & CQRS concepts
Stars: ✭ 49 (+22.5%)
Mutual labels:  azure-sql-database
serverless-full-stack-apps-azure-sql
Full stack solution using Javascript, Azure Static Web Apps, Azure Function, Azure SQL Database and a microservice architecture to monitor in real-time public transportation data, create a geofence and send notification when geofence is activated
Stars: ✭ 72 (+80%)
Mutual labels:  azure-sql
azure-sql-db-prisma
Full-Stack End-To-End implementation - both with REST and GraphQL support - with Azure SQL and Prisma.io of the well-known To-do list sample.
Stars: ✭ 35 (-12.5%)
Mutual labels:  azure-sql
azure-sql-db-sync-api-change-tracking
Using Azure SQL Change Tracking API to Sync mobile Apps data with the Cloud
Stars: ✭ 58 (+45%)
Mutual labels:  azure-sql-database
databricks-notebooks
Collection of Databricks and Jupyter Notebooks
Stars: ✭ 19 (-52.5%)
Mutual labels:  azure-sql-database
OpenEduAnalytics
This project provides open source Education Analytics solutions built on Azure.
Stars: ✭ 123 (+207.5%)
Mutual labels:  synapse-analytics
azure-sql-db-change-stream-debezium
SQL Server Change Stream sample using Debezium
Stars: ✭ 74 (+85%)
Mutual labels:  azure-sql
TextMood
A Xamarin + IoT + Azure sample that detects the sentiment of incoming text messages, performs sentiment analysis on the text, and changes the color of a Philips Hue lightbulb
Stars: ✭ 52 (+30%)
Mutual labels:  azure-sql-database
DacFx
SQL Server database schema validation, deployment, and upgrade runtime. Enables declarative database development and database portability across SQL Server versions and environments.
Stars: ✭ 152 (+280%)
Mutual labels:  azure-sql
django-pyodbc-azure
Django backend for Microsoft SQL Server and Azure SQL Database using pyodbc
Stars: ✭ 327 (+717.5%)
Mutual labels:  azure-sql-database

dbt-synapse

custom dbt adapter for Azure Synapse. Major credit due to @mikaelene and his dbt-sqlserver custom adapter.

related packages

To get additional functionality, check out:

major differences b/w dbt-synapse and dbt-sqlserver

  • macros use only Azure Synapse T-SQL. Relevant GitHub issue
  • use of Create Table as Select (CTAS) means you don't need post-hooks to create indices (see Table Materializations section below for more info)
  • rewrite of snapshots because Synapse doesn't support MERGE.

status & support

as of now, only support for dbt 0.18.0

Passing all tests in dbt-adapter-tests, except test_dbt_ephemeral_data_tests

outstanding work:

  • ephemeral materializations (workaround for non-recursive CTEs) see #25
  • officially rename the adapter from sqlserver to synapse see #40
  • Make seed creation more fault-tolerant #36

Installation

Easiest install is to use pip (not yet registered on PyPI).

First install ODBC Driver version 17.

pip install dbt-synapse

Authentication

Please see the Authentication section of dbt-sqlserver's README.md

Table Materializations

CTAS allows you to materialize tables with indices and distributions at creation time, which obviates the need for post-hooks to set indices.

Example

You can also configure index and dist in dbt_project.yml.

`models/stage/absence.sql

{{
    config(
        index='HEAP',
        dist='ROUND_ROBIN'
        )
}}

select *
from ...

is turned into the relative form (minus __dbt's _backup and _tmp tables)

  CREATE TABLE ajs_stg.absence_hours
    WITH(
      DISTRIBUTION = ROUND_ROBIN,
      HEAP
      )
    AS (SELECT * FROM ajs_stg.absence_hours__dbt_tmp_temp_view)

Indices

  • CLUSTERED COLUMNSTORE INDEX (default)
  • HEAP
  • CLUSTERED INDEX ({COLUMN})
  • CLUSTERED COLUMNSTORE INDEX ORDER({{COLUMN}}) # see docs for performance suggestions

Distributions

  • ROUND_ROBIN (default)
  • HASH({COLUMN})
  • REPLICATE

Changelog

See CHANGELOG.md

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].